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