]> git.donarmstrong.com Git - ape.git/blob - Changes
current 2.1 release
[ape.git] / Changes
1                 CHANGES IN APE VERSION 2.1
2
3
4 NEW FEATURES
5
6     o The new function identify.phylo identifies clades on a plotted
7       tree using the mouse.
8
9     o It is now possible to subset a list of trees (object of class
10       "multiPhylo") with "[" while keeping its class correct.
11
12     o The new function as.DNAbin.alignment converts DNA sequences
13       stored in the "alignment" format of the package seqinr into
14       an object of class "DNAbin".
15
16     o The new function weight.taxo2 helps to build similarity matrices
17       given two taxonomic levels (usually called by other functions).
18
19     o write.tree() can now take a list of trees (class "multiPhylo")
20       as its main argument.
21
22     o plot.correlogram() and plot.correlogramList() have been
23       improved, and gain several options (see the help page for
24       details). A legend is now plotted by default.
25
26
27 BUG FIXES
28
29     o dist.dna() returned some incorrect values with `model = "JC69"'
30       and `pairwise.deletion = TRUE'. This affected only the
31       distances involving sequences with missing values. (Thanks
32       to Bruno Toupance for digging this bug out.)
33
34     o write.tree() failed with some trees: this is fixed by removing
35       the `multi.line' option (trees are now always printed on a
36       single line).
37
38     o read.nexus() did not correctly detect trees with multiple root
39       edges (see OTHER CHANGES).
40
41
42 OTHER CHANGES
43
44     o The code of mlphylo() has almost entirely rewritten, and should
45       much stabler now. The options have been also greatly simplified
46       (see ?mlphylo and ?DNAmodel for details).
47
48     o The internal function nTips has been renamed klastorin_nTips.
49
50     o The code of is.ultrametric() contained redundancies and has
51       been cleaned-up.
52
53     o The code of Moran.I() and of correlogram.formula() have been
54       improved.
55
56     o read.tree() and read.nexus() now return an error when trying to
57       read a tree with multiple root edges (see BUG FIXES). The
58       correction applied in previous version did not work in all
59       situations.
60
61     o The class c("multi.tree", "phylo") has been renamed
62       "multiPhylo".
63
64
65 DOCUMENTATION
66
67     o There is now a vignette in ape: see vignette("MoranI", "ape").
68
69
70 DEPRECATED & DEFUNCT
71
72     o as.matching() and as.phylo.matching() do not support branch
73       lengths.
74
75     o correlogram.phylo() and discrete.dist() have been removed.
76
77
78
79                 CHANGES IN APE VERSION 2.0-2
80
81
82 NEW FEATURES
83
84     o The new function matexpo computes the exponential of a square
85       matrix.
86
87     o The new function unique.multi.tree removes duplicate trees from
88       a list.
89
90     o yule() has a new option `use.root.edge = FALSE' that specifies
91       to ignore, by default, the root edge of the tree if it exists.
92
93
94 BUG FIXES
95
96     o which.edge() failed when the index of a single terminal edge was
97       looked for.
98
99     o In diversi.time(), the values returned for model C were
100       incorrect.
101
102     o A bug was fixed in yule() that affected the calculation of the
103       likelihood in the presence of ties in the branching times.
104
105     o There was a bug in the C function mat_expo4x4 affecting the
106       calculations of the transition probabilities for models HKY and
107       GTR in mlphylo().
108
109     o A small bug was fixed in as.matrix.DNAbin (thanks to James
110       Bullard).
111
112     o rtree() did not `shuffle' the tip labels by default, so only a
113       limited number of labelled topologies could be generated.
114
115
116
117                 CHANGES IN APE VERSION 2.0-1
118
119
120 NEW FEATURES
121
122     o The three new functions bionj, fastme.ols, and fastme.bal
123       perform phylogeny estimation by the BIONJ and fastME methods in
124       OLS and balanced versions. This is a port to R of previous
125       previous programs done by Vincent Lefort.
126
127     o The new function chronoMPL performs molecular dating with the
128       mean path lengths method of Britton et al. (2002, Mol. Phyl.
129       Evol. 24: 58).
130
131     o The new function rotate, contributed by Christoph Heibl, swaps
132       two clades connected to the same node. It works also with
133       multichotomous nodes.
134
135     o The new `method' as.matrix.DNAbin() may be used to convert
136       easily DNA sequences stored in a list into a matrix while
137       keeping the names and the class.
138
139
140 BUG FIXES
141
142     o chronopl() failed when some branch lengths were equal to zero:
143       an error message is now returned.
144
145     o di2multi() failed when there was a series of consecutive edges
146       to remove.
147
148
149
150                 CHANGES IN APE VERSION 1.10-2
151
152
153 NEW FEATURES
154
155     o plot.phylo() can now plot circular trees: the option is type =
156       "fan" or type = "f" (to avoid the ambiguity with type = "c").
157
158     o prop.part() has a new option `check.labels = FALSE' which allows
159       to considerably speed-up the calculations of bipartitions. As a
160       consequence, calculations of bootstrap values with boot.phylo()
161       should be much faster.
162
163
164 BUG FIXES
165
166     o read.GenBank() did not return correctly the list of species as
167       from ape 1.10: this is fixed in this version
168
169     o Applying as.phylo() on a tree of class "phylo" failed: the
170       object is now returned unchanged.
171
172
173
174                 CHANGES IN APE VERSION 1.10-1
175
176
177 NEW FEATURES
178
179     o The three new functions Ntip, Nnode, and Nedge return, for a
180       given tree, the number of tips, nodes, or edges, respectively.
181
182
183 BUG FIXES
184
185     o read.nexus() did not set correctly the class of the returned
186       object when reading multiple trees.
187
188     o mllt.plot() failed with objects of class c("multi.tree",
189       "phylo").
190
191     o unroot() did not work correctly in most cases.
192
193     o reorder.phylo() made R freeze in some occasions.
194
195     o Plotting a tree in pruningwise order failed.
196
197     o When plotting an unrooted tree, the tip labels where not all
198       correctly positioned if the option `cex' was used.
199
200
201
202                 CHANGES IN APE VERSION 1.10
203
204
205 NEW FEATURES
206
207     o Five new `method' functions have been introduced to manipulate
208       DNA sequences in binary format (see below).
209
210     o Three new functions have been introduced to convert between the
211       new binary and the character formats.
212
213     o The new function as.alignment converts DNA sequences stored as
214       single characters into the class "alignment" used by the package
215       seqinr.
216
217     o read.dna() and read.GenBank() have a new argument `as.character'
218       controlling whether the sequences are returned in binary format
219       or as character.
220
221
222 BUG FIXES
223
224     o root() failed when the tree had node labels: this is fixed.
225
226     o plot.phylo() did not correctly set the limits on the y-axis with
227       the default setting: this is fixed.
228
229     o dist.dna() returned a wrong result for the LogDet, paralinear,
230       and BH87 models with `pairwise.deletion = TRUE'.
231
232
233 OTHER CHANGES
234
235     o DNA sequences are now internally stored in a binary format. See
236       the document "A Bit-Level Coding Scheme for Nucleotides" for the
237       details. Most functions analyzing DNA functions have been
238       modified accordingly and are now much faster (dist.dna is now
239       ca. 60 times faster).
240
241
242
243                 CHANGES IN APE VERSION 1.9-4
244
245
246 BUG FIXES
247
248     o A bug was fixed in edgelabels().
249
250     o as.phylo.hclust() did not work correctly when the object of
251       class "hclust" has its labels set to NULL: the returned tree has
252       now its tip labels set to "1", "2", ...
253
254     o consensus could fail if some tip labels are a subset of others
255       (e.g., "a" and "a_1"): this is now fixed.
256
257     o mlphylo() failed in most cases if some branch lengths of the
258       initial tree were greater than one: an error message is now
259       issued.
260
261     o mlphylo() failed in most cases when estimating the proportion of
262       invariants: this is fixed.
263
264
265
266                 CHANGES IN APE VERSION 1.9-3
267
268
269 NEW FEATURES
270
271     o The new function edgelabels adds labels on the edge of the tree
272       in the same way than nodelabels or tiplabels.
273
274
275 BUG FIXES
276
277     o multi2di() did not handle correctly branch lengths with the
278       default option `random = TRUE': this is now fixed.
279
280     o A bug was fixed in nuc.div() when using pairwise deletions.
281
282     o A bug occurred in the analysis of bipartitions with large
283       numbers of large trees, with consequences on prop.part,
284       prop.clades, and boot.phylo.
285
286     o The calculation of the Billera-Holmes-Vogtmann distance in
287       dist.topo was wrong: this has been fixed.
288
289
290
291                 CHANGES IN APE VERSION 1.9-2
292
293
294 NEW FEATURES
295
296     o The new function ladderize reorganizes the internal structure of
297       a tree to plot them left- or right-ladderized.
298
299     o The new function dist.nodes computes the patristic distances
300       between all nodes, internal and terminal, of a tree. It replaces
301       the option `full = TRUE' of cophenetic.phylo (see below).
302
303
304 BUG FIXES
305
306     o A bug was fixed in old2new.phylo().
307
308     o Some bugs were fixed in chronopl().
309
310     o The edge colours were not correctly displayed by plot.phylo
311       (thank you to Li-San Wang for the fix).
312
313     o cophenetic.phylo() failed with multichotomous trees: this is
314       fixed.
315
316
317 OTHER CHANGES
318
319     o read.dna() now returns the sequences in a matrix if they are
320       aligned (interleaved or sequential format). Sequences in FASTA
321       format are still returned in a list.
322
323     o The option `full' of cophenetic.phylo() has been removed because
324       it could not be used from the generic.
325
326
327 DEPRECATED & DEFUNCT
328
329     o rotate() has been removed; this function did not work correctly
330       since ape 1.9.
331
332
333
334                 CHANGES IN APE VERSION 1.9-1
335
336
337 BUG FIXES
338
339     o Trees with a single tip were not read correctly in R as the
340       element `Nnode' was not set: this is fixed.
341
342     o unroot() did not set correctly the number of nodes of the
343       unrooted tree in most cases.
344
345     o read.GenBank() failed when fetching very long sequences,
346       particularly of the BX-series.
347
348     o A bug was introduced in read.tree() with ape 1.9: it has been
349       fixed
350
351
352
353                 CHANGES IN APE VERSION 1.9
354
355
356 NEW FEATURES
357
358     o There are two new print `methods' for trees of class "phylo" and
359       lists of trees of class "multi.tree", so that they are now
360       displayed in a compact and informative way.
361
362     o There are two new functions, old2new.phylo and new2old.phylo,
363       for converting between the old and new coding of the class
364       "phylo".
365
366     o dist.dna() has three new models: Barry and Hartigan ("BH87"),
367       LogDet ("logdet"), and paralinear ("paralin").
368
369     o compute.brlen() has been extended: several methods are now
370       available to compute branch lengths.
371
372     o write.dna() can now handle matrices as well as lists.
373
374
375 BUG FIXES
376
377     o cophenetic.phylo() sometimes returned a wrong result with
378       multichotomous trees: this is fixed.
379
380     o rotate() failed when a single tip was specified: the tree is now
381       returned unchanged.
382
383     o ace() did not return the correct index matrix with custom
384       models: this is fixed.
385
386     o multi2di() did not work correctly when resolving multichotomies
387       randomly: the topology was always the same, only the arrangement
388       of clades was randomized: this is fixed. This function now
389       accepts trees with no branch lengths.
390
391     o The output of diversi.gof() was blurred by useless prints when a
392       user distribution was specified. This has been corrected, and
393       the help page of this function has been expanded.
394
395
396 OTHER CHANGES
397
398     o The internal structure of the class "phylo" has been changed:
399       see the document "Definition of Formats for Coding Phylogenetic
400       Trees in R" for the details. In addition, the code of most
401       functions has been improved.
402
403     o Several functions have been improved by replacing some R codes
404       by C codes: pic, plot.phylo, and reorder.phylo.
405
406     o There is now a citation information: see citation("ape") in R.
407
408     o write.tree() now does not add extra 0's to branch lengths so
409       that 1.23 is printed "1.23" by default, not "1.2300000000".
410
411     o The syntax of bind.tree() has been simplified. This function now
412       accepts trees with no branch lengths, and handles correctly node
413       labels.
414
415     o The option `as.numeric' of mrca() has been removed.
416
417     o The unused options `format' and `rooted' of read.tree() have
418       been removed.
419
420     o The unused option `format' of write.tree() has been removed.
421
422     o The use of node.depth() has been simplified.
423
424
425
426                 CHANGES IN APE VERSION 1.8-5
427
428
429 NEW FEATURES
430
431     o Two new functions read.nexus.data() and write.nexus.data(),
432       contributed by Johan Nylander, allow to read and write molecular
433       sequences in NEXUS files.
434
435     o The new function reorder.phylo() reorders the internal structure
436       of a tree of class "phylo". It is used as the generic, e.g.,
437       reorder(tr).
438
439     o read.tree() and read.nexus() can now read trees with a single
440       edge.
441
442     o The new data set `cynipids' supplies a set of protein sequences
443       in NEXUS format.
444
445
446 BUG FIXES
447
448     o The code of all.equal.phylo() has been completely rewritten
449       (thanks to Benoît Durand) which fixes several bugs.
450
451     o read.tree() and read.nexus() now checks the labels of the tree
452       to remove or substitute any characters that are illegal in the
453       Newick format (parentheses, etc.)
454
455     o A negative P-value could be returned by mantel.test(): this is
456       now fixed.
457
458
459
460                 CHANGES IN APE VERSION 1.8-4
461
462
463 NEW FEATURES
464
465     o The new function sh.test() computes the Shimodaira-
466       Hasegawa test.
467
468     o The new function collapse.singles() removes the nodes with a
469       single descendant from a tree.
470
471     o plot.phylo() has a new argument `tip.color' to specify the
472       colours of the tips.
473
474     o mlphylo() has now an option `quiet' to control the display of
475       the progress of the analysis (the default is FALSE).
476
477
478 BUG FIXES
479
480     o read.dna() did not read correctly sequences in sequential format
481       with leading alignment gaps "-": this is fixed.
482
483     o ace() returned a list with no class so that the generic
484       functions (anova, logLik, ...) could not be used directly. This
485       is fixed as ace() now returns an object of class "ace".
486
487     o anova.ace() had a small bug when computing the number of degrees
488       of freedom: this is fixed.
489
490     o mlphylo() did not work when the sequences were in a matrix or
491       a data frame: this is fixed.
492
493     o rtree() did not work correctly when trying to simulate an
494       unrooted tree with two tips: an error message is now issued.
495
496
497 OTHER CHANGES
498
499     o The algorithm of rtree() has been changed: it is now about 40,
500       100, and 130 times faster for 10, 100, and 1000 tips,
501       respectively.
502
503
504
505                 CHANGES IN APE VERSION 1.8-3
506
507
508 NEW FEATURES
509
510     o There are four new `method' functions to be used with the
511       results of ace(): logLik(), deviance(), AIC(), and anova().
512
513     o The plot method of phymltest has two new arguments: `main' to
514       change the title, and `col' to control the colour of the
515       segments showing the AIC values.
516
517     o ace() has a new argument `ip' that gives the initial values used
518       in the ML estimation with discrete characters (see the examples
519       in ?ace). This function now returns a matrix giving the indices
520       of the estimated rates when analysing discrete characters.
521
522     o nodelabels() and tiplabels() have a new argument `pie' to
523       represent proportions, with any number of categories, as
524       piecharts. The use of the option `thermo' has been improved:
525       there is now no limitation on the number of categories.
526
527
528 BUG FIXES
529
530     o mlphylo() did not work with more than two partitions: this is
531       fixed.
532
533     o root() failed if the proposed outgroup was already an outgroup
534       in the tree: this is fixed.
535
536     o The `col' argument in nodelabels() and tiplabels() was not
537       correctly passed when `text' was used: this is fixed.
538
539     o Two bugs were fixed in mlphylo(): parameters were not always
540       correctly output, and the estimation failed in some cases.
541
542     o plot.phylo() was stuck when given a tree with a single tip: this
543       is fixed and a message error is now returned.
544
545     o An error was corrected in the help page of gammaStat regarding
546       the calculation of P-values.
547
548     o Using gls() could crash R when the number of species in the tree
549       and in the variables were different: this is fixed.
550
551
552
553                 CHANGES IN APE VERSION 1.8-2
554
555
556 NEW FEATURES
557
558     o The new function mlphylo() fits a phylogenetic tree by maximum
559       likelihood from DNA sequences. Its companion function DNAmodel()
560       is used to define the substitution model which may include
561       partitioning. There are methods for logLik(), deviance(), and
562       AIC(), and the summary() method has been extended to display in
563       a friendly way the results of this model fitting. Currently, the
564       functionality is limited to estimating the substitution and
565       associated parameters and computing the likelihood.
566
567     o The new function drop1.compar.gee (used as, e.g., drop1(m))
568       tests for single effects in GEE-based comparative method. A
569       warning message is printed if there is not enough degrees of
570       freedom.
571
572
573 BUG FIXES
574
575     o An error message was sometimes issued by plot.multi.tree(),
576       though with no consequence.
577
578
579
580                 CHANGES IN APE VERSION 1.8-1
581
582
583 NEW FEATURES
584
585     o There is a new plot method for lists of trees (objects of class
586       "multi.tree"): it calls plot.phylo() internally and is
587       documented on the same help page.
588
589
590 BUG FIXES
591
592     o A bug was fixed in the C code that analyzes bipartitions: this
593       has impact on several functions like prop.part, prop.clades,
594       boot.phylo, or consensus.
595
596     o root() did not work correctly when the specified outgroup had
597       more than one element: this is fixed.
598
599     o dist.dna() sometimes returned a warning inappropriately: this
600       has been corrected.
601
602     o If the distance object given to nj() had no rownames, nj()
603       returned a tree with no tip labels: it now returns tips labelled
604       "1", "2", ..., corresponding to the row numbers.
605
606
607 OTHER CHANGES
608
609     o nj() has been slightly changed so that tips with a zero distance
610       are first aggregated with zero-lengthed branches; the usual NJ
611       procedure is then performed on a distance matrix without 0's.
612
613
614
615                 CHANGES IN APE VERSION 1.8
616
617
618 NEW FEATURES
619
620     o The new function chronopl() estimates dates using the penalized
621       likelihood method by Sanderson (2002; Mol. Biol. Evol., 19:101).
622
623     o The new function consensus() calculates the consensus tree of a
624       list of trees.
625
626     o The new function evolve.phylo() simulates the evolution of
627       continuous characters along a phylogeny under a Brownian model.
628
629     o The new plot method for objects of class "ancestral" displays a
630       tree together with ancestral values, as returned by the above
631       function.
632
633     o The new function as.phylo.formula() returns a phylogeny from a
634       set of nested taxonomic variables given as a formula.
635
636     o The new function read.caic() reads trees in CAIC format.
637
638     o The new function tiplabels() allows to add labels to the tips
639       of a tree using text or plotting symbols in a flexible way.
640
641     o The new function unroot() unroots a phylogeny.
642
643     o multi2di() has a new option, `random', which specifies whether
644       to resolve the multichotomies randomly (the default) or not.
645
646     o prop.part() now returns an object of class "prop.part" for which
647       there are print (to display a partition in a more friendly way)
648       and summary (to extract the numbers) methods.
649
650     o plot.phylo() has a new option, `show.tip.label', specifying
651       whether to print the labels of the tips. The default is TRUE.
652
653     o The code of nj() has been replaced by a faster C code: it is now
654       about 10, 25, and 40 times faster for 50, 100, and 200 taxa,
655       respectively.
656
657     o write.nexus() now writes whether a tree is rooted or not.
658
659
660 BUG FIXES
661
662     o Two bugs have been fixed in root(): unrooted trees are now
663       handled corretly, and node labels are now output normally.
664
665     o A bug was fixed in phymltest(): the executable couldn't be found
666       in some cases.
667
668     o Three bug have been fixed in ace(): computing the likelihood of
669       ancestral states of discrete characters failed, custom models
670       did not work, and the function failed with a null gradient (a
671       warning message is now returned; this latter bug was also
672       present in yule.cov() as well and is now fixed).
673
674     o pic() hanged out when missing data were present: a message error
675       is now returned.
676
677     o A small bug was fixed in dist.dna() where the gamma correction
678       was not always correctly dispatched.
679
680     o plot.phylo() plotted correctly the root edge only when the tree
681       was plotted rightwards: this works now for all directions.
682
683
684 OTHER CHANGES
685
686     o dist.taxo() has been renamed as weight.taxo().
687
688     o Various error and warning messages have been improved.
689
690
691
692                 CHANGES IN APE VERSION 1.7
693 NEW FEATURES
694
695     o The new function ace() estimates ancestral character states for
696       continuous characters (with ML, GLS, and contrasts methods), and
697       discrete characters (with ML only) for any number of states.
698
699     o The new function compar.ou() fits the Ornstein-Uhlenbeck model
700       of directional evolution for continuous characters. The user
701       specifies the node(s) of the tree where the character optimum
702       changes.
703
704     o The new function is.rooted() tests whether a tree (of class
705       "phylo") is rooted.
706
707     o The new function rcoal() generates random ultrametric trees with
708       the possibility to specify the function that generates the
709       inter-nodes distances.
710
711     o The new function mrca() gives for all pairs of tips in a tree
712       (and optionally nodes too) the most recent common ancestor.
713
714     o nodelabels() has a new option `thermo' to plot proportions (up
715       to three classes) on the nodes of a tree.
716
717     o rtree() has been improved: it can now generate rooted or
718       unrooted trees, and the mathematical function that generates the
719       branch lengths may be specified by the user. The tip labels may
720       be given directly in the call to rtree. The limit cases (n = 2,
721       3) are now handled correctly.
722
723     o dist.topo() has a new argument `method' with two choices: "PH85"
724       for Penny and Henny's method (already available before and now
725       the default), and "BHV01" for the geometric distance by Billera
726       et al. (2001, Adv. Appl. Math. 27:733).
727
728     o write.tree() has a new option, `digits', which specifies the
729       number of digits to be printed in the Newick tree. By default
730       digits = 10. The numbers are now always printed in decimal form
731       (i.e., 1.0e-1 is now avoided).
732
733     o dist.dna() can now compute the raw distances between pairs of
734       DNA sequences by specifying model = "raw".
735
736     o dist.phylo() has a new option `full' to possibly compute the
737       distances among all tips and nodes of the tree. The default if
738       `full = FALSE'.
739
740
741 BUG FIXES
742
743     o Several bugs were fixed in all.equal.phylo().
744
745     o dist.dna() did not handle correctly gaps ("-") in alignments:
746       they are now considered as missing data.
747
748     o rotate() did not work if the tips were not ordered: this is
749       fixed.
750
751     o mantel.test() returned NA in some special cases: this is fixed
752       and the function has been improved and is now faster.
753
754     o A bug was fixed in diversi.gof() where the calculation of A² was
755       incorrect.
756
757     o cherry() did not work correctly under some OSs (mainly Linux):
758       this is fixed.
759
760     o is.binary.tree() has been modified so that it works with both
761       rooted and unrooted trees.
762
763     o The documentation of theta.s() was not correct: this has been
764       fixed.
765
766     o plot.mst() did not work correctly: this is fixed.
767
768
769
770                 CHANGES IN APE VERSION 1.6
771
772
773 NEW FEATURES
774
775     o The new function dist.topo() computes the topological distances
776       between two trees.
777
778     o The new function boot.phylo() performs a bootstrap analysis on
779       phylogeny estimation.
780
781     o The new functions prop.part() and prop.clades() analyse
782       bipartitions from a series of trees.
783
784
785 OTHER CHANGES
786
787     o read.GenBank() now uses the EFetch utility of NCBI instead of
788       the usual Web interface: it is now much faster (e.g., 12 times
789       faster to retrieve 8 sequences, 37 times for 60 sequences).
790
791
792 BUG FIXES
793
794     o Several bugs were fixed in read.dna().
795
796     o Several bugs were fixed in diversi.time().
797
798     o is.binary.tree() did not work correctly if the tree has no edge
799       lengths: this is fixed.
800
801     o drop.tip() did not correctly propagated the `node.label' of a
802       tree: this is fixed.
803
804
805
806                 CHANGES IN APE VERSION 1.5
807
808
809 NEW FEATURES
810
811     o Two new functions, as.matching.phylo() and as.phylo.matching(),
812       convert objects between the classes "phylo" and "matching". The
813       latter implements the representation of binary trees introduced by
814       Diaconis and Holmes (1998; PNAS 95:14600). The generic function
815       as.matching() has been introduced as well.
816
817     o Two new functions, multi2di() and di2multi(), allow to resolve
818       and collapse multichotomies with branches of length zero.
819
820     o The new function nuc.div() computes the nucleotide diversity
821       from a sample a DNA sequences.
822
823     o dist.dna() has been completely rewritten with a much faster
824       (particularly for large data sets) C code. Eight models are
825       available: JC69, K80, F81, K81, F84, T92, TN93, and GG95 (the
826       option `method' has been renamed `model'). Computation of variance
827       is available for all models. A gamma-correction is possible for
828       JC69, K80, F81, and TN93. There is a new option, pairwise.deletion,
829       to remove sites with missing data on a pairwise basis. The option
830       `GCcontent' has been removed.
831
832     o read.GenBank() has a new option (species.names) which specifies
833       whether to return the species names of the organisms in addition
834       to the accession numbers of the sequences (this is the default
835       behaviour).
836
837     o write.nexus() can now write several trees in the same NEXUS file.
838
839     o drop.tip() has a new option `root.edge' that allows to specify the
840       new root edge if internal branches are trimmed.
841
842
843 BUG FIXES
844
845     o as.phylo.hclust() failed if some labels had parentheses: this
846       is fixed.
847
848     o Several bugs were fixed in all.equal.phylo(). This function now
849       returns the logical TRUE if the trees are identical but with
850       different representations (a report was printed previously).
851
852     o read.GenBank() did not correctly handle ambiguous base codes:
853       this is fixed.
854
855
856 OTHER CHANGES
857
858     o birthdeath() now returns an object of class "birthdeath" for
859       which there is a print method.
860
861
862
863                 CHANGES IN APE VERSION 1.4
864
865
866 NEW FEATURES
867
868     o The new function nj() performs phylogeny estimation with the
869       neighbor-joining method of Saitou and Nei (1987; Mol. Biol.
870       Evol., 4:406).
871
872     o The new function which.edge() identifies the edges of a tree
873       that belong to a group specified as a set of tips.
874
875     o The new function as.phylo.phylog() converts an object of class
876       "phylog" (from the package ade4) into an object of class
877       "phylo".
878
879     o The new function axisPhylo() draws axes on the side of a
880       phylogeny plot.
881
882     o The new function howmanytrees() calculates the number of trees
883       in different cases and giving a number of tips.
884
885     o write.tree() has a new option `multi.line' (TRUE by default) to
886       write a Newick tree on several lines rather than on a single
887       line.
888
889     o The functionalities of zoom() have been extended. Several
890       subtrees can be visualized at the same time, and they are marked
891       on the main tree with colors. The context of the subtrees can be
892       marked with the option `subtree' (see below).
893
894     o drop.tip() has a new option `subtree' (FALSE by default) which
895       specifies whether to output in the tree how many tips have been
896       deleted and where.
897
898     o The arguments of add.scale.bar() have been redefined and have
899       now default values (see ?add.scale.bar for details). This
900       function now works even if the plotted tree has no edge length.
901
902     o plot.phylo() can now plot radial trees, but this does not take
903       edge lengths into account.
904
905     o In plot.phylo() with `type = "phylogram"', if the values of
906       `edge.color' and `edge.width' are identical for sister-branches,
907       they are propagated to the vertical line that link them.
908
909
910 BUG FIXES
911
912     o Repeated calls to as.phylo.hclust() or as.hclust.phylo() made R
913       crashing. This is fixed.
914
915     o In plot.phylo(), the options `edge.color' and `edge.width' are
916       now properly recycled; their default values are now "black" and
917       1, respectively.
918
919     o A bug has been fixed in write.nexus().
920
921
922 OTHER CHANGES
923
924     o The function node.depth.edgelength() has been removed and
925       replaced by a C code.
926
927
928
929                 CHANGES IN APE VERSION 1.3-1
930
931
932 NEW FEATURES
933
934     o The new function nodelabels() allows to add labels to the nodes
935       of a tree using text or plotting symbols in a flexible way.
936
937     o In plot.phylo() the arguments `x.lim' and `y.lim' can now be two
938       numeric values specifying the lower and upper limits on the x-
939       and y-axes. This allows to leave some space on any side of the
940       tree. If a single value is given, this is taken as the upper
941       limit (as before).
942
943
944
945                 CHANGES IN APE VERSION 1.3
946
947
948 NEW FEATURES
949
950     o The new function phymltest() calls the software PHYML and fits
951       28 models of DNA sequence evolution. There are a print method to
952       display likelihood and AIC values, a summary method to compute
953       the hierarchical likelihood ratio tests, and a plot method to
954       display graphically the AIC values of each model.
955
956     o The new function yule.cov() fits the Yule model with covariates,
957       a model where the speciation rate is affected by several species
958       traits through a generalized linear model. The parameters are
959       estimated by maximum likelihood.
960
961     o Three new functions, corBrownian(), corGrafen(), and
962       corMartins(), compute the expected correlation structures among
963       species given a phylogeny under different models of evolution.
964       These can be used for GLS comparative phylogenetic methods (see
965       the examples). There are coef() and corMatrix() methods and an
966       Initialize.corPhyl() function associated.
967
968     o The new function compar.cheverud() implements Cheverud et al.'s
969       (1985; Evolution 39:1335) phylogenetic comparative method.
970
971     o The new function varcomp() estimates variance components; it has
972       a plot method.
973
974     o Two new functions, panel.superpose.correlogram() and
975       plot.correlogramList(), allow to plot several phylogenetic
976       correlograms.
977
978     o The new function node.leafnumber() computes the number of leaves
979       of a subtree defined by a particular node.
980
981     o The new function node.sons() gets all tags of son nodes from a
982       given parent node.
983
984     o The new function compute.brlen() computes the branch lengths of
985       a tree according to a specified method.
986
987     o plot.phylo() has three new options: "cex" controls the size of
988       the (tip and node) labels (thus it is no more needed to change
989       the global graphical parameter), "direction" which allows to
990       plot the tree rightwards, leftwards, upwards, or downwards, and
991       "y.lim" which sets the upper limit on the y-axis.
992
993
994 BUG FIXES
995
996     o Some functions which try to match tip labels and names of
997       additional data (e.g. vector) are likely to fail if there are
998       typing or syntax errors. If both series of names do not perfectly
999       match, they are ignored and a warning message is now issued.
1000       These functions are bd.ext, compar.gee, pic. Their help pages
1001       have been clarified on this point.
1002
1003
1004
1005                 CHANGES IN APE VERSION 1.2-7
1006
1007
1008 NEW FEATURES
1009
1010     o The new function root() reroots a phylogenetic tree with respect
1011       to a specified outgroup.
1012
1013     o The new function rotate() rotates an internal branch of a tree.
1014
1015     o In plot.phylo(), the new argument "lab4ut" (labels for unrooted
1016       trees) controls the display of the tip labels in unrooted trees.
1017       This display has been greatly improved: the tip labels are now not
1018       expected to overlap with the tree (particularly if lab4ut =
1019       "axial"). In all cases, combining appropriate values of "lab4ut"
1020       and the font size (via "par(cex = )") should result in readable
1021       unrooted trees. See ?plot.phylo for some examples.
1022
1023     o In drop.tip(), the argument `tip' can now be numeric or character.
1024
1025
1026 BUG FIXES
1027
1028     o drop.tip() did not work correctly with trees with no branch
1029       lengths: this is fixed.
1030
1031     o A bug in plot.phylo(..., type = "unrooted") made some trees being
1032       plotted with some line crossings: this is now fixed.
1033
1034
1035
1036                 CHANGES IN APE VERSION 1.2-6
1037
1038
1039 NEW FEATURES
1040
1041     o Six new functions (Moran.I, correlogram.formula, discrete.dist,
1042       correlogram.phylo, dist.taxo, plot.correlogram) have been added
1043       to implement comparative methods with an autocorrelation approach.
1044
1045     o A new data set describing some life history traits of Carnivores
1046       has been included.
1047
1048
1049 BUG FIXES
1050
1051     o A fix was made on mcmc.popsize() to conform to R 2.0.0.
1052
1053
1054 OTHER CHANGES
1055
1056     o When plotting a tree with plot.phylo(), the new default of the
1057       option `label.offset' is now 0, so the labels are always visible.
1058
1059
1060
1061                 CHANGES IN APE VERSION 1.2-5
1062
1063
1064 NEW FEATURES
1065
1066     o The new function bd.ext() fits a birth-death model with combined
1067       phylogenetic and taxonomic data, and estimates the corresponding
1068       speciation and extinction rates.
1069
1070
1071 OTHER CHANGES
1072
1073     o The package gee is no more required by ape but only suggested
1074       since only the function compar.gee() calls gee.
1075
1076
1077
1078                 CHANGES IN APE VERSION 1.2-4
1079
1080
1081 NEW FEATURES
1082
1083     o Four new functions (mcmc.popsize, extract.popsize, plot.popsize,
1084       and lines.popsize) implementing a new approach for inferring the
1085       demographic history from genealogies using a reversible jump
1086       MCMC have been introduced.
1087
1088     o The unit of time in the skyline plot and in the new plots can
1089       now be chosen to be actual years, rather than substitutions.
1090
1091
1092
1093                 CHANGES IN APE VERSION 1.2-3
1094
1095
1096 NEW FEATURES
1097
1098     o The new function rtree() generates a random binary tree with or
1099       without branch lengths.
1100
1101     o Two new functions for drawing lineages-through-time (LTT) plots
1102       are provided: ltt.lines() adds a LTT curve to an existing plot,
1103       and mltt.plot() does a multiple LTT plot giving several trees as
1104       arguments (see `?ltt.plot' for details).
1105
1106
1107 BUG FIXES
1108
1109     o Some taxon names made R crashing when calling as.phylo.hclust():
1110       this is fixed.
1111
1112     o dist.dna() returned an error with two identical DNA sequences
1113       (only using the Jukes-Cantor method returned 0): this is fixed.
1114
1115
1116 OTHER CHANGES
1117
1118     o The function dist.phylo() has been re-written using a different
1119       algorithm: it is now about four times faster.
1120
1121     o The code of branching.times() has been improved: it is now about
1122       twice faster.
1123
1124
1125
1126                 CHANGES IN APE VERSION 1.2-2
1127
1128
1129 NEW FEATURES
1130
1131     o The new function seg.sites() finds the segregating sites in a
1132       sample of DNA sequences.
1133
1134
1135 BUG FIXES
1136
1137     o A bug introduced in read.tree() and in read.nexus() with version
1138       1.2-1 was fixed.
1139
1140     o A few errors were corrected and a few examples were added in the
1141       help pages.
1142
1143
1144
1145                 CHANGES IN APE VERSION 1.2-1
1146
1147
1148 NEW FEATURES
1149
1150     o plot.phylo() can now draw the edge of the root of a tree if it
1151       has one (see the new option `root.edge', its default is FALSE).
1152
1153
1154 BUG FIXES
1155
1156     o A bug was fixed in read.nexus(): files with semicolons inside
1157       comment blocks were not read correctly.
1158
1159     o The behaviour of read.tree() and read.nexus() was corrected so
1160       that tree files with badly represented root edges (e.g., with
1161       an extra pair of parentheses, see the help pages for details)
1162       are now correctly represented in the object of class "phylo";
1163       a warning message is now issued.
1164
1165
1166
1167                 CHANGES IN APE VERSION 1.2
1168
1169
1170 NEW FEATURES
1171
1172     o plot.phylo() has been completely re-written and offers several
1173       new functionalities. Three types of trees can now be drawn:
1174       phylogram (as previously), cladogram, and unrooted tree; in
1175       all three types the branch lengths can be drawn using the edge
1176       lengths of the phylogeny or not (e.g., if the latter is absent).
1177       The vertical position of the nodes can be adjusted with two
1178       choices (see option `node.pos'). The code has been re-structured,
1179       and two new functions (potentially useful for developpers) are
1180       documented separately: node.depth.edgelength() and node.depth();
1181       see the respective help pages for details.
1182
1183     o The new function zoom() allows to explore very large trees by
1184       focusing on a small portion of it.
1185
1186     o The new function yule() fits by maximum likelihood the Yule model
1187       (birth-only process) to a phylogenetic tree.
1188
1189     o Support for writing DNA sequences in FASTA format has been
1190       introduced in write.dna() (support for reading sequences in
1191       this format was introduced in read.dna() in version 1.1-2).
1192       The function has been completely re-written, fixing some bugs
1193       (see below); the default behaviour is no more to display the
1194       sequences on the standard output. Several options have been
1195       introduced to control the sequence printing in a flexible
1196       way. The help page has been extended.
1197
1198     o A new data set is included: a supertree of bats in NEXUS format.
1199
1200
1201 BUG FIXES
1202
1203     o In theta.s(), the default of the option `variance' has
1204       been changed to `FALSE' (as was indicated in the help page).
1205
1206     o Several bugs were fixed in the code of all.equal.phylo().
1207
1208     o Several bugs were fixed in write.dna(), particularly this
1209       function did not work with `format = "interleaved"'.
1210
1211     o Various errors were corrected in the help pages.
1212
1213
1214 OTHER CHANGES
1215
1216     o The argument names of as.hclust.phylo() have been changed
1217       from "(phy)" to "(x, ...)" to conform to the definition of
1218       the corresponding generic function.
1219
1220     o gamma.stat() has been renamed gammaStat() to avoid confusion
1221       since gamma() is a generic function.
1222
1223
1224
1225                 CHANGES IN APE VERSION 1.1-3
1226
1227
1228 BUG FIXES
1229
1230     o base.freq() previously did not return a value of 0 for
1231       bases absent in the data (e.g., a vector of length 3 was
1232       returned if one base was absent). This is now fixed (a
1233       vector of length 4 is always returned).
1234
1235     o Several bugs were fixed in read.nexus(), including that this
1236       function did not work in this absence of a "TRANSLATE"
1237       command in the NEXUS file, and that the commands were
1238       case-sensitive.
1239
1240
1241
1242                 CHANGES IN APE VERSION 1.1-2
1243
1244
1245 NEW FEATURES
1246
1247     o The Tamura and Nei (1993) model of DNA distance is now implemented
1248       in dist.dna(): five models are now available in this function.
1249
1250     o A new data set is included: a set of 15 sequences of the
1251       cytochrome b mitochondrial gene of the woodmouse (Apodemus
1252       sylvaticus).
1253
1254
1255 BUG FIXES
1256
1257     o A bug in read.nexus() was fixed.
1258
1259     o read.dna() previously did not work correctly in most cases.
1260       The function has been completely re-written and its help page
1261       has been considerably extended (see ?read.dna for details).
1262       Underscores (_) in taxon names are no more replaced with
1263       spaces (this behaviour was undocumented).
1264
1265     o A bug was fixed in write.dna().
1266
1267
1268
1269                 CHANGES IN APE VERSION 1.1-1
1270
1271
1272 BUG FIXES
1273
1274     o A bug in read.tree() introduced in APE 1.1 was fixed.
1275
1276     o A bug in compar.gee() resulted in an error when trying to fit
1277       a model with `family = "binomial"'. This is now fixed.
1278
1279
1280
1281                 CHANGES IN APE VERSION 1.1
1282
1283
1284 NEW FEATURES
1285
1286     o The Klastorin (1982) method as suggested by Misawa and Tajima
1287       (2000, Mol. Biol. Evol. 17:1879-1884) for classifying genes
1288       on the basis of phylogenetic trees has been implemented (see
1289       the function klastorin()).
1290
1291     o Functions have been added to convert APE's "phylo" objects in
1292       "hclust" cluster objects and vice versa (see the help page of
1293       as.phylo for details).
1294
1295     o Three new functions, ratogram(), chronogram() and NPRS.criterion(),
1296       are introduced for the estimation of absolute evolutionary rates
1297       (ratogram) and dated clock-like trees (chronogram) from
1298       phylogenetic trees using the non-parametric rate smoothing approach
1299       by MJ Sanderson (1997, Mol. Biol. Evol. 14:1218-1231).
1300
1301     o A summary method is now provided printing a summary information on a
1302       phylogenetic tree with, for instance, `summary(tree)'.
1303
1304     o The behaviour of read.tree() was changed so that all spaces and
1305       tabulations in tree files are now ignored. Consequently, spaces in tip
1306       labels are no more allowed. Another side effect is that read.nexus()
1307       now does not replace the underscores (_) in tip labels with spaces
1308       (this behaviour was undocumented).
1309
1310     o The function plot.phylo() has a new option (`underscore') which
1311       specifies whether the underscores in tip labels should be written on
1312       the plot as such or replaced with spaces (the default).
1313
1314     o The function birthdeath() now computes 95% confidence intervals of
1315       the estimated parameters using profile likelihood.
1316
1317     o Three new data sets are included: a gene tree estimated from 36
1318       landplant rbcL sequences, a gene tree estimated from 32 opsin
1319       sequences, and a gene tree for 50 BRCA1 mammalian sequences.
1320
1321
1322 BUG FIXES
1323
1324     o A bug was fixed in dist.gene() where nothing was returned.
1325
1326     o A bug in plot.mst() was fixed.
1327
1328     o A bug in vcv.phylo() resulted in false correlations when the
1329       option `cor = TRUE' was used (now fixed).
1330
1331
1332
1333                 CHANGES IN APE VERSION 1.0
1334
1335
1336 NEW FEATURES
1337
1338     o Two new functions, read.dna() and write.dna(), read/write in a file
1339       DNA sequences in interleaved or in sequential format.
1340
1341     o Two new functions, read.nexus() and write.nexus(), read/write trees
1342       in a NEXUS file.
1343
1344     o The new function bind.tree() allows to bind two trees together,
1345       possibly handling root edges to give internal branches.
1346
1347     o The new function drop.tip() removes the tips in a phylogenetic tree,
1348       and trims (or not) the corresponding internal branches.
1349
1350     o The new function is.ultrametric() tests if a tree is ultrametric.
1351
1352     o The function plot.phylo() has more functionalities such as drawing the
1353       branches with different colours and/or different widths, showing the
1354       node labels, controling the position and font of the labels, rotating
1355       the labels, and controling the space around the plot.
1356
1357     o The function read.tree() can now read trees with no branch length,
1358       such as "(a,b),c);". Consequently, the element `edge.length' in
1359       objects of class "phylo" is now optional.
1360
1361     o The function write.tree() has a new default behaviour: if the default
1362       for the option `file' is used (i.e. file = ""), then a variable of
1363       mode character containing the tree in Newick format is returned which
1364       can thus be assigned (e.g., tree <- write.tree(phy)).
1365
1366     o The function read.tree() has a new argument `text' which allows
1367       to read the tree in a variable of mode character.
1368
1369     o A new data set is included: the phylogenetic relationships among
1370       the orders of birds from Sibley and Ahlquist (1990).
1371
1372
1373
1374                 CHANGES IN APE VERSION 0.2-1
1375
1376
1377 BUG FIXES
1378
1379     o Several bugs were fixed in the help pages.
1380
1381
1382
1383                 CHANGES IN APE VERSION 0.2
1384
1385
1386 NEW FEATURES
1387
1388     o The function write.tree() writes phylogenetic trees (objects of class
1389       "phylo") in an ASCII file using the Newick parenthetic format.
1390
1391     o The function birthdeath() fits a birth-death model to branching times
1392       by maximum likelihood, and estimates the corresponding speciation and
1393       extinction rates.
1394
1395     o The function scale.bar() adds a scale bar to a plot of a phylogenetic
1396       tree.
1397
1398     o The function is.binary.tree() tests whether a phylogeny is binary.
1399
1400     o Two generic functions, coalescent.intervals() and collapsed.intervals(),
1401       as well as some methods are introduced.
1402
1403     o Several functions, including some generics and methods, for computing
1404       skyline plot estimates (classic and generalized) of effective
1405       population size through time are introduced and replace the function
1406       skyline.plot() in version 0.1.
1407
1408     o Two data sets are now included: the phylogenetic relationships among
1409       the families of birds from Sibley and Ahlquist (1990), and an
1410       estimated clock-like phylogeny of HIV sequences sampled in the
1411       Democratic Republic of Congo.
1412
1413
1414 DEPRECATED & DEFUNCT
1415
1416     o The function skyline.plot() in ape 0.1 has been deprecated and
1417       replaced by more elaborate functions (see above).
1418
1419
1420 BUG FIXES
1421
1422     o Two important bugs were fixed in plot.phylo(): phylogenies with
1423       multichotomies not at the root or not with only terminal branches,
1424       and phylogenies with a single node (i.e. only terminal branches)
1425       did not plot. These trees should be plotted correctly now.
1426
1427     o Several bugs were fixed in diversi.time() in the computation of
1428       AICs and LRTs.
1429
1430     o Various errors were corrected in the help pages.