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