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