]> git.donarmstrong.com Git - ape.git/blob - ChangeLog
430c21093791aab51038f32d86ce4575df8f8698
[ape.git] / ChangeLog
1                 CHANGES IN APE VERSION 2.5-2
2
3
4 BUG FIXES
5
6     o as.phylo.hclust() used to multiply edge lengths by 2.
7
8
9 DEPRECATED & DEFUNCT
10
11     o evolve.phylo() and plot.ancestral() have been removed.
12
13
14 OTHER CHANGES
15
16     o nj() has been improved and is now about 30% faster.
17
18
19
20                 CHANGES IN APE VERSION 2.5-1
21
22
23 NEW FEATURES
24
25     o The new function stree generates trees with regular shapes.
26
27     o It is now possible to bind two trees with x + y (see ?bind.tree for
28       details).
29
30     o drop.tip(), extract.clade(), root(), and bind.tree() now have an
31       'interactive' option to make the operation on a plotted tree.
32
33     o cophyloplot() gains two new arguments 'lwd' and 'lty' for the
34       association links; they are recycled like 'col' (which wasn't before).
35
36
37 BUG FIXES
38
39     o rTraitDisc() did not use its 'freq' argument correctly (it was
40       multiplied with the rate matrix column-wise instead of row-wise).
41
42     o [node|tip|edge]labels(thermo = ) used to draw empty thermometers
43       with NA values. Nothing is drawn now like with 'text' or 'pch'.
44       The same bug occurred with the 'pie' option.
45
46     o A bug was fixed in compar.ou() and the help page was clarified.
47
48     o bind.tree() has been rewritten fixing several bugs and making it
49       more efficient.
50
51     o plot.phylo(type = "p") sometimes failed to colour correctly the
52       vertical lines representing the nodes.
53
54     o plot.phylo(direction = "l", x.lim = 30) failed to plot the branches
55       in the correct direction though the tip labels were displayed
56       correctly.
57
58
59 OTHER CHANGES
60
61     o The c, cbind, and rbind methods for "DNAbin" objetcs now check that
62       the sequences are correctly stored (in a list for c, in a matrix
63       for the two other functions).
64
65
66
67         CHANGES IN APE VERSION 2.5
68
69
70 NEW FEATURES
71
72     o The new function parafit by Pierre Legendre tests for the
73       coevolution between hosts and parasites. It has a companion
74       function, pcoa, that does principal coordinate decomposition.
75       The latter has a biplot method.
76
77     o The new function lmorigin by Pierre Legendre performs multiple
78       regression through the origin with testing by permutation.
79
80     o The new functions rTraitCont and rTraitDisc simulate continuous and
81       discrete traits under a wide range of evolutionary models.
82
83     o The new function delta.plot does a delta plot following Holland et
84       al. (2002, Mol. Biol. Evol. 12:2051).
85
86     o The new function edges draws additional branches between any nodes
87       and/or tips on a plotted tree.
88
89     o The new function fancyarrows enhances arrows from graphics with
90       triangle and harpoon heads; it can be called from edges().
91
92     o add.scale.bar() has a new option 'ask' to draw interactively.
93
94     o The branch length score replaces the geodesic distance in dist.topo.
95
96     o Three new data sets are included: the gopher-lice data (gopher.D),
97       SO2 air pollution in 41 US cities (lmorigin.ex1, from Sokal &
98       Rohlf 1995), and some host-parasite specificity data
99       (lmorigin.ex2, from Legendre & Desdevises 2009).
100
101
102 BUG FIXES
103
104     o add.scale.bar() drew the bar outside the plotting region with the
105       default options with unrooted or radial trees.
106
107     o dist.topo() made R stuck when the trees had different sizes (thanks
108       to Otto Cordero for the fix).
109
110
111 OTHER CHANGES
112
113     o The geodesic distance has been replaced by the branch length score
114       in dist.topo().
115
116
117
118                 CHANGES IN APE VERSION 2.4-1
119
120
121 NEW FEATURES
122
123     o rtree() and rcoal() now accept a numeric vector for the 'br'
124       argument.
125
126     o vcv() is a new generic function with methods for the classes "phylo"
127       and "corPhyl" so that it is possible to calculate the var-cov matrix
128       for "transformation models". vcv.phylo() can still be used for trees
129       of class "phylo"; its argument 'cor' has been renamed 'corr'.
130
131
132 BUG FIXES
133
134     o bind.tree() failed when 'y' had no root edge.
135
136     o read.nexus() shuffled tip labels when the trees have no branch
137       lengths and there is a TRANSLATE block.
138
139     o read.nexus() does not try to translate node labels if there is a
140       translation table in the NEXUS file. See ?read.nexus for a
141       clarification on this behaviour.
142
143     o plot.multiPhylo() crashed R when plotting a list of trees with
144       compressed tip labels.
145
146     o write.nexus() did not translate the taxa names when asked for.
147
148     o plot.phylo(type = "fan") did not rotate the tip labels correctly
149       when the tree has branch lengths.
150
151     o ace(type = "continuous", method = "ML") now avoids sigma² being
152       negative (which resulted in an error).
153
154     o nj() crashed with NA/NaN in the distance matrix: an error in now
155       returned.
156
157
158
159                 CHANGES IN APE VERSION 2.4
160
161
162 NEW FEATURES
163
164     o base.freq() has a new option 'freq' to return the counts; the
165       default is still to return the proportions.
166
167
168 BUG FIXES
169
170     o seg.sites() did not handle ambiguous nucleotides correctly: they
171       are now ignored.
172
173     o plot(phy, root.edge = TRUE) failed if there was no $root.edge in
174       the tree: the argument is now ignored.
175
176     o add.scale.bar() failed when 'x' and 'y' were given (thanks to Janet
177       Young for the fix).
178
179
180 OTHER CHANGES
181
182     o Trying to plot a tree with a single tip now returns NULL with a
183       warning (it returned an error previously).
184
185     o The way lines representing nodes are coloured in phylograms has
186       been modified (as well as their widths and types) following some
187       users' request; this is only for dichotomous nodes.
188
189     o The argument 'adj' in [node][tip][edge]labels() now works when
190       using 'pie' or 'thermo'.
191
192     o A more informative message error is now returned by dist.dna() when
193       'model' is badly specified (partial matching of this argument is
194       done now).
195
196     o Deprecated functions are now listed in a help page: see
197       help("ape-defunct") with the quotes.
198
199
200 DEPRECATED & DEFUNCT
201
202     o The functions heterozygosity, nuc.div, theta.h, theta.k and
203       theta.s have been moved from ape to pegas.
204
205     o The functions mlphylo, DNAmodel and sh.test have been removed.
206
207
208
209                 CHANGES IN APE VERSION 2.3-3
210
211
212 BUG FIXES
213
214     o add.scale.bar() always drew a horizontal bar.
215
216     o zoom() shuffled tips with unrooted trees.
217
218     o write.nexus() failed to write correctly trees with a "TipLabel"
219       attribute.
220
221     o rcoal() failed to compute branch lengths with very large n.
222
223     o A small bug was fixed in compar.cheverud() (thanks to Michael
224       Phelan for the fix).
225
226     o seg.sites() failed when passing a vector.
227
228     o drop.tip() sometimes shuffled tip labels.
229
230     o root() shuffled node labels with 'resolve.root = TRUE'.
231
232
233
234                 CHANGES IN APE VERSION 2.3-2
235
236
237 BUG FIXES
238
239     o all.equal.phylo() did not compare unrooted trees correctly.
240
241     o dist.topo(... method = "PH85") did not treat unrooted trees
242       correctly (thanks to Tim Wallstrom for the fix).
243
244     o root() sometimes failed to test for the monophyly of the
245       outgroup correctly.
246
247     o extract.clade() sometimes included too many edges.
248
249     o vcv.phylo() did not work correctly when the tree is in
250       "pruningwise" order.
251
252     o nj() did not handle correctly distance matrices with many 0's.
253       The code has also been significantly improved: 7, 70, 160 times
254       faster with n = 100, 500, 1000, respectively.
255
256
257
258                 CHANGES IN APE VERSION 2.3-1
259
260
261 NEW FEATURES
262
263     o The new function is.monophyletic tests the monophyly of a group.
264
265     o There is now a c() method for lists of class "DNAbin".
266
267     o yule.cov() now fits the null model, and its help page has been
268       corrected with respect to this change.
269
270     o drop.tip() has a new option 'rooted' to force (or not) a tree
271       to be treated as (un)rooted.
272
273
274 BUG FIXES
275
276     o dist.gene() failed on most occasions with the default
277       pairwise.deletion = FALSE.
278
279     o read.tree() failed to read correctly the tree name(s).
280
281     o boot.phylo() now treats correctly data frames.
282
283     o del.gaps() did not copy the rownames of a matrix.
284
285     o A small bug was fixed in CDAM.global().
286
287     o ace() failed with large data sets. Thanks to Rich FitzJohn for
288       the fix. With other improvements, this function is now about 6
289       times faster.
290
291     o write.tree() failed with objects of class "multiPhylo".
292
293     o drop.tip(, subtree = TRUE) sometimes shuffled tip labels.
294
295
296 OTHER CHANGES
297
298     o [.multiPhylo and [.DNAbin now respect the original class.
299
300     o Instances of the form class(phy) == "phylo" have been replaced
301       by inherits(phy, "phylo").
302
303     o rcoal() is now faster.
304
305
306 DEPRECATED & DEFUNCT
307
308     o klastorin() has been removed.
309
310
311
312                 CHANGES IN APE VERSION 2.3
313
314
315 NEW FEATURES
316
317     o The new functions CADM.global and CADM.post, contributed by
318       Pierre Legendre, test the congruence among several distance
319       matrices.
320
321     o The new function yule.time fits a user-defined time-dependent
322       Yule model by maximum likelihood.
323
324     o The new function makeNodeLabel creates and/or modifies node
325       labels in a flexible way.
326
327     o read.tree() and write.tree() have been modified so that they can
328       handle individual tree names.
329
330     o plot.phylo() has a new argument 'edge.lty' that specifies the
331       types of lines used for the edges (plain, dotted, dashed, ...)
332
333     o phymltest() has been updated to work with PhyML 3.0.1.
334
335
336 BUG FIXES
337
338     o drop.tip() shuffled tip labels in some cases.
339
340     o drop.tip() did not handle node.label correctly.
341
342     o is.ultrametric() now checks the ordering of the edge matrix.
343
344     o ace() sometimes returned negative values of likelihoods of
345       ancestral states (thanks to Dan Rabosky for solving this long
346       lasting bug).
347
348
349 OTHER CHANGES
350
351     o The data set xenarthra has been removed.
352
353
354
355                 CHANGES IN APE VERSION 2.2-4
356
357 BUG FIXES
358
359     o The bug fix in read.nexus() in version 2.2-3 was wrong: this is
360       now fixed. (Thanks to Peter Wragg for the fix!)
361
362     o A warning message occurred for no reason with ace(method="GLS").
363
364
365 OTHER CHANGES
366
367     o There is now a general help page displayed with '?ape'.
368
369
370
371                 CHANGES IN APE VERSION 2.2-3
372
373
374 NEW FEATURES
375
376     o The new function extract.clade extracts a clade from a tree by
377       specifying a node number or label.
378
379     o fastme.bal() has two new options 'spr' and 'tbr' to perform tree
380       operations of the same names.
381
382     o dist.dna() can now return the number of site differences by
383       specifying model="N".
384
385
386 BUG FIXES
387
388     o chronopl() did not work with CV = TRUE.
389
390     o read.nexus() did not work correctly in some situations (trees on
391       multiple lines with different numbers of lines and/or with
392       comments inserted within the trees).
393
394     o ltt.plot(), ltt.lines(), and mltt.plot() did not count correctly
395       the number of lineages with non-binary trees.
396
397
398 OTHER CHANGES
399
400     o ape has now a namespace.
401
402     o drop.tip() has been improved: it should be much faster and work
403       better in some cases (e.g., see the example in ?zoom).
404
405
406
407                 CHANGES IN APE VERSION 2.2-2
408
409
410 NEW FEATURES
411
412     o dist.gene() has been substantially improved and gains an option
413       'pairwise.deletion'.
414
415     o cbind.DNAbin() has a new option 'fill.with.gaps' and is now
416       more flexible.
417
418
419 BUG FIXES
420
421     o prop.part() failed with a single tree with the default option
422      'check.labels = TRUE'.
423
424    o summary.DNAbin() failed to display correctly the summary of
425      sequence lengths with lists of sequences of 10,000 bases or more
426      (because summary.default uses 4 significant digits by default).
427
428    o read.nexus() failed to read a file with a single tree with line
429      breaks in the Newick string.
430
431    o del.gaps() returned a list of empty sequences when there were no
432      gaps.
433
434
435 OTHER CHANGES
436
437     o phymltest() has been updated for PhyML 3.0 and gains an option
438       'append', whereas the option 'path2exec' has been removed.
439
440     o rbind.DNAbin() and cbind.DNAbin() now accept a single matrix
441       which is returned unchanged (instead of an error).
442
443     o The data sets bird.orders and bird.families are now stored as
444       Newick strings; i.e., the command data(bird.orders) calls
445       read.tree().
446
447
448
449                 CHANGES IN APE VERSION 2.2-1
450
451
452 NEW FEATURES
453
454     o The new function makeLabel() helps to modify labels of trees,
455       lists of trees, or DNA sequences, with several utilities to
456       truncate and/or make them unique, substituting some
457       characters, and so on.
458
459     o The new function del.gaps() removes insertion gaps ("-") in a
460       set of DNA sequences.
461
462     o read.dna() can now read Clustal files (*.aln).
463
464
465 BUG FIXES
466
467     o root() failed with 'resolve.root = TRUE' when the root was
468       already the specified root.
469
470     o Several bugs were fixed in mlphylo().
471
472     o collapsed.singles() did not propagate the 'Nnode' and
473       'node.labels' elements (thanks to Elizabeth Purdom for the fix).
474
475     o read.nexus() failed to remove correctly the comments within
476       trees.
477
478     o read.nexus() failed to read a file with a single tree and no
479       translation of tip labels.
480
481     o read.nexus() failed to place correctly tip labels when reading
482       a single tree with no edge lengths.
483
484     o A bug was fixed in sh.test().
485
486
487 OTHER CHANGES
488
489     o unique.multiPhylo() is faster thanks to a suggestion by Vladimir
490       Minin.
491
492     o The option 'check.labels' of consensus() and prop.part() is now
493       TRUE by default.
494
495     o write.dna() now does not truncate names to 10 characters with
496       the Phylip formats.
497
498
499
500                 CHANGES IN APE VERSION 2.2
501
502
503 NEW FEATURES
504
505     o Four new functions have been written by Damien de Vienne for the
506       graphical exploration of large trees (cophyloplot, subtrees,
507       subtreeplot), and to return the graphical coordinates of tree
508       (without plotting).
509
510     o The new functions corPagel and corBlomberg implement the Pagel's
511       "lambda" and Blomberg et al.'s "ACDC" correlation structures.
512
513     o chronopl() has been improved and gains several options: see its
514       help page for details.
515
516     o boot.phylo() has now an option 'trees' to possibly return the
517       bootstraped trees (the default is FALSE).
518
519     o prop.part() has been improved and should now be faster in all
520       situations.
521
522
523 BUG FIXES
524
525     o read.dna() failed if "?" occurred in the first 10 sites of the
526       first sequence.
527
528     o The x/y aspect of the plot is now respected when plotting a
529       circular tree (type = "r" or "f").
530
531     o Drawing the tip labels sometimes failed when plotting circular
532       trees.
533
534     o zoom() failed when tip labels were used instead of their numbers
535       (thanks to Yan Wong for the fix).
536
537     o drop.tip() failed with some trees (fixed by Yan Wong).
538
539     o seg.sites() failed with a list.
540
541     o consensus() failed in some cases. The function has been improved
542       as well and is faster.
543
544
545
546                 CHANGES IN APE VERSION 2.1-3
547
548
549 BUG FIXES
550
551     o A bug in read.nexus() made the Windows R-GUI crash.
552
553     o An error was fixed in the computation of ancestral character
554       states by generalized least squares in ace().
555
556     o di2multi() did not modify node labels correctly.
557
558     o multi2di() failed if the tree had its attribute "order" set to
559       "cladewise".
560
561
562
563                 CHANGES IN APE VERSION 2.1-2
564
565
566 NEW FEATURES
567
568     o There three new methods for the "multiPhylo" class: str, $,
569       and [[.
570
571     o root() gains the options 'node' and 'resolve.root'
572       (FALSE by default) as well as its code being improved.
573
574     o mltt.plot() has now an option 'log' used in the same way
575       than in plot.default().
576
577
578 BUG FIXES
579
580     o mltt.plot() failed to display the legend with an unnamed
581       list of trees.
582
583     o nodelabels() with pies now correcly uses the argument
584       'cex' to draw symbols of different sizes (which has
585       worked already for thermometers).
586
587     o read.nexus() generally failed to read very big files.
588
589
590 OTHER CHANGES
591
592     o The argument 'family' of compar.gee() can now be a function
593       as well as a character string.
594
595     o read.tree() and read.nexus() now return an unnamed list if
596       'tree.names = NULL'.
597
598     o read.nexus() now returns a modified object of class "multiPhylo"
599       when there is a TRANSLATE block in the NEXUS file: the individual
600       trees have no 'tip.label' vector, but the list has a 'TipLabel'
601       attribute. The new methods '$' and '[[' set these elements
602       correctly when extracting trees.
603
604
605
606                 CHANGES IN APE VERSION 2.1-1
607
608
609 NEW FEATURES
610
611     o The new function rmtree generates lists of random trees.
612
613     o rcoal() now generates a genuine coalescent tree by default
614       (thanks to Vladimir Minin for the code).
615
616
617 BUG FIXES
618
619     o nuc.div() returned an incorrect value with the default
620       pairwise.deletion = FALSE.
621
622
623 OTHER CHANGES
624
625     o The internal codes of bionj(), fastme.bal(), and fastme.ols()
626       have been improved so that they are stabler and faster.
627
628     o R packages used by ape are now loaded silently; lattice and gee
629       are loaded only when needed.
630
631
632
633                 CHANGES IN APE VERSION 2.1
634
635
636 NEW FEATURES
637
638     o The new function identify.phylo identifies clades on a plotted
639       tree using the mouse.
640
641     o It is now possible to subset a list of trees (object of class
642       "multiPhylo") with "[" while keeping its class correct.
643
644     o The new function as.DNAbin.alignment converts DNA sequences
645       stored in the "alignment" format of the package seqinr into
646       an object of class "DNAbin".
647
648     o The new function weight.taxo2 helps to build similarity matrices
649       given two taxonomic levels (usually called by other functions).
650
651     o write.tree() can now take a list of trees (class "multiPhylo")
652       as its main argument.
653
654     o plot.correlogram() and plot.correlogramList() have been
655       improved, and gain several options (see the help page for
656       details). A legend is now plotted by default.
657
658
659 BUG FIXES
660
661     o dist.dna() returned some incorrect values with `model = "JC69"'
662       and `pairwise.deletion = TRUE'. This affected only the
663       distances involving sequences with missing values. (Thanks
664       to Bruno Toupance for digging this bug out.)
665
666     o write.tree() failed with some trees: this is fixed by removing
667       the `multi.line' option (trees are now always printed on a
668       single line).
669
670     o read.nexus() did not correctly detect trees with multiple root
671       edges (see OTHER CHANGES).
672
673
674 OTHER CHANGES
675
676     o The code of mlphylo() has been almost entirely rewritten, and
677       should be much stabler. The options have been also greatly
678       simplified (see ?mlphylo and ?DNAmodel for details).
679
680     o The internal function nTips has been renamed klastorin_nTips.
681
682     o The code of is.ultrametric() contained redundancies and has
683       been cleaned-up.
684
685     o The code of Moran.I() and of correlogram.formula() have been
686       improved.
687
688     o read.tree() and read.nexus() now return an error when trying to
689       read a tree with multiple root edges (see BUG FIXES). The
690       correction applied in previous version did not work in all
691       situations.
692
693     o The class c("multi.tree", "phylo") has been renamed
694       "multiPhylo".
695
696
697 DOCUMENTATION
698
699     o There is now a vignette in ape: see vignette("MoranI", "ape").
700
701
702 DEPRECATED & DEFUNCT
703
704     o as.matching() and as.phylo.matching() do not support branch
705       lengths.
706
707     o correlogram.phylo() and discrete.dist() have been removed.
708
709
710
711                 CHANGES IN APE VERSION 2.0-2
712
713
714 NEW FEATURES
715
716     o The new function matexpo computes the exponential of a square
717       matrix.
718
719     o The new function unique.multi.tree removes duplicate trees from
720       a list.
721
722     o yule() has a new option `use.root.edge = FALSE' that specifies
723       to ignore, by default, the root edge of the tree if it exists.
724
725
726 BUG FIXES
727
728     o which.edge() failed when the index of a single terminal edge was
729       looked for.
730
731     o In diversi.time(), the values returned for model C were
732       incorrect.
733
734     o A bug was fixed in yule() that affected the calculation of the
735       likelihood in the presence of ties in the branching times.
736
737     o There was a bug in the C function mat_expo4x4 affecting the
738       calculations of the transition probabilities for models HKY and
739       GTR in mlphylo().
740
741     o A small bug was fixed in as.matrix.DNAbin (thanks to James
742       Bullard).
743
744     o rtree() did not `shuffle' the tip labels by default, so only a
745       limited number of labelled topologies could be generated.
746
747
748
749                 CHANGES IN APE VERSION 2.0-1
750
751
752 NEW FEATURES
753
754     o The three new functions bionj, fastme.ols, and fastme.bal
755       perform phylogeny estimation by the BIONJ and fastME methods in
756       OLS and balanced versions. This is a port to R of previous
757       previous programs done by Vincent Lefort.
758
759     o The new function chronoMPL performs molecular dating with the
760       mean path lengths method of Britton et al. (2002, Mol. Phyl.
761       Evol. 24: 58).
762
763     o The new function rotate, contributed by Christoph Heibl, swaps
764       two clades connected to the same node. It works also with
765       multichotomous nodes.
766
767     o The new `method' as.matrix.DNAbin() may be used to convert
768       easily DNA sequences stored in a list into a matrix while
769       keeping the names and the class.
770
771
772 BUG FIXES
773
774     o chronopl() failed when some branch lengths were equal to zero:
775       an error message is now returned.
776
777     o di2multi() failed when there was a series of consecutive edges
778       to remove.
779
780
781
782                 CHANGES IN APE VERSION 1.10-2
783
784
785 NEW FEATURES
786
787     o plot.phylo() can now plot circular trees: the option is type =
788       "fan" or type = "f" (to avoid the ambiguity with type = "c").
789
790     o prop.part() has a new option `check.labels = FALSE' which allows
791       to considerably speed-up the calculations of bipartitions. As a
792       consequence, calculations of bootstrap values with boot.phylo()
793       should be much faster.
794
795
796 BUG FIXES
797
798     o read.GenBank() did not return correctly the list of species as
799       from ape 1.10: this is fixed in this version
800
801     o Applying as.phylo() on a tree of class "phylo" failed: the
802       object is now returned unchanged.
803
804
805
806                 CHANGES IN APE VERSION 1.10-1
807
808
809 NEW FEATURES
810
811     o The three new functions Ntip, Nnode, and Nedge return, for a
812       given tree, the number of tips, nodes, or edges, respectively.
813
814
815 BUG FIXES
816
817     o read.nexus() did not set correctly the class of the returned
818       object when reading multiple trees.
819
820     o mllt.plot() failed with objects of class c("multi.tree",
821       "phylo").
822
823     o unroot() did not work correctly in most cases.
824
825     o reorder.phylo() made R freeze in some occasions.
826
827     o Plotting a tree in pruningwise order failed.
828
829     o When plotting an unrooted tree, the tip labels where not all
830       correctly positioned if the option `cex' was used.
831
832
833
834                 CHANGES IN APE VERSION 1.10
835
836
837 NEW FEATURES
838
839     o Five new `method' functions have been introduced to manipulate
840       DNA sequences in binary format (see below).
841
842     o Three new functions have been introduced to convert between the
843       new binary and the character formats.
844
845     o The new function as.alignment converts DNA sequences stored as
846       single characters into the class "alignment" used by the package
847       seqinr.
848
849     o read.dna() and read.GenBank() have a new argument `as.character'
850       controlling whether the sequences are returned in binary format
851       or as character.
852
853
854 BUG FIXES
855
856     o root() failed when the tree had node labels: this is fixed.
857
858     o plot.phylo() did not correctly set the limits on the y-axis with
859       the default setting: this is fixed.
860
861     o dist.dna() returned a wrong result for the LogDet, paralinear,
862       and BH87 models with `pairwise.deletion = TRUE'.
863
864
865 OTHER CHANGES
866
867     o DNA sequences are now internally stored in a binary format. See
868       the document "A Bit-Level Coding Scheme for Nucleotides" for the
869       details. Most functions analyzing DNA functions have been
870       modified accordingly and are now much faster (dist.dna is now
871       ca. 60 times faster).
872
873
874
875                 CHANGES IN APE VERSION 1.9-4
876
877
878 BUG FIXES
879
880     o A bug was fixed in edgelabels().
881
882     o as.phylo.hclust() did not work correctly when the object of
883       class "hclust" has its labels set to NULL: the returned tree has
884       now its tip labels set to "1", "2", ...
885
886     o consensus could fail if some tip labels are a subset of others
887       (e.g., "a" and "a_1"): this is now fixed.
888
889     o mlphylo() failed in most cases if some branch lengths of the
890       initial tree were greater than one: an error message is now
891       issued.
892
893     o mlphylo() failed in most cases when estimating the proportion of
894       invariants: this is fixed.
895
896
897
898                 CHANGES IN APE VERSION 1.9-3
899
900
901 NEW FEATURES
902
903     o The new function edgelabels adds labels on the edge of the tree
904       in the same way than nodelabels or tiplabels.
905
906
907 BUG FIXES
908
909     o multi2di() did not handle correctly branch lengths with the
910       default option `random = TRUE': this is now fixed.
911
912     o A bug was fixed in nuc.div() when using pairwise deletions.
913
914     o A bug occurred in the analysis of bipartitions with large
915       numbers of large trees, with consequences on prop.part,
916       prop.clades, and boot.phylo.
917
918     o The calculation of the Billera-Holmes-Vogtmann distance in
919       dist.topo was wrong: this has been fixed.
920
921
922
923                 CHANGES IN APE VERSION 1.9-2
924
925
926 NEW FEATURES
927
928     o The new function ladderize reorganizes the internal structure of
929       a tree to plot them left- or right-ladderized.
930
931     o The new function dist.nodes computes the patristic distances
932       between all nodes, internal and terminal, of a tree. It replaces
933       the option `full = TRUE' of cophenetic.phylo (see below).
934
935
936 BUG FIXES
937
938     o A bug was fixed in old2new.phylo().
939
940     o Some bugs were fixed in chronopl().
941
942     o The edge colours were not correctly displayed by plot.phylo
943       (thank you to Li-San Wang for the fix).
944
945     o cophenetic.phylo() failed with multichotomous trees: this is
946       fixed.
947
948
949 OTHER CHANGES
950
951     o read.dna() now returns the sequences in a matrix if they are
952       aligned (interleaved or sequential format). Sequences in FASTA
953       format are still returned in a list.
954
955     o The option `full' of cophenetic.phylo() has been removed because
956       it could not be used from the generic.
957
958
959 DEPRECATED & DEFUNCT
960
961     o rotate() has been removed; this function did not work correctly
962       since ape 1.9.
963
964
965
966                 CHANGES IN APE VERSION 1.9-1
967
968
969 BUG FIXES
970
971     o Trees with a single tip were not read correctly in R as the
972       element `Nnode' was not set: this is fixed.
973
974     o unroot() did not set correctly the number of nodes of the
975       unrooted tree in most cases.
976
977     o read.GenBank() failed when fetching very long sequences,
978       particularly of the BX-series.
979
980     o A bug was introduced in read.tree() with ape 1.9: it has been
981       fixed
982
983
984
985                 CHANGES IN APE VERSION 1.9
986
987
988 NEW FEATURES
989
990     o There are two new print `methods' for trees of class "phylo" and
991       lists of trees of class "multi.tree", so that they are now
992       displayed in a compact and informative way.
993
994     o There are two new functions, old2new.phylo and new2old.phylo,
995       for converting between the old and new coding of the class
996       "phylo".
997
998     o dist.dna() has three new models: Barry and Hartigan ("BH87"),
999       LogDet ("logdet"), and paralinear ("paralin").
1000
1001     o compute.brlen() has been extended: several methods are now
1002       available to compute branch lengths.
1003
1004     o write.dna() can now handle matrices as well as lists.
1005
1006
1007 BUG FIXES
1008
1009     o cophenetic.phylo() sometimes returned a wrong result with
1010       multichotomous trees: this is fixed.
1011
1012     o rotate() failed when a single tip was specified: the tree is now
1013       returned unchanged.
1014
1015     o ace() did not return the correct index matrix with custom
1016       models: this is fixed.
1017
1018     o multi2di() did not work correctly when resolving multichotomies
1019       randomly: the topology was always the same, only the arrangement
1020       of clades was randomized: this is fixed. This function now
1021       accepts trees with no branch lengths.
1022
1023     o The output of diversi.gof() was blurred by useless prints when a
1024       user distribution was specified. This has been corrected, and
1025       the help page of this function has been expanded.
1026
1027
1028 OTHER CHANGES
1029
1030     o The internal structure of the class "phylo" has been changed:
1031       see the document "Definition of Formats for Coding Phylogenetic
1032       Trees in R" for the details. In addition, the code of most
1033       functions has been improved.
1034
1035     o Several functions have been improved by replacing some R codes
1036       by C codes: pic, plot.phylo, and reorder.phylo.
1037
1038     o There is now a citation information: see citation("ape") in R.
1039
1040     o write.tree() now does not add extra 0's to branch lengths so
1041       that 1.23 is printed "1.23" by default, not "1.2300000000".
1042
1043     o The syntax of bind.tree() has been simplified. This function now
1044       accepts trees with no branch lengths, and handles correctly node
1045       labels.
1046
1047     o The option `as.numeric' of mrca() has been removed.
1048
1049     o The unused options `format' and `rooted' of read.tree() have
1050       been removed.
1051
1052     o The unused option `format' of write.tree() has been removed.
1053
1054     o The use of node.depth() has been simplified.
1055
1056
1057
1058                 CHANGES IN APE VERSION 1.8-5
1059
1060
1061 NEW FEATURES
1062
1063     o Two new functions read.nexus.data() and write.nexus.data(),
1064       contributed by Johan Nylander, allow to read and write molecular
1065       sequences in NEXUS files.
1066
1067     o The new function reorder.phylo() reorders the internal structure
1068       of a tree of class "phylo". It is used as the generic, e.g.,
1069       reorder(tr).
1070
1071     o read.tree() and read.nexus() can now read trees with a single
1072       edge.
1073
1074     o The new data set `cynipids' supplies a set of protein sequences
1075       in NEXUS format.
1076
1077
1078 BUG FIXES
1079
1080     o The code of all.equal.phylo() has been completely rewritten
1081       (thanks to Benoît Durand) which fixes several bugs.
1082
1083     o read.tree() and read.nexus() now checks the labels of the tree
1084       to remove or substitute any characters that are illegal in the
1085       Newick format (parentheses, etc.)
1086
1087     o A negative P-value could be returned by mantel.test(): this is
1088       now fixed.
1089
1090
1091
1092                 CHANGES IN APE VERSION 1.8-4
1093
1094
1095 NEW FEATURES
1096
1097     o The new function sh.test() computes the Shimodaira-
1098       Hasegawa test.
1099
1100     o The new function collapse.singles() removes the nodes with a
1101       single descendant from a tree.
1102
1103     o plot.phylo() has a new argument `tip.color' to specify the
1104       colours of the tips.
1105
1106     o mlphylo() has now an option `quiet' to control the display of
1107       the progress of the analysis (the default is FALSE).
1108
1109
1110 BUG FIXES
1111
1112     o read.dna() did not read correctly sequences in sequential format
1113       with leading alignment gaps "-": this is fixed.
1114
1115     o ace() returned a list with no class so that the generic
1116       functions (anova, logLik, ...) could not be used directly. This
1117       is fixed as ace() now returns an object of class "ace".
1118
1119     o anova.ace() had a small bug when computing the number of degrees
1120       of freedom: this is fixed.
1121
1122     o mlphylo() did not work when the sequences were in a matrix or
1123       a data frame: this is fixed.
1124
1125     o rtree() did not work correctly when trying to simulate an
1126       unrooted tree with two tips: an error message is now issued.
1127
1128
1129 OTHER CHANGES
1130
1131     o The algorithm of rtree() has been changed: it is now about 40,
1132       100, and 130 times faster for 10, 100, and 1000 tips,
1133       respectively.
1134
1135
1136
1137                 CHANGES IN APE VERSION 1.8-3
1138
1139
1140 NEW FEATURES
1141
1142     o There are four new `method' functions to be used with the
1143       results of ace(): logLik(), deviance(), AIC(), and anova().
1144
1145     o The plot method of phymltest has two new arguments: `main' to
1146       change the title, and `col' to control the colour of the
1147       segments showing the AIC values.
1148
1149     o ace() has a new argument `ip' that gives the initial values used
1150       in the ML estimation with discrete characters (see the examples
1151       in ?ace). This function now returns a matrix giving the indices
1152       of the estimated rates when analysing discrete characters.
1153
1154     o nodelabels() and tiplabels() have a new argument `pie' to
1155       represent proportions, with any number of categories, as
1156       piecharts. The use of the option `thermo' has been improved:
1157       there is now no limitation on the number of categories.
1158
1159
1160 BUG FIXES
1161
1162     o mlphylo() did not work with more than two partitions: this is
1163       fixed.
1164
1165     o root() failed if the proposed outgroup was already an outgroup
1166       in the tree: this is fixed.
1167
1168     o The `col' argument in nodelabels() and tiplabels() was not
1169       correctly passed when `text' was used: this is fixed.
1170
1171     o Two bugs were fixed in mlphylo(): parameters were not always
1172       correctly output, and the estimation failed in some cases.
1173
1174     o plot.phylo() was stuck when given a tree with a single tip: this
1175       is fixed and a message error is now returned.
1176
1177     o An error was corrected in the help page of gammaStat regarding
1178       the calculation of P-values.
1179
1180     o Using gls() could crash R when the number of species in the tree
1181       and in the variables were different: this is fixed.
1182
1183
1184
1185                 CHANGES IN APE VERSION 1.8-2
1186
1187
1188 NEW FEATURES
1189
1190     o The new function mlphylo() fits a phylogenetic tree by maximum
1191       likelihood from DNA sequences. Its companion function DNAmodel()
1192       is used to define the substitution model which may include
1193       partitioning. There are methods for logLik(), deviance(), and
1194       AIC(), and the summary() method has been extended to display in
1195       a friendly way the results of this model fitting. Currently, the
1196       functionality is limited to estimating the substitution and
1197       associated parameters and computing the likelihood.
1198
1199     o The new function drop1.compar.gee (used as, e.g., drop1(m))
1200       tests for single effects in GEE-based comparative method. A
1201       warning message is printed if there is not enough degrees of
1202       freedom.
1203
1204
1205 BUG FIXES
1206
1207     o An error message was sometimes issued by plot.multi.tree(),
1208       though with no consequence.
1209
1210
1211
1212                 CHANGES IN APE VERSION 1.8-1
1213
1214
1215 NEW FEATURES
1216
1217     o There is a new plot method for lists of trees (objects of class
1218       "multi.tree"): it calls plot.phylo() internally and is
1219       documented on the same help page.
1220
1221
1222 BUG FIXES
1223
1224     o A bug was fixed in the C code that analyzes bipartitions: this
1225       has impact on several functions like prop.part, prop.clades,
1226       boot.phylo, or consensus.
1227
1228     o root() did not work correctly when the specified outgroup had
1229       more than one element: this is fixed.
1230
1231     o dist.dna() sometimes returned a warning inappropriately: this
1232       has been corrected.
1233
1234     o If the distance object given to nj() had no rownames, nj()
1235       returned a tree with no tip labels: it now returns tips labelled
1236       "1", "2", ..., corresponding to the row numbers.
1237
1238
1239 OTHER CHANGES
1240
1241     o nj() has been slightly changed so that tips with a zero distance
1242       are first aggregated with zero-lengthed branches; the usual NJ
1243       procedure is then performed on a distance matrix without 0's.
1244
1245
1246
1247                 CHANGES IN APE VERSION 1.8
1248
1249
1250 NEW FEATURES
1251
1252     o The new function chronopl() estimates dates using the penalized
1253       likelihood method by Sanderson (2002; Mol. Biol. Evol., 19:101).
1254
1255     o The new function consensus() calculates the consensus tree of a
1256       list of trees.
1257
1258     o The new function evolve.phylo() simulates the evolution of
1259       continuous characters along a phylogeny under a Brownian model.
1260
1261     o The new plot method for objects of class "ancestral" displays a
1262       tree together with ancestral values, as returned by the above
1263       function.
1264
1265     o The new function as.phylo.formula() returns a phylogeny from a
1266       set of nested taxonomic variables given as a formula.
1267
1268     o The new function read.caic() reads trees in CAIC format.
1269
1270     o The new function tiplabels() allows to add labels to the tips
1271       of a tree using text or plotting symbols in a flexible way.
1272
1273     o The new function unroot() unroots a phylogeny.
1274
1275     o multi2di() has a new option, `random', which specifies whether
1276       to resolve the multichotomies randomly (the default) or not.
1277
1278     o prop.part() now returns an object of class "prop.part" for which
1279       there are print (to display a partition in a more friendly way)
1280       and summary (to extract the numbers) methods.
1281
1282     o plot.phylo() has a new option, `show.tip.label', specifying
1283       whether to print the labels of the tips. The default is TRUE.
1284
1285     o The code of nj() has been replaced by a faster C code: it is now
1286       about 10, 25, and 40 times faster for 50, 100, and 200 taxa,
1287       respectively.
1288
1289     o write.nexus() now writes whether a tree is rooted or not.
1290
1291
1292 BUG FIXES
1293
1294     o Two bugs have been fixed in root(): unrooted trees are now
1295       handled corretly, and node labels are now output normally.
1296
1297     o A bug was fixed in phymltest(): the executable couldn't be found
1298       in some cases.
1299
1300     o Three bug have been fixed in ace(): computing the likelihood of
1301       ancestral states of discrete characters failed, custom models
1302       did not work, and the function failed with a null gradient (a
1303       warning message is now returned; this latter bug was also
1304       present in yule.cov() as well and is now fixed).
1305
1306     o pic() hanged out when missing data were present: a message error
1307       is now returned.
1308
1309     o A small bug was fixed in dist.dna() where the gamma correction
1310       was not always correctly dispatched.
1311
1312     o plot.phylo() plotted correctly the root edge only when the tree
1313       was plotted rightwards: this works now for all directions.
1314
1315
1316 OTHER CHANGES
1317
1318     o dist.taxo() has been renamed as weight.taxo().
1319
1320     o dist.phylo() has been replaced by the method cophenetic.phylo().
1321
1322     o Various error and warning messages have been improved.
1323
1324
1325
1326                 CHANGES IN APE VERSION 1.7
1327 NEW FEATURES
1328
1329     o The new function ace() estimates ancestral character states for
1330       continuous characters (with ML, GLS, and contrasts methods), and
1331       discrete characters (with ML only) for any number of states.
1332
1333     o The new function compar.ou() fits the Ornstein-Uhlenbeck model
1334       of directional evolution for continuous characters. The user
1335       specifies the node(s) of the tree where the character optimum
1336       changes.
1337
1338     o The new function is.rooted() tests whether a tree (of class
1339       "phylo") is rooted.
1340
1341     o The new function rcoal() generates random ultrametric trees with
1342       the possibility to specify the function that generates the
1343       inter-nodes distances.
1344
1345     o The new function mrca() gives for all pairs of tips in a tree
1346       (and optionally nodes too) the most recent common ancestor.
1347
1348     o nodelabels() has a new option `thermo' to plot proportions (up
1349       to three classes) on the nodes of a tree.
1350
1351     o rtree() has been improved: it can now generate rooted or
1352       unrooted trees, and the mathematical function that generates the
1353       branch lengths may be specified by the user. The tip labels may
1354       be given directly in the call to rtree. The limit cases (n = 2,
1355       3) are now handled correctly.
1356
1357     o dist.topo() has a new argument `method' with two choices: "PH85"
1358       for Penny and Henny's method (already available before and now
1359       the default), and "BHV01" for the geometric distance by Billera
1360       et al. (2001, Adv. Appl. Math. 27:733).
1361
1362     o write.tree() has a new option, `digits', which specifies the
1363       number of digits to be printed in the Newick tree. By default
1364       digits = 10. The numbers are now always printed in decimal form
1365       (i.e., 1.0e-1 is now avoided).
1366
1367     o dist.dna() can now compute the raw distances between pairs of
1368       DNA sequences by specifying model = "raw".
1369
1370     o dist.phylo() has a new option `full' to possibly compute the
1371       distances among all tips and nodes of the tree. The default if
1372       `full = FALSE'.
1373
1374
1375 BUG FIXES
1376
1377     o Several bugs were fixed in all.equal.phylo().
1378
1379     o dist.dna() did not handle correctly gaps ("-") in alignments:
1380       they are now considered as missing data.
1381
1382     o rotate() did not work if the tips were not ordered: this is
1383       fixed.
1384
1385     o mantel.test() returned NA in some special cases: this is fixed
1386       and the function has been improved and is now faster.
1387
1388     o A bug was fixed in diversi.gof() where the calculation of A² was
1389       incorrect.
1390
1391     o cherry() did not work correctly under some OSs (mainly Linux):
1392       this is fixed.
1393
1394     o is.binary.tree() has been modified so that it works with both
1395       rooted and unrooted trees.
1396
1397     o The documentation of theta.s() was not correct: this has been
1398       fixed.
1399
1400     o plot.mst() did not work correctly: this is fixed.
1401
1402
1403
1404                 CHANGES IN APE VERSION 1.6
1405
1406
1407 NEW FEATURES
1408
1409     o The new function dist.topo() computes the topological distances
1410       between two trees.
1411
1412     o The new function boot.phylo() performs a bootstrap analysis on
1413       phylogeny estimation.
1414
1415     o The new functions prop.part() and prop.clades() analyse
1416       bipartitions from a series of trees.
1417
1418
1419 OTHER CHANGES
1420
1421     o read.GenBank() now uses the EFetch utility of NCBI instead of
1422       the usual Web interface: it is now much faster (e.g., 12 times
1423       faster to retrieve 8 sequences, 37 times for 60 sequences).
1424
1425
1426 BUG FIXES
1427
1428     o Several bugs were fixed in read.dna().
1429
1430     o Several bugs were fixed in diversi.time().
1431
1432     o is.binary.tree() did not work correctly if the tree has no edge
1433       lengths: this is fixed.
1434
1435     o drop.tip() did not correctly propagated the `node.label' of a
1436       tree: this is fixed.
1437
1438
1439
1440                 CHANGES IN APE VERSION 1.5
1441
1442
1443 NEW FEATURES
1444
1445     o Two new functions, as.matching.phylo() and as.phylo.matching(),
1446       convert objects between the classes "phylo" and "matching". The
1447       latter implements the representation of binary trees introduced by
1448       Diaconis and Holmes (1998; PNAS 95:14600). The generic function
1449       as.matching() has been introduced as well.
1450
1451     o Two new functions, multi2di() and di2multi(), allow to resolve
1452       and collapse multichotomies with branches of length zero.
1453
1454     o The new function nuc.div() computes the nucleotide diversity
1455       from a sample a DNA sequences.
1456
1457     o dist.dna() has been completely rewritten with a much faster
1458       (particularly for large data sets) C code. Eight models are
1459       available: JC69, K80, F81, K81, F84, T92, TN93, and GG95 (the
1460       option `method' has been renamed `model'). Computation of variance
1461       is available for all models. A gamma-correction is possible for
1462       JC69, K80, F81, and TN93. There is a new option, pairwise.deletion,
1463       to remove sites with missing data on a pairwise basis. The option
1464       `GCcontent' has been removed.
1465
1466     o read.GenBank() has a new option (species.names) which specifies
1467       whether to return the species names of the organisms in addition
1468       to the accession numbers of the sequences (this is the default
1469       behaviour).
1470
1471     o write.nexus() can now write several trees in the same NEXUS file.
1472
1473     o drop.tip() has a new option `root.edge' that allows to specify the
1474       new root edge if internal branches are trimmed.
1475
1476
1477 BUG FIXES
1478
1479     o as.phylo.hclust() failed if some labels had parentheses: this
1480       is fixed.
1481
1482     o Several bugs were fixed in all.equal.phylo(). This function now
1483       returns the logical TRUE if the trees are identical but with
1484       different representations (a report was printed previously).
1485
1486     o read.GenBank() did not correctly handle ambiguous base codes:
1487       this is fixed.
1488
1489
1490 OTHER CHANGES
1491
1492     o birthdeath() now returns an object of class "birthdeath" for
1493       which there is a print method.
1494
1495
1496
1497                 CHANGES IN APE VERSION 1.4
1498
1499
1500 NEW FEATURES
1501
1502     o The new function nj() performs phylogeny estimation with the
1503       neighbor-joining method of Saitou and Nei (1987; Mol. Biol.
1504       Evol., 4:406).
1505
1506     o The new function which.edge() identifies the edges of a tree
1507       that belong to a group specified as a set of tips.
1508
1509     o The new function as.phylo.phylog() converts an object of class
1510       "phylog" (from the package ade4) into an object of class
1511       "phylo".
1512
1513     o The new function axisPhylo() draws axes on the side of a
1514       phylogeny plot.
1515
1516     o The new function howmanytrees() calculates the number of trees
1517       in different cases and giving a number of tips.
1518
1519     o write.tree() has a new option `multi.line' (TRUE by default) to
1520       write a Newick tree on several lines rather than on a single
1521       line.
1522
1523     o The functionalities of zoom() have been extended. Several
1524       subtrees can be visualized at the same time, and they are marked
1525       on the main tree with colors. The context of the subtrees can be
1526       marked with the option `subtree' (see below).
1527
1528     o drop.tip() has a new option `subtree' (FALSE by default) which
1529       specifies whether to output in the tree how many tips have been
1530       deleted and where.
1531
1532     o The arguments of add.scale.bar() have been redefined and have
1533       now default values (see ?add.scale.bar for details). This
1534       function now works even if the plotted tree has no edge length.
1535
1536     o plot.phylo() can now plot radial trees, but this does not take
1537       edge lengths into account.
1538
1539     o In plot.phylo() with `type = "phylogram"', if the values of
1540       `edge.color' and `edge.width' are identical for sister-branches,
1541       they are propagated to the vertical line that link them.
1542
1543
1544 BUG FIXES
1545
1546     o Repeated calls to as.phylo.hclust() or as.hclust.phylo() made R
1547       crashing. This is fixed.
1548
1549     o In plot.phylo(), the options `edge.color' and `edge.width' are
1550       now properly recycled; their default values are now "black" and
1551       1, respectively.
1552
1553     o A bug has been fixed in write.nexus().
1554
1555
1556 OTHER CHANGES
1557
1558     o The function node.depth.edgelength() has been removed and
1559       replaced by a C code.
1560
1561
1562
1563                 CHANGES IN APE VERSION 1.3-1
1564
1565
1566 NEW FEATURES
1567
1568     o The new function nodelabels() allows to add labels to the nodes
1569       of a tree using text or plotting symbols in a flexible way.
1570
1571     o In plot.phylo() the arguments `x.lim' and `y.lim' can now be two
1572       numeric values specifying the lower and upper limits on the x-
1573       and y-axes. This allows to leave some space on any side of the
1574       tree. If a single value is given, this is taken as the upper
1575       limit (as before).
1576
1577
1578
1579                 CHANGES IN APE VERSION 1.3
1580
1581
1582 NEW FEATURES
1583
1584     o The new function phymltest() calls the software PHYML and fits
1585       28 models of DNA sequence evolution. There are a print method to
1586       display likelihood and AIC values, a summary method to compute
1587       the hierarchical likelihood ratio tests, and a plot method to
1588       display graphically the AIC values of each model.
1589
1590     o The new function yule.cov() fits the Yule model with covariates,
1591       a model where the speciation rate is affected by several species
1592       traits through a generalized linear model. The parameters are
1593       estimated by maximum likelihood.
1594
1595     o Three new functions, corBrownian(), corGrafen(), and
1596       corMartins(), compute the expected correlation structures among
1597       species given a phylogeny under different models of evolution.
1598       These can be used for GLS comparative phylogenetic methods (see
1599       the examples). There are coef() and corMatrix() methods and an
1600       Initialize.corPhyl() function associated.
1601
1602     o The new function compar.cheverud() implements Cheverud et al.'s
1603       (1985; Evolution 39:1335) phylogenetic comparative method.
1604
1605     o The new function varcomp() estimates variance components; it has
1606       a plot method.
1607
1608     o Two new functions, panel.superpose.correlogram() and
1609       plot.correlogramList(), allow to plot several phylogenetic
1610       correlograms.
1611
1612     o The new function node.leafnumber() computes the number of leaves
1613       of a subtree defined by a particular node.
1614
1615     o The new function node.sons() gets all tags of son nodes from a
1616       given parent node.
1617
1618     o The new function compute.brlen() computes the branch lengths of
1619       a tree according to a specified method.
1620
1621     o plot.phylo() has three new options: "cex" controls the size of
1622       the (tip and node) labels (thus it is no more needed to change
1623       the global graphical parameter), "direction" which allows to
1624       plot the tree rightwards, leftwards, upwards, or downwards, and
1625       "y.lim" which sets the upper limit on the y-axis.
1626
1627
1628 BUG FIXES
1629
1630     o Some functions which try to match tip labels and names of
1631       additional data (e.g. vector) are likely to fail if there are
1632       typing or syntax errors. If both series of names do not perfectly
1633       match, they are ignored and a warning message is now issued.
1634       These functions are bd.ext, compar.gee, pic. Their help pages
1635       have been clarified on this point.
1636
1637
1638
1639                 CHANGES IN APE VERSION 1.2-7
1640
1641
1642 NEW FEATURES
1643
1644     o The new function root() reroots a phylogenetic tree with respect
1645       to a specified outgroup.
1646
1647     o The new function rotate() rotates an internal branch of a tree.
1648
1649     o In plot.phylo(), the new argument "lab4ut" (labels for unrooted
1650       trees) controls the display of the tip labels in unrooted trees.
1651       This display has been greatly improved: the tip labels are now not
1652       expected to overlap with the tree (particularly if lab4ut =
1653       "axial"). In all cases, combining appropriate values of "lab4ut"
1654       and the font size (via "par(cex = )") should result in readable
1655       unrooted trees. See ?plot.phylo for some examples.
1656
1657     o In drop.tip(), the argument `tip' can now be numeric or character.
1658
1659
1660 BUG FIXES
1661
1662     o drop.tip() did not work correctly with trees with no branch
1663       lengths: this is fixed.
1664
1665     o A bug in plot.phylo(..., type = "unrooted") made some trees being
1666       plotted with some line crossings: this is now fixed.
1667
1668
1669
1670                 CHANGES IN APE VERSION 1.2-6
1671
1672
1673 NEW FEATURES
1674
1675     o Six new functions (Moran.I, correlogram.formula, discrete.dist,
1676       correlogram.phylo, dist.taxo, plot.correlogram) have been added
1677       to implement comparative methods with an autocorrelation approach.
1678
1679     o A new data set describing some life history traits of Carnivores
1680       has been included.
1681
1682
1683 BUG FIXES
1684
1685     o A fix was made on mcmc.popsize() to conform to R 2.0.0.
1686
1687
1688 OTHER CHANGES
1689
1690     o When plotting a tree with plot.phylo(), the new default of the
1691       option `label.offset' is now 0, so the labels are always visible.
1692
1693
1694
1695                 CHANGES IN APE VERSION 1.2-5
1696
1697
1698 NEW FEATURES
1699
1700     o The new function bd.ext() fits a birth-death model with combined
1701       phylogenetic and taxonomic data, and estimates the corresponding
1702       speciation and extinction rates.
1703
1704
1705 OTHER CHANGES
1706
1707     o The package gee is no more required by ape but only suggested
1708       since only the function compar.gee() calls gee.
1709
1710
1711
1712                 CHANGES IN APE VERSION 1.2-4
1713
1714
1715 NEW FEATURES
1716
1717     o Four new functions (mcmc.popsize, extract.popsize, plot.popsize,
1718       and lines.popsize) implementing a new approach for inferring the
1719       demographic history from genealogies using a reversible jump
1720       MCMC have been introduced.
1721
1722     o The unit of time in the skyline plot and in the new plots can
1723       now be chosen to be actual years, rather than substitutions.
1724
1725
1726
1727                 CHANGES IN APE VERSION 1.2-3
1728
1729
1730 NEW FEATURES
1731
1732     o The new function rtree() generates a random binary tree with or
1733       without branch lengths.
1734
1735     o Two new functions for drawing lineages-through-time (LTT) plots
1736       are provided: ltt.lines() adds a LTT curve to an existing plot,
1737       and mltt.plot() does a multiple LTT plot giving several trees as
1738       arguments (see `?ltt.plot' for details).
1739
1740
1741 BUG FIXES
1742
1743     o Some taxon names made R crashing when calling as.phylo.hclust():
1744       this is fixed.
1745
1746     o dist.dna() returned an error with two identical DNA sequences
1747       (only using the Jukes-Cantor method returned 0): this is fixed.
1748
1749
1750 OTHER CHANGES
1751
1752     o The function dist.phylo() has been re-written using a different
1753       algorithm: it is now about four times faster.
1754
1755     o The code of branching.times() has been improved: it is now about
1756       twice faster.
1757
1758
1759
1760                 CHANGES IN APE VERSION 1.2-2
1761
1762
1763 NEW FEATURES
1764
1765     o The new function seg.sites() finds the segregating sites in a
1766       sample of DNA sequences.
1767
1768
1769 BUG FIXES
1770
1771     o A bug introduced in read.tree() and in read.nexus() with version
1772       1.2-1 was fixed.
1773
1774     o A few errors were corrected and a few examples were added in the
1775       help pages.
1776
1777
1778
1779                 CHANGES IN APE VERSION 1.2-1
1780
1781
1782 NEW FEATURES
1783
1784     o plot.phylo() can now draw the edge of the root of a tree if it
1785       has one (see the new option `root.edge', its default is FALSE).
1786
1787
1788 BUG FIXES
1789
1790     o A bug was fixed in read.nexus(): files with semicolons inside
1791       comment blocks were not read correctly.
1792
1793     o The behaviour of read.tree() and read.nexus() was corrected so
1794       that tree files with badly represented root edges (e.g., with
1795       an extra pair of parentheses, see the help pages for details)
1796       are now correctly represented in the object of class "phylo";
1797       a warning message is now issued.
1798
1799
1800
1801                 CHANGES IN APE VERSION 1.2
1802
1803
1804 NEW FEATURES
1805
1806     o plot.phylo() has been completely re-written and offers several
1807       new functionalities. Three types of trees can now be drawn:
1808       phylogram (as previously), cladogram, and unrooted tree; in
1809       all three types the branch lengths can be drawn using the edge
1810       lengths of the phylogeny or not (e.g., if the latter is absent).
1811       The vertical position of the nodes can be adjusted with two
1812       choices (see option `node.pos'). The code has been re-structured,
1813       and two new functions (potentially useful for developpers) are
1814       documented separately: node.depth.edgelength() and node.depth();
1815       see the respective help pages for details.
1816
1817     o The new function zoom() allows to explore very large trees by
1818       focusing on a small portion of it.
1819
1820     o The new function yule() fits by maximum likelihood the Yule model
1821       (birth-only process) to a phylogenetic tree.
1822
1823     o Support for writing DNA sequences in FASTA format has been
1824       introduced in write.dna() (support for reading sequences in
1825       this format was introduced in read.dna() in version 1.1-2).
1826       The function has been completely re-written, fixing some bugs
1827       (see below); the default behaviour is no more to display the
1828       sequences on the standard output. Several options have been
1829       introduced to control the sequence printing in a flexible
1830       way. The help page has been extended.
1831
1832     o A new data set is included: a supertree of bats in NEXUS format.
1833
1834
1835 BUG FIXES
1836
1837     o In theta.s(), the default of the option `variance' has
1838       been changed to `FALSE' (as was indicated in the help page).
1839
1840     o Several bugs were fixed in the code of all.equal.phylo().
1841
1842     o Several bugs were fixed in write.dna(), particularly this
1843       function did not work with `format = "interleaved"'.
1844
1845     o Various errors were corrected in the help pages.
1846
1847
1848 OTHER CHANGES
1849
1850     o The argument names of as.hclust.phylo() have been changed
1851       from "(phy)" to "(x, ...)" to conform to the definition of
1852       the corresponding generic function.
1853
1854     o gamma.stat() has been renamed gammaStat() to avoid confusion
1855       since gamma() is a generic function.
1856
1857
1858
1859                 CHANGES IN APE VERSION 1.1-3
1860
1861
1862 BUG FIXES
1863
1864     o base.freq() previously did not return a value of 0 for
1865       bases absent in the data (e.g., a vector of length 3 was
1866       returned if one base was absent). This is now fixed (a
1867       vector of length 4 is always returned).
1868
1869     o Several bugs were fixed in read.nexus(), including that this
1870       function did not work in this absence of a "TRANSLATE"
1871       command in the NEXUS file, and that the commands were
1872       case-sensitive.
1873
1874
1875
1876                 CHANGES IN APE VERSION 1.1-2
1877
1878
1879 NEW FEATURES
1880
1881     o The Tamura and Nei (1993) model of DNA distance is now implemented
1882       in dist.dna(): five models are now available in this function.
1883
1884     o A new data set is included: a set of 15 sequences of the
1885       cytochrome b mitochondrial gene of the woodmouse (Apodemus
1886       sylvaticus).
1887
1888
1889 BUG FIXES
1890
1891     o A bug in read.nexus() was fixed.
1892
1893     o read.dna() previously did not work correctly in most cases.
1894       The function has been completely re-written and its help page
1895       has been considerably extended (see ?read.dna for details).
1896       Underscores (_) in taxon names are no more replaced with
1897       spaces (this behaviour was undocumented).
1898
1899     o A bug was fixed in write.dna().
1900
1901
1902
1903                 CHANGES IN APE VERSION 1.1-1
1904
1905
1906 BUG FIXES
1907
1908     o A bug in read.tree() introduced in APE 1.1 was fixed.
1909
1910     o A bug in compar.gee() resulted in an error when trying to fit
1911       a model with `family = "binomial"'. This is now fixed.
1912
1913
1914
1915                 CHANGES IN APE VERSION 1.1
1916
1917
1918 NEW FEATURES
1919
1920     o The Klastorin (1982) method as suggested by Misawa and Tajima
1921       (2000, Mol. Biol. Evol. 17:1879-1884) for classifying genes
1922       on the basis of phylogenetic trees has been implemented (see
1923       the function klastorin()).
1924
1925     o Functions have been added to convert APE's "phylo" objects in
1926       "hclust" cluster objects and vice versa (see the help page of
1927       as.phylo for details).
1928
1929     o Three new functions, ratogram(), chronogram() and NPRS.criterion(),
1930       are introduced for the estimation of absolute evolutionary rates
1931       (ratogram) and dated clock-like trees (chronogram) from
1932       phylogenetic trees using the non-parametric rate smoothing approach
1933       by MJ Sanderson (1997, Mol. Biol. Evol. 14:1218-1231).
1934
1935     o A summary method is now provided printing a summary information on a
1936       phylogenetic tree with, for instance, `summary(tree)'.
1937
1938     o The behaviour of read.tree() was changed so that all spaces and
1939       tabulations in tree files are now ignored. Consequently, spaces in tip
1940       labels are no more allowed. Another side effect is that read.nexus()
1941       now does not replace the underscores (_) in tip labels with spaces
1942       (this behaviour was undocumented).
1943
1944     o The function plot.phylo() has a new option (`underscore') which
1945       specifies whether the underscores in tip labels should be written on
1946       the plot as such or replaced with spaces (the default).
1947
1948     o The function birthdeath() now computes 95% confidence intervals of
1949       the estimated parameters using profile likelihood.
1950
1951     o Three new data sets are included: a gene tree estimated from 36
1952       landplant rbcL sequences, a gene tree estimated from 32 opsin
1953       sequences, and a gene tree for 50 BRCA1 mammalian sequences.
1954
1955
1956 BUG FIXES
1957
1958     o A bug was fixed in dist.gene() where nothing was returned.
1959
1960     o A bug in plot.mst() was fixed.
1961
1962     o A bug in vcv.phylo() resulted in false correlations when the
1963       option `cor = TRUE' was used (now fixed).
1964
1965
1966
1967                 CHANGES IN APE VERSION 1.0
1968
1969
1970 NEW FEATURES
1971
1972     o Two new functions, read.dna() and write.dna(), read/write in a file
1973       DNA sequences in interleaved or in sequential format.
1974
1975     o Two new functions, read.nexus() and write.nexus(), read/write trees
1976       in a NEXUS file.
1977
1978     o The new function bind.tree() allows to bind two trees together,
1979       possibly handling root edges to give internal branches.
1980
1981     o The new function drop.tip() removes the tips in a phylogenetic tree,
1982       and trims (or not) the corresponding internal branches.
1983
1984     o The new function is.ultrametric() tests if a tree is ultrametric.
1985
1986     o The function plot.phylo() has more functionalities such as drawing the
1987       branches with different colours and/or different widths, showing the
1988       node labels, controling the position and font of the labels, rotating
1989       the labels, and controling the space around the plot.
1990
1991     o The function read.tree() can now read trees with no branch length,
1992       such as "(a,b),c);". Consequently, the element `edge.length' in
1993       objects of class "phylo" is now optional.
1994
1995     o The function write.tree() has a new default behaviour: if the default
1996       for the option `file' is used (i.e. file = ""), then a variable of
1997       mode character containing the tree in Newick format is returned which
1998       can thus be assigned (e.g., tree <- write.tree(phy)).
1999
2000     o The function read.tree() has a new argument `text' which allows
2001       to read the tree in a variable of mode character.
2002
2003     o A new data set is included: the phylogenetic relationships among
2004       the orders of birds from Sibley and Ahlquist (1990).
2005
2006
2007
2008                 CHANGES IN APE VERSION 0.2-1
2009
2010
2011 BUG FIXES
2012
2013     o Several bugs were fixed in the help pages.
2014
2015
2016
2017                 CHANGES IN APE VERSION 0.2
2018
2019
2020 NEW FEATURES
2021
2022     o The function write.tree() writes phylogenetic trees (objects of class
2023       "phylo") in an ASCII file using the Newick parenthetic format.
2024
2025     o The function birthdeath() fits a birth-death model to branching times
2026       by maximum likelihood, and estimates the corresponding speciation and
2027       extinction rates.
2028
2029     o The function scale.bar() adds a scale bar to a plot of a phylogenetic
2030       tree.
2031
2032     o The function is.binary.tree() tests whether a phylogeny is binary.
2033
2034     o Two generic functions, coalescent.intervals() and collapsed.intervals(),
2035       as well as some methods are introduced.
2036
2037     o Several functions, including some generics and methods, for computing
2038       skyline plot estimates (classic and generalized) of effective
2039       population size through time are introduced and replace the function
2040       skyline.plot() in version 0.1.
2041
2042     o Two data sets are now included: the phylogenetic relationships among
2043       the families of birds from Sibley and Ahlquist (1990), and an
2044       estimated clock-like phylogeny of HIV sequences sampled in the
2045       Democratic Republic of Congo.
2046
2047
2048 DEPRECATED & DEFUNCT
2049
2050     o The function skyline.plot() in ape 0.1 has been deprecated and
2051       replaced by more elaborate functions (see above).
2052
2053
2054 BUG FIXES
2055
2056     o Two important bugs were fixed in plot.phylo(): phylogenies with
2057       multichotomies not at the root or not with only terminal branches,
2058       and phylogenies with a single node (i.e. only terminal branches)
2059       did not plot. These trees should be plotted correctly now.
2060
2061     o Several bugs were fixed in diversi.time() in the computation of
2062       AICs and LRTs.
2063
2064     o Various errors were corrected in the help pages.