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