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