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