]> git.donarmstrong.com Git - ape.git/blob - Changes
added corPagel + gave version # 2.2
[ape.git] / Changes
1                 CHANGES IN APE VERSION 2.2
2
3
4 NEW FEATURES
5
6     o Four new functions have been written by Damien de Vienne for the
7       graphical exploration of large trees (plot.cophylo, subtrees,
8       subtreeplot), and to return the graphical coordinates of tree
9       (without plotting).
10
11     o The new function corPagel() implements the Pagel's "lambda"
12       correlation structure.
13
14
15 BUG FIXES
16
17     o read.dna() failed if "?" occurred in the first 10 sites of the
18       first sequence.
19
20     o The x/y aspect of the plot is now respected when plotting a
21       circular tree (type = "r" or "f").
22
23     o Drawing the tip labels sometimes failed when plotting circular
24       trees.
25
26     o zoom() failed when tip labels were used instead of their numbers
27       (thanks to Yan Wong for the fix).
28
29     o drop.tip() failed with some trees  (fixed by Yan Wong).
30
31
32 OTHER CHANGES
33
34     o chronopl() has been improved and gains several options: see its
35       help page for details.
36
37
38
39                 CHANGES IN APE VERSION 2.1-3
40
41
42 BUG FIXES
43
44     o A bug in read.nexus() made the Windows R-GUI crash.
45
46     o An error was fixed in the computation of ancestral character
47       states by generalized least squares in ace().
48
49     o di2multi() did not modify node labels correctly.
50
51     o multi2di() failed if the tree had its attribute "order" set to
52       "cladewise".
53
54
55
56                 CHANGES IN APE VERSION 2.1-2
57
58
59 NEW FEATURES
60
61     o There three new methods for the "multiPhylo" class: str, $,
62       and [[.
63
64     o root() gains the options 'node' and 'resolve.root'
65       (FALSE by default) as well as its code being improved.
66
67     o mltt.plot() has now an option 'log' used in the same way
68       than in plot.default().
69
70
71 BUG FIXES
72
73     o mltt.plot() failed to display the legend with an unnamed
74       list of trees.
75
76     o nodelabels() with pies now correcly uses the argument
77       'cex' to draw symbols of different sizes (which has
78       worked already for thermometers).
79
80     o read.nexus() generally failed to read very big files.
81
82
83 OTHER CHANGES
84
85     o The argument 'family' of compar.gee() can now be a function
86       as well as a character string.
87
88     o read.tree() and read.nexus() now return an unnamed list if
89       'tree.names = NULL'.
90
91     o read.nexus() now returns a modified object of class "multiPhylo"
92       when there is a TRANSLATE block in the NEXUS file: the individual
93       trees have no 'tip.label' vector, but the list has a 'TipLabel'
94       attribute. The new methods '$' and '[[' set these elements
95       correctly when extracting trees.
96
97
98
99                 CHANGES IN APE VERSION 2.1-1
100
101
102 NEW FEATURES
103
104     o The new function rmtree generates lists of random trees.
105
106     o rcoal() now generates a genuine coalescent tree by default
107       (thanks to Vladimir Minin for the code).
108
109
110 BUG FIXES
111
112     o nuc.div() returned an incorrect value with the default
113       pairwise.deletion = FALSE.
114
115
116 OTHER CHANGES
117
118     o The internal codes of bionj(), fastme.bal(), and fastme.ols()
119       have been improved so that they are stabler and faster.
120
121     o R packages used by ape are now loaded silently; lattice and gee
122       are loaded only when needed.
123
124
125
126                 CHANGES IN APE VERSION 2.1
127
128
129 NEW FEATURES
130
131     o The new function identify.phylo identifies clades on a plotted
132       tree using the mouse.
133
134     o It is now possible to subset a list of trees (object of class
135       "multiPhylo") with "[" while keeping its class correct.
136
137     o The new function as.DNAbin.alignment converts DNA sequences
138       stored in the "alignment" format of the package seqinr into
139       an object of class "DNAbin".
140
141     o The new function weight.taxo2 helps to build similarity matrices
142       given two taxonomic levels (usually called by other functions).
143
144     o write.tree() can now take a list of trees (class "multiPhylo")
145       as its main argument.
146
147     o plot.correlogram() and plot.correlogramList() have been
148       improved, and gain several options (see the help page for
149       details). A legend is now plotted by default.
150
151
152 BUG FIXES
153
154     o dist.dna() returned some incorrect values with `model = "JC69"'
155       and `pairwise.deletion = TRUE'. This affected only the
156       distances involving sequences with missing values. (Thanks
157       to Bruno Toupance for digging this bug out.)
158
159     o write.tree() failed with some trees: this is fixed by removing
160       the `multi.line' option (trees are now always printed on a
161       single line).
162
163     o read.nexus() did not correctly detect trees with multiple root
164       edges (see OTHER CHANGES).
165
166
167 OTHER CHANGES
168
169     o The code of mlphylo() has almost entirely rewritten, and should
170       be much stabler. The options have been also greatly simplified
171       (see ?mlphylo and ?DNAmodel for details).
172
173     o The internal function nTips has been renamed klastorin_nTips.
174
175     o The code of is.ultrametric() contained redundancies and has
176       been cleaned-up.
177
178     o The code of Moran.I() and of correlogram.formula() have been
179       improved.
180
181     o read.tree() and read.nexus() now return an error when trying to
182       read a tree with multiple root edges (see BUG FIXES). The
183       correction applied in previous version did not work in all
184       situations.
185
186     o The class c("multi.tree", "phylo") has been renamed
187       "multiPhylo".
188
189
190 DOCUMENTATION
191
192     o There is now a vignette in ape: see vignette("MoranI", "ape").
193
194
195 DEPRECATED & DEFUNCT
196
197     o as.matching() and as.phylo.matching() do not support branch
198       lengths.
199
200     o correlogram.phylo() and discrete.dist() have been removed.
201
202
203
204                 CHANGES IN APE VERSION 2.0-2
205
206
207 NEW FEATURES
208
209     o The new function matexpo computes the exponential of a square
210       matrix.
211
212     o The new function unique.multi.tree removes duplicate trees from
213       a list.
214
215     o yule() has a new option `use.root.edge = FALSE' that specifies
216       to ignore, by default, the root edge of the tree if it exists.
217
218
219 BUG FIXES
220
221     o which.edge() failed when the index of a single terminal edge was
222       looked for.
223
224     o In diversi.time(), the values returned for model C were
225       incorrect.
226
227     o A bug was fixed in yule() that affected the calculation of the
228       likelihood in the presence of ties in the branching times.
229
230     o There was a bug in the C function mat_expo4x4 affecting the
231       calculations of the transition probabilities for models HKY and
232       GTR in mlphylo().
233
234     o A small bug was fixed in as.matrix.DNAbin (thanks to James
235       Bullard).
236
237     o rtree() did not `shuffle' the tip labels by default, so only a
238       limited number of labelled topologies could be generated.
239
240
241
242                 CHANGES IN APE VERSION 2.0-1
243
244
245 NEW FEATURES
246
247     o The three new functions bionj, fastme.ols, and fastme.bal
248       perform phylogeny estimation by the BIONJ and fastME methods in
249       OLS and balanced versions. This is a port to R of previous
250       previous programs done by Vincent Lefort.
251
252     o The new function chronoMPL performs molecular dating with the
253       mean path lengths method of Britton et al. (2002, Mol. Phyl.
254       Evol. 24: 58).
255
256     o The new function rotate, contributed by Christoph Heibl, swaps
257       two clades connected to the same node. It works also with
258       multichotomous nodes.
259
260     o The new `method' as.matrix.DNAbin() may be used to convert
261       easily DNA sequences stored in a list into a matrix while
262       keeping the names and the class.
263
264
265 BUG FIXES
266
267     o chronopl() failed when some branch lengths were equal to zero:
268       an error message is now returned.
269
270     o di2multi() failed when there was a series of consecutive edges
271       to remove.
272
273
274
275                 CHANGES IN APE VERSION 1.10-2
276
277
278 NEW FEATURES
279
280     o plot.phylo() can now plot circular trees: the option is type =
281       "fan" or type = "f" (to avoid the ambiguity with type = "c").
282
283     o prop.part() has a new option `check.labels = FALSE' which allows
284       to considerably speed-up the calculations of bipartitions. As a
285       consequence, calculations of bootstrap values with boot.phylo()
286       should be much faster.
287
288
289 BUG FIXES
290
291     o read.GenBank() did not return correctly the list of species as
292       from ape 1.10: this is fixed in this version
293
294     o Applying as.phylo() on a tree of class "phylo" failed: the
295       object is now returned unchanged.
296
297
298
299                 CHANGES IN APE VERSION 1.10-1
300
301
302 NEW FEATURES
303
304     o The three new functions Ntip, Nnode, and Nedge return, for a
305       given tree, the number of tips, nodes, or edges, respectively.
306
307
308 BUG FIXES
309
310     o read.nexus() did not set correctly the class of the returned
311       object when reading multiple trees.
312
313     o mllt.plot() failed with objects of class c("multi.tree",
314       "phylo").
315
316     o unroot() did not work correctly in most cases.
317
318     o reorder.phylo() made R freeze in some occasions.
319
320     o Plotting a tree in pruningwise order failed.
321
322     o When plotting an unrooted tree, the tip labels where not all
323       correctly positioned if the option `cex' was used.
324
325
326
327                 CHANGES IN APE VERSION 1.10
328
329
330 NEW FEATURES
331
332     o Five new `method' functions have been introduced to manipulate
333       DNA sequences in binary format (see below).
334
335     o Three new functions have been introduced to convert between the
336       new binary and the character formats.
337
338     o The new function as.alignment converts DNA sequences stored as
339       single characters into the class "alignment" used by the package
340       seqinr.
341
342     o read.dna() and read.GenBank() have a new argument `as.character'
343       controlling whether the sequences are returned in binary format
344       or as character.
345
346
347 BUG FIXES
348
349     o root() failed when the tree had node labels: this is fixed.
350
351     o plot.phylo() did not correctly set the limits on the y-axis with
352       the default setting: this is fixed.
353
354     o dist.dna() returned a wrong result for the LogDet, paralinear,
355       and BH87 models with `pairwise.deletion = TRUE'.
356
357
358 OTHER CHANGES
359
360     o DNA sequences are now internally stored in a binary format. See
361       the document "A Bit-Level Coding Scheme for Nucleotides" for the
362       details. Most functions analyzing DNA functions have been
363       modified accordingly and are now much faster (dist.dna is now
364       ca. 60 times faster).
365
366
367
368                 CHANGES IN APE VERSION 1.9-4
369
370
371 BUG FIXES
372
373     o A bug was fixed in edgelabels().
374
375     o as.phylo.hclust() did not work correctly when the object of
376       class "hclust" has its labels set to NULL: the returned tree has
377       now its tip labels set to "1", "2", ...
378
379     o consensus could fail if some tip labels are a subset of others
380       (e.g., "a" and "a_1"): this is now fixed.
381
382     o mlphylo() failed in most cases if some branch lengths of the
383       initial tree were greater than one: an error message is now
384       issued.
385
386     o mlphylo() failed in most cases when estimating the proportion of
387       invariants: this is fixed.
388
389
390
391                 CHANGES IN APE VERSION 1.9-3
392
393
394 NEW FEATURES
395
396     o The new function edgelabels adds labels on the edge of the tree
397       in the same way than nodelabels or tiplabels.
398
399
400 BUG FIXES
401
402     o multi2di() did not handle correctly branch lengths with the
403       default option `random = TRUE': this is now fixed.
404
405     o A bug was fixed in nuc.div() when using pairwise deletions.
406
407     o A bug occurred in the analysis of bipartitions with large
408       numbers of large trees, with consequences on prop.part,
409       prop.clades, and boot.phylo.
410
411     o The calculation of the Billera-Holmes-Vogtmann distance in
412       dist.topo was wrong: this has been fixed.
413
414
415
416                 CHANGES IN APE VERSION 1.9-2
417
418
419 NEW FEATURES
420
421     o The new function ladderize reorganizes the internal structure of
422       a tree to plot them left- or right-ladderized.
423
424     o The new function dist.nodes computes the patristic distances
425       between all nodes, internal and terminal, of a tree. It replaces
426       the option `full = TRUE' of cophenetic.phylo (see below).
427
428
429 BUG FIXES
430
431     o A bug was fixed in old2new.phylo().
432
433     o Some bugs were fixed in chronopl().
434
435     o The edge colours were not correctly displayed by plot.phylo
436       (thank you to Li-San Wang for the fix).
437
438     o cophenetic.phylo() failed with multichotomous trees: this is
439       fixed.
440
441
442 OTHER CHANGES
443
444     o read.dna() now returns the sequences in a matrix if they are
445       aligned (interleaved or sequential format). Sequences in FASTA
446       format are still returned in a list.
447
448     o The option `full' of cophenetic.phylo() has been removed because
449       it could not be used from the generic.
450
451
452 DEPRECATED & DEFUNCT
453
454     o rotate() has been removed; this function did not work correctly
455       since ape 1.9.
456
457
458
459                 CHANGES IN APE VERSION 1.9-1
460
461
462 BUG FIXES
463
464     o Trees with a single tip were not read correctly in R as the
465       element `Nnode' was not set: this is fixed.
466
467     o unroot() did not set correctly the number of nodes of the
468       unrooted tree in most cases.
469
470     o read.GenBank() failed when fetching very long sequences,
471       particularly of the BX-series.
472
473     o A bug was introduced in read.tree() with ape 1.9: it has been
474       fixed
475
476
477
478                 CHANGES IN APE VERSION 1.9
479
480
481 NEW FEATURES
482
483     o There are two new print `methods' for trees of class "phylo" and
484       lists of trees of class "multi.tree", so that they are now
485       displayed in a compact and informative way.
486
487     o There are two new functions, old2new.phylo and new2old.phylo,
488       for converting between the old and new coding of the class
489       "phylo".
490
491     o dist.dna() has three new models: Barry and Hartigan ("BH87"),
492       LogDet ("logdet"), and paralinear ("paralin").
493
494     o compute.brlen() has been extended: several methods are now
495       available to compute branch lengths.
496
497     o write.dna() can now handle matrices as well as lists.
498
499
500 BUG FIXES
501
502     o cophenetic.phylo() sometimes returned a wrong result with
503       multichotomous trees: this is fixed.
504
505     o rotate() failed when a single tip was specified: the tree is now
506       returned unchanged.
507
508     o ace() did not return the correct index matrix with custom
509       models: this is fixed.
510
511     o multi2di() did not work correctly when resolving multichotomies
512       randomly: the topology was always the same, only the arrangement
513       of clades was randomized: this is fixed. This function now
514       accepts trees with no branch lengths.
515
516     o The output of diversi.gof() was blurred by useless prints when a
517       user distribution was specified. This has been corrected, and
518       the help page of this function has been expanded.
519
520
521 OTHER CHANGES
522
523     o The internal structure of the class "phylo" has been changed:
524       see the document "Definition of Formats for Coding Phylogenetic
525       Trees in R" for the details. In addition, the code of most
526       functions has been improved.
527
528     o Several functions have been improved by replacing some R codes
529       by C codes: pic, plot.phylo, and reorder.phylo.
530
531     o There is now a citation information: see citation("ape") in R.
532
533     o write.tree() now does not add extra 0's to branch lengths so
534       that 1.23 is printed "1.23" by default, not "1.2300000000".
535
536     o The syntax of bind.tree() has been simplified. This function now
537       accepts trees with no branch lengths, and handles correctly node
538       labels.
539
540     o The option `as.numeric' of mrca() has been removed.
541
542     o The unused options `format' and `rooted' of read.tree() have
543       been removed.
544
545     o The unused option `format' of write.tree() has been removed.
546
547     o The use of node.depth() has been simplified.
548
549
550
551                 CHANGES IN APE VERSION 1.8-5
552
553
554 NEW FEATURES
555
556     o Two new functions read.nexus.data() and write.nexus.data(),
557       contributed by Johan Nylander, allow to read and write molecular
558       sequences in NEXUS files.
559
560     o The new function reorder.phylo() reorders the internal structure
561       of a tree of class "phylo". It is used as the generic, e.g.,
562       reorder(tr).
563
564     o read.tree() and read.nexus() can now read trees with a single
565       edge.
566
567     o The new data set `cynipids' supplies a set of protein sequences
568       in NEXUS format.
569
570
571 BUG FIXES
572
573     o The code of all.equal.phylo() has been completely rewritten
574       (thanks to Benoît Durand) which fixes several bugs.
575
576     o read.tree() and read.nexus() now checks the labels of the tree
577       to remove or substitute any characters that are illegal in the
578       Newick format (parentheses, etc.)
579
580     o A negative P-value could be returned by mantel.test(): this is
581       now fixed.
582
583
584
585                 CHANGES IN APE VERSION 1.8-4
586
587
588 NEW FEATURES
589
590     o The new function sh.test() computes the Shimodaira-
591       Hasegawa test.
592
593     o The new function collapse.singles() removes the nodes with a
594       single descendant from a tree.
595
596     o plot.phylo() has a new argument `tip.color' to specify the
597       colours of the tips.
598
599     o mlphylo() has now an option `quiet' to control the display of
600       the progress of the analysis (the default is FALSE).
601
602
603 BUG FIXES
604
605     o read.dna() did not read correctly sequences in sequential format
606       with leading alignment gaps "-": this is fixed.
607
608     o ace() returned a list with no class so that the generic
609       functions (anova, logLik, ...) could not be used directly. This
610       is fixed as ace() now returns an object of class "ace".
611
612     o anova.ace() had a small bug when computing the number of degrees
613       of freedom: this is fixed.
614
615     o mlphylo() did not work when the sequences were in a matrix or
616       a data frame: this is fixed.
617
618     o rtree() did not work correctly when trying to simulate an
619       unrooted tree with two tips: an error message is now issued.
620
621
622 OTHER CHANGES
623
624     o The algorithm of rtree() has been changed: it is now about 40,
625       100, and 130 times faster for 10, 100, and 1000 tips,
626       respectively.
627
628
629
630                 CHANGES IN APE VERSION 1.8-3
631
632
633 NEW FEATURES
634
635     o There are four new `method' functions to be used with the
636       results of ace(): logLik(), deviance(), AIC(), and anova().
637
638     o The plot method of phymltest has two new arguments: `main' to
639       change the title, and `col' to control the colour of the
640       segments showing the AIC values.
641
642     o ace() has a new argument `ip' that gives the initial values used
643       in the ML estimation with discrete characters (see the examples
644       in ?ace). This function now returns a matrix giving the indices
645       of the estimated rates when analysing discrete characters.
646
647     o nodelabels() and tiplabels() have a new argument `pie' to
648       represent proportions, with any number of categories, as
649       piecharts. The use of the option `thermo' has been improved:
650       there is now no limitation on the number of categories.
651
652
653 BUG FIXES
654
655     o mlphylo() did not work with more than two partitions: this is
656       fixed.
657
658     o root() failed if the proposed outgroup was already an outgroup
659       in the tree: this is fixed.
660
661     o The `col' argument in nodelabels() and tiplabels() was not
662       correctly passed when `text' was used: this is fixed.
663
664     o Two bugs were fixed in mlphylo(): parameters were not always
665       correctly output, and the estimation failed in some cases.
666
667     o plot.phylo() was stuck when given a tree with a single tip: this
668       is fixed and a message error is now returned.
669
670     o An error was corrected in the help page of gammaStat regarding
671       the calculation of P-values.
672
673     o Using gls() could crash R when the number of species in the tree
674       and in the variables were different: this is fixed.
675
676
677
678                 CHANGES IN APE VERSION 1.8-2
679
680
681 NEW FEATURES
682
683     o The new function mlphylo() fits a phylogenetic tree by maximum
684       likelihood from DNA sequences. Its companion function DNAmodel()
685       is used to define the substitution model which may include
686       partitioning. There are methods for logLik(), deviance(), and
687       AIC(), and the summary() method has been extended to display in
688       a friendly way the results of this model fitting. Currently, the
689       functionality is limited to estimating the substitution and
690       associated parameters and computing the likelihood.
691
692     o The new function drop1.compar.gee (used as, e.g., drop1(m))
693       tests for single effects in GEE-based comparative method. A
694       warning message is printed if there is not enough degrees of
695       freedom.
696
697
698 BUG FIXES
699
700     o An error message was sometimes issued by plot.multi.tree(),
701       though with no consequence.
702
703
704
705                 CHANGES IN APE VERSION 1.8-1
706
707
708 NEW FEATURES
709
710     o There is a new plot method for lists of trees (objects of class
711       "multi.tree"): it calls plot.phylo() internally and is
712       documented on the same help page.
713
714
715 BUG FIXES
716
717     o A bug was fixed in the C code that analyzes bipartitions: this
718       has impact on several functions like prop.part, prop.clades,
719       boot.phylo, or consensus.
720
721     o root() did not work correctly when the specified outgroup had
722       more than one element: this is fixed.
723
724     o dist.dna() sometimes returned a warning inappropriately: this
725       has been corrected.
726
727     o If the distance object given to nj() had no rownames, nj()
728       returned a tree with no tip labels: it now returns tips labelled
729       "1", "2", ..., corresponding to the row numbers.
730
731
732 OTHER CHANGES
733
734     o nj() has been slightly changed so that tips with a zero distance
735       are first aggregated with zero-lengthed branches; the usual NJ
736       procedure is then performed on a distance matrix without 0's.
737
738
739
740                 CHANGES IN APE VERSION 1.8
741
742
743 NEW FEATURES
744
745     o The new function chronopl() estimates dates using the penalized
746       likelihood method by Sanderson (2002; Mol. Biol. Evol., 19:101).
747
748     o The new function consensus() calculates the consensus tree of a
749       list of trees.
750
751     o The new function evolve.phylo() simulates the evolution of
752       continuous characters along a phylogeny under a Brownian model.
753
754     o The new plot method for objects of class "ancestral" displays a
755       tree together with ancestral values, as returned by the above
756       function.
757
758     o The new function as.phylo.formula() returns a phylogeny from a
759       set of nested taxonomic variables given as a formula.
760
761     o The new function read.caic() reads trees in CAIC format.
762
763     o The new function tiplabels() allows to add labels to the tips
764       of a tree using text or plotting symbols in a flexible way.
765
766     o The new function unroot() unroots a phylogeny.
767
768     o multi2di() has a new option, `random', which specifies whether
769       to resolve the multichotomies randomly (the default) or not.
770
771     o prop.part() now returns an object of class "prop.part" for which
772       there are print (to display a partition in a more friendly way)
773       and summary (to extract the numbers) methods.
774
775     o plot.phylo() has a new option, `show.tip.label', specifying
776       whether to print the labels of the tips. The default is TRUE.
777
778     o The code of nj() has been replaced by a faster C code: it is now
779       about 10, 25, and 40 times faster for 50, 100, and 200 taxa,
780       respectively.
781
782     o write.nexus() now writes whether a tree is rooted or not.
783
784
785 BUG FIXES
786
787     o Two bugs have been fixed in root(): unrooted trees are now
788       handled corretly, and node labels are now output normally.
789
790     o A bug was fixed in phymltest(): the executable couldn't be found
791       in some cases.
792
793     o Three bug have been fixed in ace(): computing the likelihood of
794       ancestral states of discrete characters failed, custom models
795       did not work, and the function failed with a null gradient (a
796       warning message is now returned; this latter bug was also
797       present in yule.cov() as well and is now fixed).
798
799     o pic() hanged out when missing data were present: a message error
800       is now returned.
801
802     o A small bug was fixed in dist.dna() where the gamma correction
803       was not always correctly dispatched.
804
805     o plot.phylo() plotted correctly the root edge only when the tree
806       was plotted rightwards: this works now for all directions.
807
808
809 OTHER CHANGES
810
811     o dist.taxo() has been renamed as weight.taxo().
812
813     o Various error and warning messages have been improved.
814
815
816
817                 CHANGES IN APE VERSION 1.7
818 NEW FEATURES
819
820     o The new function ace() estimates ancestral character states for
821       continuous characters (with ML, GLS, and contrasts methods), and
822       discrete characters (with ML only) for any number of states.
823
824     o The new function compar.ou() fits the Ornstein-Uhlenbeck model
825       of directional evolution for continuous characters. The user
826       specifies the node(s) of the tree where the character optimum
827       changes.
828
829     o The new function is.rooted() tests whether a tree (of class
830       "phylo") is rooted.
831
832     o The new function rcoal() generates random ultrametric trees with
833       the possibility to specify the function that generates the
834       inter-nodes distances.
835
836     o The new function mrca() gives for all pairs of tips in a tree
837       (and optionally nodes too) the most recent common ancestor.
838
839     o nodelabels() has a new option `thermo' to plot proportions (up
840       to three classes) on the nodes of a tree.
841
842     o rtree() has been improved: it can now generate rooted or
843       unrooted trees, and the mathematical function that generates the
844       branch lengths may be specified by the user. The tip labels may
845       be given directly in the call to rtree. The limit cases (n = 2,
846       3) are now handled correctly.
847
848     o dist.topo() has a new argument `method' with two choices: "PH85"
849       for Penny and Henny's method (already available before and now
850       the default), and "BHV01" for the geometric distance by Billera
851       et al. (2001, Adv. Appl. Math. 27:733).
852
853     o write.tree() has a new option, `digits', which specifies the
854       number of digits to be printed in the Newick tree. By default
855       digits = 10. The numbers are now always printed in decimal form
856       (i.e., 1.0e-1 is now avoided).
857
858     o dist.dna() can now compute the raw distances between pairs of
859       DNA sequences by specifying model = "raw".
860
861     o dist.phylo() has a new option `full' to possibly compute the
862       distances among all tips and nodes of the tree. The default if
863       `full = FALSE'.
864
865
866 BUG FIXES
867
868     o Several bugs were fixed in all.equal.phylo().
869
870     o dist.dna() did not handle correctly gaps ("-") in alignments:
871       they are now considered as missing data.
872
873     o rotate() did not work if the tips were not ordered: this is
874       fixed.
875
876     o mantel.test() returned NA in some special cases: this is fixed
877       and the function has been improved and is now faster.
878
879     o A bug was fixed in diversi.gof() where the calculation of A² was
880       incorrect.
881
882     o cherry() did not work correctly under some OSs (mainly Linux):
883       this is fixed.
884
885     o is.binary.tree() has been modified so that it works with both
886       rooted and unrooted trees.
887
888     o The documentation of theta.s() was not correct: this has been
889       fixed.
890
891     o plot.mst() did not work correctly: this is fixed.
892
893
894
895                 CHANGES IN APE VERSION 1.6
896
897
898 NEW FEATURES
899
900     o The new function dist.topo() computes the topological distances
901       between two trees.
902
903     o The new function boot.phylo() performs a bootstrap analysis on
904       phylogeny estimation.
905
906     o The new functions prop.part() and prop.clades() analyse
907       bipartitions from a series of trees.
908
909
910 OTHER CHANGES
911
912     o read.GenBank() now uses the EFetch utility of NCBI instead of
913       the usual Web interface: it is now much faster (e.g., 12 times
914       faster to retrieve 8 sequences, 37 times for 60 sequences).
915
916
917 BUG FIXES
918
919     o Several bugs were fixed in read.dna().
920
921     o Several bugs were fixed in diversi.time().
922
923     o is.binary.tree() did not work correctly if the tree has no edge
924       lengths: this is fixed.
925
926     o drop.tip() did not correctly propagated the `node.label' of a
927       tree: this is fixed.
928
929
930
931                 CHANGES IN APE VERSION 1.5
932
933
934 NEW FEATURES
935
936     o Two new functions, as.matching.phylo() and as.phylo.matching(),
937       convert objects between the classes "phylo" and "matching". The
938       latter implements the representation of binary trees introduced by
939       Diaconis and Holmes (1998; PNAS 95:14600). The generic function
940       as.matching() has been introduced as well.
941
942     o Two new functions, multi2di() and di2multi(), allow to resolve
943       and collapse multichotomies with branches of length zero.
944
945     o The new function nuc.div() computes the nucleotide diversity
946       from a sample a DNA sequences.
947
948     o dist.dna() has been completely rewritten with a much faster
949       (particularly for large data sets) C code. Eight models are
950       available: JC69, K80, F81, K81, F84, T92, TN93, and GG95 (the
951       option `method' has been renamed `model'). Computation of variance
952       is available for all models. A gamma-correction is possible for
953       JC69, K80, F81, and TN93. There is a new option, pairwise.deletion,
954       to remove sites with missing data on a pairwise basis. The option
955       `GCcontent' has been removed.
956
957     o read.GenBank() has a new option (species.names) which specifies
958       whether to return the species names of the organisms in addition
959       to the accession numbers of the sequences (this is the default
960       behaviour).
961
962     o write.nexus() can now write several trees in the same NEXUS file.
963
964     o drop.tip() has a new option `root.edge' that allows to specify the
965       new root edge if internal branches are trimmed.
966
967
968 BUG FIXES
969
970     o as.phylo.hclust() failed if some labels had parentheses: this
971       is fixed.
972
973     o Several bugs were fixed in all.equal.phylo(). This function now
974       returns the logical TRUE if the trees are identical but with
975       different representations (a report was printed previously).
976
977     o read.GenBank() did not correctly handle ambiguous base codes:
978       this is fixed.
979
980
981 OTHER CHANGES
982
983     o birthdeath() now returns an object of class "birthdeath" for
984       which there is a print method.
985
986
987
988                 CHANGES IN APE VERSION 1.4
989
990
991 NEW FEATURES
992
993     o The new function nj() performs phylogeny estimation with the
994       neighbor-joining method of Saitou and Nei (1987; Mol. Biol.
995       Evol., 4:406).
996
997     o The new function which.edge() identifies the edges of a tree
998       that belong to a group specified as a set of tips.
999
1000     o The new function as.phylo.phylog() converts an object of class
1001       "phylog" (from the package ade4) into an object of class
1002       "phylo".
1003
1004     o The new function axisPhylo() draws axes on the side of a
1005       phylogeny plot.
1006
1007     o The new function howmanytrees() calculates the number of trees
1008       in different cases and giving a number of tips.
1009
1010     o write.tree() has a new option `multi.line' (TRUE by default) to
1011       write a Newick tree on several lines rather than on a single
1012       line.
1013
1014     o The functionalities of zoom() have been extended. Several
1015       subtrees can be visualized at the same time, and they are marked
1016       on the main tree with colors. The context of the subtrees can be
1017       marked with the option `subtree' (see below).
1018
1019     o drop.tip() has a new option `subtree' (FALSE by default) which
1020       specifies whether to output in the tree how many tips have been
1021       deleted and where.
1022
1023     o The arguments of add.scale.bar() have been redefined and have
1024       now default values (see ?add.scale.bar for details). This
1025       function now works even if the plotted tree has no edge length.
1026
1027     o plot.phylo() can now plot radial trees, but this does not take
1028       edge lengths into account.
1029
1030     o In plot.phylo() with `type = "phylogram"', if the values of
1031       `edge.color' and `edge.width' are identical for sister-branches,
1032       they are propagated to the vertical line that link them.
1033
1034
1035 BUG FIXES
1036
1037     o Repeated calls to as.phylo.hclust() or as.hclust.phylo() made R
1038       crashing. This is fixed.
1039
1040     o In plot.phylo(), the options `edge.color' and `edge.width' are
1041       now properly recycled; their default values are now "black" and
1042       1, respectively.
1043
1044     o A bug has been fixed in write.nexus().
1045
1046
1047 OTHER CHANGES
1048
1049     o The function node.depth.edgelength() has been removed and
1050       replaced by a C code.
1051
1052
1053
1054                 CHANGES IN APE VERSION 1.3-1
1055
1056
1057 NEW FEATURES
1058
1059     o The new function nodelabels() allows to add labels to the nodes
1060       of a tree using text or plotting symbols in a flexible way.
1061
1062     o In plot.phylo() the arguments `x.lim' and `y.lim' can now be two
1063       numeric values specifying the lower and upper limits on the x-
1064       and y-axes. This allows to leave some space on any side of the
1065       tree. If a single value is given, this is taken as the upper
1066       limit (as before).
1067
1068
1069
1070                 CHANGES IN APE VERSION 1.3
1071
1072
1073 NEW FEATURES
1074
1075     o The new function phymltest() calls the software PHYML and fits
1076       28 models of DNA sequence evolution. There are a print method to
1077       display likelihood and AIC values, a summary method to compute
1078       the hierarchical likelihood ratio tests, and a plot method to
1079       display graphically the AIC values of each model.
1080
1081     o The new function yule.cov() fits the Yule model with covariates,
1082       a model where the speciation rate is affected by several species
1083       traits through a generalized linear model. The parameters are
1084       estimated by maximum likelihood.
1085
1086     o Three new functions, corBrownian(), corGrafen(), and
1087       corMartins(), compute the expected correlation structures among
1088       species given a phylogeny under different models of evolution.
1089       These can be used for GLS comparative phylogenetic methods (see
1090       the examples). There are coef() and corMatrix() methods and an
1091       Initialize.corPhyl() function associated.
1092
1093     o The new function compar.cheverud() implements Cheverud et al.'s
1094       (1985; Evolution 39:1335) phylogenetic comparative method.
1095
1096     o The new function varcomp() estimates variance components; it has
1097       a plot method.
1098
1099     o Two new functions, panel.superpose.correlogram() and
1100       plot.correlogramList(), allow to plot several phylogenetic
1101       correlograms.
1102
1103     o The new function node.leafnumber() computes the number of leaves
1104       of a subtree defined by a particular node.
1105
1106     o The new function node.sons() gets all tags of son nodes from a
1107       given parent node.
1108
1109     o The new function compute.brlen() computes the branch lengths of
1110       a tree according to a specified method.
1111
1112     o plot.phylo() has three new options: "cex" controls the size of
1113       the (tip and node) labels (thus it is no more needed to change
1114       the global graphical parameter), "direction" which allows to
1115       plot the tree rightwards, leftwards, upwards, or downwards, and
1116       "y.lim" which sets the upper limit on the y-axis.
1117
1118
1119 BUG FIXES
1120
1121     o Some functions which try to match tip labels and names of
1122       additional data (e.g. vector) are likely to fail if there are
1123       typing or syntax errors. If both series of names do not perfectly
1124       match, they are ignored and a warning message is now issued.
1125       These functions are bd.ext, compar.gee, pic. Their help pages
1126       have been clarified on this point.
1127
1128
1129
1130                 CHANGES IN APE VERSION 1.2-7
1131
1132
1133 NEW FEATURES
1134
1135     o The new function root() reroots a phylogenetic tree with respect
1136       to a specified outgroup.
1137
1138     o The new function rotate() rotates an internal branch of a tree.
1139
1140     o In plot.phylo(), the new argument "lab4ut" (labels for unrooted
1141       trees) controls the display of the tip labels in unrooted trees.
1142       This display has been greatly improved: the tip labels are now not
1143       expected to overlap with the tree (particularly if lab4ut =
1144       "axial"). In all cases, combining appropriate values of "lab4ut"
1145       and the font size (via "par(cex = )") should result in readable
1146       unrooted trees. See ?plot.phylo for some examples.
1147
1148     o In drop.tip(), the argument `tip' can now be numeric or character.
1149
1150
1151 BUG FIXES
1152
1153     o drop.tip() did not work correctly with trees with no branch
1154       lengths: this is fixed.
1155
1156     o A bug in plot.phylo(..., type = "unrooted") made some trees being
1157       plotted with some line crossings: this is now fixed.
1158
1159
1160
1161                 CHANGES IN APE VERSION 1.2-6
1162
1163
1164 NEW FEATURES
1165
1166     o Six new functions (Moran.I, correlogram.formula, discrete.dist,
1167       correlogram.phylo, dist.taxo, plot.correlogram) have been added
1168       to implement comparative methods with an autocorrelation approach.
1169
1170     o A new data set describing some life history traits of Carnivores
1171       has been included.
1172
1173
1174 BUG FIXES
1175
1176     o A fix was made on mcmc.popsize() to conform to R 2.0.0.
1177
1178
1179 OTHER CHANGES
1180
1181     o When plotting a tree with plot.phylo(), the new default of the
1182       option `label.offset' is now 0, so the labels are always visible.
1183
1184
1185
1186                 CHANGES IN APE VERSION 1.2-5
1187
1188
1189 NEW FEATURES
1190
1191     o The new function bd.ext() fits a birth-death model with combined
1192       phylogenetic and taxonomic data, and estimates the corresponding
1193       speciation and extinction rates.
1194
1195
1196 OTHER CHANGES
1197
1198     o The package gee is no more required by ape but only suggested
1199       since only the function compar.gee() calls gee.
1200
1201
1202
1203                 CHANGES IN APE VERSION 1.2-4
1204
1205
1206 NEW FEATURES
1207
1208     o Four new functions (mcmc.popsize, extract.popsize, plot.popsize,
1209       and lines.popsize) implementing a new approach for inferring the
1210       demographic history from genealogies using a reversible jump
1211       MCMC have been introduced.
1212
1213     o The unit of time in the skyline plot and in the new plots can
1214       now be chosen to be actual years, rather than substitutions.
1215
1216
1217
1218                 CHANGES IN APE VERSION 1.2-3
1219
1220
1221 NEW FEATURES
1222
1223     o The new function rtree() generates a random binary tree with or
1224       without branch lengths.
1225
1226     o Two new functions for drawing lineages-through-time (LTT) plots
1227       are provided: ltt.lines() adds a LTT curve to an existing plot,
1228       and mltt.plot() does a multiple LTT plot giving several trees as
1229       arguments (see `?ltt.plot' for details).
1230
1231
1232 BUG FIXES
1233
1234     o Some taxon names made R crashing when calling as.phylo.hclust():
1235       this is fixed.
1236
1237     o dist.dna() returned an error with two identical DNA sequences
1238       (only using the Jukes-Cantor method returned 0): this is fixed.
1239
1240
1241 OTHER CHANGES
1242
1243     o The function dist.phylo() has been re-written using a different
1244       algorithm: it is now about four times faster.
1245
1246     o The code of branching.times() has been improved: it is now about
1247       twice faster.
1248
1249
1250
1251                 CHANGES IN APE VERSION 1.2-2
1252
1253
1254 NEW FEATURES
1255
1256     o The new function seg.sites() finds the segregating sites in a
1257       sample of DNA sequences.
1258
1259
1260 BUG FIXES
1261
1262     o A bug introduced in read.tree() and in read.nexus() with version
1263       1.2-1 was fixed.
1264
1265     o A few errors were corrected and a few examples were added in the
1266       help pages.
1267
1268
1269
1270                 CHANGES IN APE VERSION 1.2-1
1271
1272
1273 NEW FEATURES
1274
1275     o plot.phylo() can now draw the edge of the root of a tree if it
1276       has one (see the new option `root.edge', its default is FALSE).
1277
1278
1279 BUG FIXES
1280
1281     o A bug was fixed in read.nexus(): files with semicolons inside
1282       comment blocks were not read correctly.
1283
1284     o The behaviour of read.tree() and read.nexus() was corrected so
1285       that tree files with badly represented root edges (e.g., with
1286       an extra pair of parentheses, see the help pages for details)
1287       are now correctly represented in the object of class "phylo";
1288       a warning message is now issued.
1289
1290
1291
1292                 CHANGES IN APE VERSION 1.2
1293
1294
1295 NEW FEATURES
1296
1297     o plot.phylo() has been completely re-written and offers several
1298       new functionalities. Three types of trees can now be drawn:
1299       phylogram (as previously), cladogram, and unrooted tree; in
1300       all three types the branch lengths can be drawn using the edge
1301       lengths of the phylogeny or not (e.g., if the latter is absent).
1302       The vertical position of the nodes can be adjusted with two
1303       choices (see option `node.pos'). The code has been re-structured,
1304       and two new functions (potentially useful for developpers) are
1305       documented separately: node.depth.edgelength() and node.depth();
1306       see the respective help pages for details.
1307
1308     o The new function zoom() allows to explore very large trees by
1309       focusing on a small portion of it.
1310
1311     o The new function yule() fits by maximum likelihood the Yule model
1312       (birth-only process) to a phylogenetic tree.
1313
1314     o Support for writing DNA sequences in FASTA format has been
1315       introduced in write.dna() (support for reading sequences in
1316       this format was introduced in read.dna() in version 1.1-2).
1317       The function has been completely re-written, fixing some bugs
1318       (see below); the default behaviour is no more to display the
1319       sequences on the standard output. Several options have been
1320       introduced to control the sequence printing in a flexible
1321       way. The help page has been extended.
1322
1323     o A new data set is included: a supertree of bats in NEXUS format.
1324
1325
1326 BUG FIXES
1327
1328     o In theta.s(), the default of the option `variance' has
1329       been changed to `FALSE' (as was indicated in the help page).
1330
1331     o Several bugs were fixed in the code of all.equal.phylo().
1332
1333     o Several bugs were fixed in write.dna(), particularly this
1334       function did not work with `format = "interleaved"'.
1335
1336     o Various errors were corrected in the help pages.
1337
1338
1339 OTHER CHANGES
1340
1341     o The argument names of as.hclust.phylo() have been changed
1342       from "(phy)" to "(x, ...)" to conform to the definition of
1343       the corresponding generic function.
1344
1345     o gamma.stat() has been renamed gammaStat() to avoid confusion
1346       since gamma() is a generic function.
1347
1348
1349
1350                 CHANGES IN APE VERSION 1.1-3
1351
1352
1353 BUG FIXES
1354
1355     o base.freq() previously did not return a value of 0 for
1356       bases absent in the data (e.g., a vector of length 3 was
1357       returned if one base was absent). This is now fixed (a
1358       vector of length 4 is always returned).
1359
1360     o Several bugs were fixed in read.nexus(), including that this
1361       function did not work in this absence of a "TRANSLATE"
1362       command in the NEXUS file, and that the commands were
1363       case-sensitive.
1364
1365
1366
1367                 CHANGES IN APE VERSION 1.1-2
1368
1369
1370 NEW FEATURES
1371
1372     o The Tamura and Nei (1993) model of DNA distance is now implemented
1373       in dist.dna(): five models are now available in this function.
1374
1375     o A new data set is included: a set of 15 sequences of the
1376       cytochrome b mitochondrial gene of the woodmouse (Apodemus
1377       sylvaticus).
1378
1379
1380 BUG FIXES
1381
1382     o A bug in read.nexus() was fixed.
1383
1384     o read.dna() previously did not work correctly in most cases.
1385       The function has been completely re-written and its help page
1386       has been considerably extended (see ?read.dna for details).
1387       Underscores (_) in taxon names are no more replaced with
1388       spaces (this behaviour was undocumented).
1389
1390     o A bug was fixed in write.dna().
1391
1392
1393
1394                 CHANGES IN APE VERSION 1.1-1
1395
1396
1397 BUG FIXES
1398
1399     o A bug in read.tree() introduced in APE 1.1 was fixed.
1400
1401     o A bug in compar.gee() resulted in an error when trying to fit
1402       a model with `family = "binomial"'. This is now fixed.
1403
1404
1405
1406                 CHANGES IN APE VERSION 1.1
1407
1408
1409 NEW FEATURES
1410
1411     o The Klastorin (1982) method as suggested by Misawa and Tajima
1412       (2000, Mol. Biol. Evol. 17:1879-1884) for classifying genes
1413       on the basis of phylogenetic trees has been implemented (see
1414       the function klastorin()).
1415
1416     o Functions have been added to convert APE's "phylo" objects in
1417       "hclust" cluster objects and vice versa (see the help page of
1418       as.phylo for details).
1419
1420     o Three new functions, ratogram(), chronogram() and NPRS.criterion(),
1421       are introduced for the estimation of absolute evolutionary rates
1422       (ratogram) and dated clock-like trees (chronogram) from
1423       phylogenetic trees using the non-parametric rate smoothing approach
1424       by MJ Sanderson (1997, Mol. Biol. Evol. 14:1218-1231).
1425
1426     o A summary method is now provided printing a summary information on a
1427       phylogenetic tree with, for instance, `summary(tree)'.
1428
1429     o The behaviour of read.tree() was changed so that all spaces and
1430       tabulations in tree files are now ignored. Consequently, spaces in tip
1431       labels are no more allowed. Another side effect is that read.nexus()
1432       now does not replace the underscores (_) in tip labels with spaces
1433       (this behaviour was undocumented).
1434
1435     o The function plot.phylo() has a new option (`underscore') which
1436       specifies whether the underscores in tip labels should be written on
1437       the plot as such or replaced with spaces (the default).
1438
1439     o The function birthdeath() now computes 95% confidence intervals of
1440       the estimated parameters using profile likelihood.
1441
1442     o Three new data sets are included: a gene tree estimated from 36
1443       landplant rbcL sequences, a gene tree estimated from 32 opsin
1444       sequences, and a gene tree for 50 BRCA1 mammalian sequences.
1445
1446
1447 BUG FIXES
1448
1449     o A bug was fixed in dist.gene() where nothing was returned.
1450
1451     o A bug in plot.mst() was fixed.
1452
1453     o A bug in vcv.phylo() resulted in false correlations when the
1454       option `cor = TRUE' was used (now fixed).
1455
1456
1457
1458                 CHANGES IN APE VERSION 1.0
1459
1460
1461 NEW FEATURES
1462
1463     o Two new functions, read.dna() and write.dna(), read/write in a file
1464       DNA sequences in interleaved or in sequential format.
1465
1466     o Two new functions, read.nexus() and write.nexus(), read/write trees
1467       in a NEXUS file.
1468
1469     o The new function bind.tree() allows to bind two trees together,
1470       possibly handling root edges to give internal branches.
1471
1472     o The new function drop.tip() removes the tips in a phylogenetic tree,
1473       and trims (or not) the corresponding internal branches.
1474
1475     o The new function is.ultrametric() tests if a tree is ultrametric.
1476
1477     o The function plot.phylo() has more functionalities such as drawing the
1478       branches with different colours and/or different widths, showing the
1479       node labels, controling the position and font of the labels, rotating
1480       the labels, and controling the space around the plot.
1481
1482     o The function read.tree() can now read trees with no branch length,
1483       such as "(a,b),c);". Consequently, the element `edge.length' in
1484       objects of class "phylo" is now optional.
1485
1486     o The function write.tree() has a new default behaviour: if the default
1487       for the option `file' is used (i.e. file = ""), then a variable of
1488       mode character containing the tree in Newick format is returned which
1489       can thus be assigned (e.g., tree <- write.tree(phy)).
1490
1491     o The function read.tree() has a new argument `text' which allows
1492       to read the tree in a variable of mode character.
1493
1494     o A new data set is included: the phylogenetic relationships among
1495       the orders of birds from Sibley and Ahlquist (1990).
1496
1497
1498
1499                 CHANGES IN APE VERSION 0.2-1
1500
1501
1502 BUG FIXES
1503
1504     o Several bugs were fixed in the help pages.
1505
1506
1507
1508                 CHANGES IN APE VERSION 0.2
1509
1510
1511 NEW FEATURES
1512
1513     o The function write.tree() writes phylogenetic trees (objects of class
1514       "phylo") in an ASCII file using the Newick parenthetic format.
1515
1516     o The function birthdeath() fits a birth-death model to branching times
1517       by maximum likelihood, and estimates the corresponding speciation and
1518       extinction rates.
1519
1520     o The function scale.bar() adds a scale bar to a plot of a phylogenetic
1521       tree.
1522
1523     o The function is.binary.tree() tests whether a phylogeny is binary.
1524
1525     o Two generic functions, coalescent.intervals() and collapsed.intervals(),
1526       as well as some methods are introduced.
1527
1528     o Several functions, including some generics and methods, for computing
1529       skyline plot estimates (classic and generalized) of effective
1530       population size through time are introduced and replace the function
1531       skyline.plot() in version 0.1.
1532
1533     o Two data sets are now included: the phylogenetic relationships among
1534       the families of birds from Sibley and Ahlquist (1990), and an
1535       estimated clock-like phylogeny of HIV sequences sampled in the
1536       Democratic Republic of Congo.
1537
1538
1539 DEPRECATED & DEFUNCT
1540
1541     o The function skyline.plot() in ape 0.1 has been deprecated and
1542       replaced by more elaborate functions (see above).
1543
1544
1545 BUG FIXES
1546
1547     o Two important bugs were fixed in plot.phylo(): phylogenies with
1548       multichotomies not at the root or not with only terminal branches,
1549       and phylogenies with a single node (i.e. only terminal branches)
1550       did not plot. These trees should be plotted correctly now.
1551
1552     o Several bugs were fixed in diversi.time() in the computation of
1553       AICs and LRTs.
1554
1555     o Various errors were corrected in the help pages.