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