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