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