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