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