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