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