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