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