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