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