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