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