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