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