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