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