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