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