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