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