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