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