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