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