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