-
Notifications
You must be signed in to change notification settings - Fork 11
/
NEWS
4316 lines (2523 loc) · 130 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
CHANGES IN APE VERSION 5.8-0.3
BUG FIXES
o plot.phylo() shifted the coordinates when the tree was plotted
left- or downwards (see PR #119 on GitHub).
o Newick strings with a single tip and multiple nodes were not
correctly parsed. Also, if a root edge was present it was not
correctly decoded (see issue #124 on GitHub).
OTHER CHANGES
o Plotting circular trees has been improved (see PR #129 on GitHub).
CHANGES IN APE VERSION 5.8
NEW FEATURES
o dist.topo() has a new option 'mc.cores'. With the default PH85
distance, the gain of using several cores is visible with 200+
trees. The internal code for the score distance has been
improved and is twice faster with a single core, and 4-5 times
faster with mc.cores = 2.
o keep.tip() gains a '...' argument which is passed to drop.tip().
The behaviour of the latter is changed so that node labels, if
available, are used to create new tip labels when subtree = TRUE
(see PR #90 on GitHub).
o nj() can now handle distances stored in long vectors. There was
previously an implicit limit to 46,341 observations (see PR #97
on GitHub).
o del.gaps(), del.colgapsonly(), and del.rowgapsonly() now accepts
objects of class "AAbin". Besides, the class of the input object
is always respected (it used to be "DNAbin" only even when it
had several elements).
o makeNodeLabel() is now generic with methods for the "phylo" and
"multiPhylo" classes.
o unroot() gains two options, 'collapse.singles' and
'keep.root.edge', to handle some complicated situations (see
issue #103 on GitHub).
o read.GenBank() has a new argument 'type' to download AA
sequences. The default is type = "DNA", and the other choice is
type = "AA".
BUG FIXES
o rtt() was fixed when dates include NAs (issue #73 on GitHub).
o njs(), bionj(), bionjs(), fastme.bal(), and fastme.ols() now
check that there are at least three observations in the distance
matrix (issue #84 on GitHub).
o nodelabels(, frame = "circle") used to ignore the argument
'adj'. This is fixed (issue #85 on GitHub).
o write.tree() ignored tree names. This bug was introduced in ape
5.7 (see issue #101 on GitHub).
o read.tree() now reads correctly trees with many nodes but a
single tip such as "(());" (see issue #104 on GitHub).
o bitsplits() failed with large trees. There are now checks on
memory requirements; some explanations have been added in the
help page.
o comparePhylo() failed with two large trees. This is fixed.
OTHER CHANGES
o .uncompressTipLabel() now returns an object of the same class
than the input object (previously the returned object was always
of class "multiPhylo").
o The help page of is.binary() has been clarified that branch
lengths are ignored (issue #83 on GitHub).
o dist.nodes() has an improved internal C code with unlimited tree
size. The code is three times faster with small trees; twice
faster with ~1000 tips (the gain is less with bigger trees).
o ace() now uses node labels, if available, in the output.
o comparePhylo() now restores the graphical window in its previous
state (i.e., after calling layout() if plot = TRUE).
o read.tree() now gives a warning (still returning NULL) if there
is (are) no semicolon(s) [end of tree(s)] in the Newick string.
o write.tree() now gives a warning if the length of the node
labels does not match the number of nodes given by '$Nnode'.
CHANGES IN APE VERSION 5.7-1
BUG FIXES
o Some very unbalanced trees resulted in a segfault (see issue #70
on GitHub).
OTHER CHANGES
o ape 5.7 introduced an implicit dependence on R >= 4.1. This has
been corrected and this version should work with R >= 3.4 (and
certainly with R >= 3.2).
o All examples should now write files in the TMP directory (some
still used to do this in the user's working directory).
CHANGES IN APE VERSION 5.7
NEW FEATURES
o The new function muscle5 calls MUSCLE5. There are two other new
functions that depend on this program, efastats and letterconf,
to compute summaries for a set of alternative alignments and
display the confidence in each site in HTML, respectively.
o print.LargeNumber() gains the options 'latex' (FALSE by default)
and 'digits' (depends on 'latex').
o drop.tip() and keep.tip() are now generic functions with methods
for the classes "phylo" and "multiPhylo".
BUG FIXES
o A bug was fixed in multi2di() and di2multi() for compressed
"multiPhylo" objects causing an error if the object had to be
reordered internally (see PR #51 on GitHub).
o unroot() now accepts different "order" of the "phylo" object
(see PR #52 on GitHub).
o write.tree(), ladderize(), and balance() failed with very
unbalanced trees (issues #53 and #54 on GitHub).
o PGLS models used a wrong ordering of data if 'species' was a
factor in corBrownian(, form = ~species) or other correlation
structure functions.
o A bug was fixed in the calculations of the variance of the TN93
distance (dist.dna).
o consensus() did not use postprocess.prop.part() and might
scramble nodelabels (see PR #65 on GitHub).
o is.binary.phylo() used to return TRUE with trees such as
((a:1):1,b:2,c:2):1;. This test now conforms with what is
written in the documentation.
OTHER CHANGES
o reconstruct() gains the options 'low_alpha = 0.0001' and
'low_alpha = 1' to allow estimation of values of alpha greater
than 1.
o src/me.c and src/me.h are now OK with -Wstrict-prototypes flag.
o makeNodeLabel(method = "md5sum") now uses the function digest
from the package of the same name. The package tools has been
removed from the Imports list.
CHANGES IN APE VERSION 5.6-2
NEW FEATURES
o plot.phylo() can now plot "tidy" trees with the option type =
"t[idy]" (see: van der Ploeg, 2014, Drawing non-layered tidy
trees in linear time. J. Software: Practice and Experience
44:1467).
BUG FIXES
o is.monophyletic() didn't work correctly with duplicated labels
(issue #50 on GH).
o birthdeath()'s 'if' conditions should be now all of length 1.
CHANGES IN APE VERSION 5.6-1
BUG FIXES
o axisPhylo() misplaced the scale with some trees drawn with
plot(type = "fan").
o The internal code of bitsplits() has been improved and can now
handle all types of unrooted trees.
CHANGES IN APE VERSION 5.6
NEW FEATURES
o The new generic function degree returns the degrees of all nodes
in a tree or network. There are methods for "phylo" and "evonet"
objects.
o The new function solveAmbiguousBases replaces R, Y, W, ... by A,
G, C, or T using columnwise base frequencies.
o There is a new method as.phylo.default() for any object
inheriting the class "phylo".
o read.dna() and read.FASTA() can now read gzipped files.
o where() now works also with objects of class "AAbin". 'NULL' is
now returned, instead of an error, if the sequence is shorter
than the searched pattern (useful with lists with some short
sequences; issue #28 on GH).
o comparePhylo() has a new '...' argument for options passed to
plot.phylo(), and two new options: 'commons' to specify whether
to show the splits in common, and 'location' for the legend (PRs
#41 and #42 on GH).
o The code of dnds() has been rewritten which fixes some minor
bugs, is more robust, and gains the options 'details' to print
the numbers of TS and TV for each degeneracy category, and
'return.category' to return the degeneracy categories of the
original data (see ?dnds for details).
BUG FIXES
o A bug was introduced in read.tree() in ape 5.5 when reading
trees with quoted labels (issue #14 on GH).
o nj() did not duplicate the distances if originally stored in a
"dist" object (issue #12 on GH).
o The double-centered matrix computed by pcoa() is now more
strictly symmetric, thus avoiding complex eigenvalues in some
cases (issue #17 on GH).
o chronos() failed with discrete models when branch lengths were
extremely heterogeneous leading to badly initial rate values.
o multi2di() sometimes resulted in an ultrametric tree to become
non-ultrametric (see issue #23 on GH).
o read.nexus() failed to read correctly files with labels
containing spaces in the TRANSLATION bloc (PR #29 on GH).
o ace(, type = "d") now woks with n = 2.
o drop.tip() used to remove the root edge of a tree if the option
'root.edge = 0' was set. Since the latter is the default, the
side-effect was to possibly turn a rooted tree into an unrooted
one (see issue #32 on GH). The root edge is now removed only if
the option 'rooted = TRUE' is used. The help page has been
clarified on this point.
o as.hclust.phylo() now returns the correct order of leaves so
that plot() does not cross lines (PR #33 on GH).
o unique.multiPhylo() failed with a single tree in the list or
with an empty list (PR #38 on GH).
o trans() failed with a matrix with a single codon. A similar bug
affected as.character.AAbin().
o rTraitDisc() now uses expm::expm unless this package is not
installed in which case ape::matexpo is used.
OTHER CHANGES
o multi2di() is faster as it avoids calling which() repeatedly.
o dist.nodes() now gives an error with an explicit error message
if the tree is too large (i.e., more than 46,340 tips + nodes).
o The default values of the options 'edge.color', 'edge.width',
and 'edge.lty' of plot.phylo() are now taken from the graphical
parameters: par("fg"), par("lwd"), and par("lty"), respectively.
o The visual aspect of circular trees (type = "f" in plot.phylo)
has been improved.
o ace() now accepts trees with some branch lengths equal to zero.
o write.tree() now accepts simple lists of trees.
o chronos(, model = "clock") is a short-cut to specifying model =
"discrete" and a single category of rates in the settings.
CHANGES IN APE VERSION 5.5
NEW FEATURES
o The new functions rtopology and rmtopology generate random trees
with equal frequencies of *labelled* topologies. rtree(,
equiprob = TRUE) now gives equal frequencies of *unlabelled*
topologies. These features are described in the new vignette
"RandomTopologies".
o dist.dna()'s internal code has been improved: it now accepts up
to 2.1 billion sequences each up to 2.1 Gb (see CHANGES in APE
VERSION 4.0 below).
o nj()'s internal code has been improved and is slightly more
efficient: combined with the improved dist.dna(), boot.phylo()
with an NJ tree is now about 10% faster.
o howmanytrees() can now compute (approximately) the number of
binary, (un)rooted, labelled topologies beyond the standard
resolution of numeric values (i.e., > 10^308) thanks to the new
utility function LargeNumber.
BUG FIXES
o bind.tree() sometimes returned badly conformed trees.
o write.FASTA() made R crash if the output file was in a
non-existing directory (thanks to Richel Bilderbeek for the
report).
o ltt.plot.coords() now handles correctly trees with singleton
nodes. This also fixes functions calling this one (e.g.,
ltt.plot).
o estimate.dates() now works with non-bifurcating trees.
o root(phy, outgroup, resolve.root = TRUE) failed to place
correctly the new root if 'outgroup' was of longer two or
more and paraphyletic (although monophyletic once 'phy' was
unrooted).
o pcoa() failed when a single axis was returned.
OTHER CHANGES
o node- and tiplabels(pie = ) now accept data frames (or a
single-column matrix/data frame).
o boot.phylo() now returns integer(0) with a warning if there are
less than 4 rows in the data (argument x).
In case of unrooted trees, the first support value is now NA
(it used to be B, the number of bootstrap replications).
o prop.part() and is now faster thanks to some internal
improvements. This also affects dist.topo() which is twice
faster for small trees, and up to 30 times faster for trees with
1000 tips.
o bitsplits() now gives an error with rooted trees
CHANGES IN APE VERSION 5.4-1
NEW FEATURES
o rtree() gains several improvements:
* The new option 'equiprob = TRUE' generates all topologies in
equal proportions; 'equiprob = FALSE' generates unbalanced
topologies in higher proportions (as in previous versions of
ape). The latter is the default because several packages use
rtree() with set.seed() in their examples.
* Rooted trees with n = 1 tip can now be simulated.
* Vector of tip labels supplied by the user are now checked and
a warning is issued if its length does not match 'n'.
* The internals of the code have been rewritten and are now more
efficient (particularly if 'equiprob = TRUE').
o multi2di() gains an option 'equiprob' similar to rtree().
o The new function nexus2DNAbin is a helper to convert outputs
from read.nexus.data().
BUG FIXES
o is.monophyletic() might return the wrong answer if the tips were
given as labels not alphabetically sorted.
o boot.phylo() returned bootstrap values all equal to 0.
CHANGES IN APE VERSION 5.4
NEW FEATURES
o The new function getAnnotationsGenBank reads annotations from
GenBank and returns them in data frame(s).
o read.GenBank() gains two options: 'chunk.size' to set the number
of sequences downloaded together, and 'quiet' to display the
download progress (will also display the name of the temporary
file where the sequences were saved). The options 'gene.names'
has been removed.
o The new convenience function latag2n (leading and traling
alignment gaps to N) substitutes leading and trailing gaps in
DNA alignments into N's. The gaps in the middle of the sequences
are left unchanged.
o There are new cbind() and rbind() methods for the class "AAbin".
o seg.sites() gains two options: 'strict' and 'trailingGapsAsN' to
give more flexibility in the presence of ambiguous bases and/or
alignment gaps.
o read.nexus.data() now handles polymorphisms in discrete
characters (however with no distinction between ambiguous or
true polymorphic characters).
o trans() now supports genetic codes 1 to 6 (dnds() still supports
only genetic codes 1 and 2).
o chronos() has been improved with contributions by Santiago
Claramunt:
* Some errors were fixed in the calculation of the log-
likelihood of the "discrete" models with more than one
category of rates.
* Calculations are now faster with "discrete" models.
* A general convergence diagnostic has been added in the output.
Some other contributions by Guillaume Louvel:
* Improved algorithm to find initial dates.
* There is now a parameter 'epsilon' to check convergence.
* The number of iterations is output in the final results.
o Phylogenetic correlation structures (functions with class
"corPhyl") can now specify grouping factors via the arguments
'form' and 'covariates' (which are no more ignored; see examples
in ?ape::corClasses). This can be used, for instance, to specify
species names to match the tree with the covariates.
BUG FIXES
o A bug was fixed in pcoa() (thanks to Jesse Connell).
o A bug was fixed in countBipartitions().
o unroot() did not handle node labels correctly.
o label2table() now keeps all levels in labels (not only the first
three ones.
o A bug was fixed in drop.tip(, root.edge = ).
o rphylo() failed with time-dependent parameters.
o is.monophyletic() now returns an error if some labels are not
found in the tree (thanks to David Winter for the fix).
o read.tree() and read.nexus() crashed R if the numbers of left
and right parentheses in a Newick string were not equal: this is
fixed and an error is now returned.
OTHER CHANGES
o The option 'tbr' in fastme.bal() has been disabled.
CHANGES IN APE VERSION 5.3
NEW FEATURES
o The new function dnds calculates pairwise dN/dS ratios.
o alview() has a new option 'showpos' to display the positions of
the sites (can be a subset of these). Previously, only the
position of the last site was printed.
BUG FIXES
o mantel.test() returned NA if the second matrix had its diagonal
with at least one NA.
o Several bugs were fixed in plot.popsize(). It gains the options
'xlab', 'ylab', and 'log' for more flexible plotting.
OTHER CHANGES
o NAMESPACE has now explicit exports. The present version has 325
exported objects. Most internal functions are not exported, as
well as several methods.
o checkLabel() is now documented.
o The running times of write.tree() now scales with N (number of
trees) instead of N^2: writing 2 million trees with 9 tips now
takes 8 mins instead of 28 hrs with ape 5.2.
CHANGES IN APE VERSION 5.2
NEW FEATURES
o The new function keep.tip does the opposite operation than
drop.tip().
o The new function rDNAbin generates random DNA sequences.
o The new generic function updateLabel changes some (or all)
labels in an object giving two vectors 'old' and 'new' of
labels. There are methods for the following classes: DNAbin,
AAbin, phylo, evonet, data.frame, and matrix.
o read.gff() has a new option 'GFF3' (TRUE by default) to set
correctly the column names of GFF2 (aka GTF) files.
o Xplor() has the new option from = "HOME" which is passed to
Xplorefiles().
o ace() can take state uncertainty for discrete characters into
account: this should be coded with R's NA.
o plotTreeTime() has a new option, color (TRUE by default).
o as.phylo.formula() has a new option, collapse, to add a single
node if a given taxonomic level has only one representative
(contributed by Eric Marcon).
BUG FIXES
o read.FASTA(, type = "AA") failed.
o image.DNAbin() failed with a single sequence.
o write.nexus.data() wrote the binary representation of DNA or AA
sequences.
o read.tree() failed to read correctly single-quoted node labels
unless some tip labels were also single-quoted.
o node.height(, clado.style = TRUE) returned the wrong vector (it
used to return the same result than node.depth().
o tiplabels() did not align labels properly if the tree was
plotted with plot(, type = "fan", align.tip.label = TRUE).
OTHER CHANGES
o print.DNAbin() now prints nicely the total number of bases.
o drop.tip(tr, 1:Ntip(tr), trim.internal = FALSE) now returns a
tree with all the terminal branches of tr removed, unless it has
less than three nodes.
CHANGES IN APE VERSION 5.1
NEW FEATURES
o The new function write.FASTA is much more efficient than
write.dna(, format = "fasta") for very big data set. It can also
write "AAbin" objects into FASTA files.
o The new function comparePhylo compares two trees with optional
plot showing the differences.
o There are three new methods as.AAbin() to convert from
BioConductor for the classes "AAString", "AAStringSet", and
"AAMultipleAlignment".
o read.FASTA() can now read amino acid sequences; it has a new
option type = "DNA" by default.
o write.nexus.data() can now handle continuous and standard data
thanks to a contribution by Thomas Guillerme.
o muscle(), clustal(), and clustalomega() have new arguments to do
tree-guided or progressive alignment, and a new option 'file' to
save the alignment in a file (see ?details). These functions
now handle "AAbin" sequences.
o mantel.test() can now analyse asymmetric matrices following a
suggestion by Andrzej Galecki.
o as.prop.part.bitsplits() gains an option 'include.trivial =
FALSE', and the generic as.prop.part() gains a '...' argument.
BUG FIXES
o as.hclust.phylo() failed with two-tip trees.
o drop.tip(, subtree = TRUE) failed when dropping a single tip.
Thanks to Thomas Sibley for the fix.
o nj() now checks that there are at least three observations.
o chronos() better finds initial dates in difficult situations,
particularly when the root age is unknown.
o chronos() now exits with the current estimates if the plogLik is
NA/NaN. Thanks to Daniel Lang for the fix.
o plot.phylo(phy, type = "p", edge.color = x) failed if 'phy' had
singleton nodes and 'x' was a vector of length > 1.
o bind.tree() failed if the trees had unordered edges. Thanks to
Veronika Boskova for the fix.
o cbind.DNAbin() now checks that the rownames of each matrix are
not duplicated (unless check.names = FALSE).
OTHER CHANGES
o branching.times() now returns a zero-length vector and a warning
if the tree has no branch length (it used to return an error).
o igraph is now a suggested package.
o The as.DNAbin() methods to convert from BioConductor are more
efficient.
CHANGES IN APE VERSION 5.0
NEW FEATURES
o ape now supports all types of phylogenetic trees and nerworks
(see details below).
o The new functions read.evonet and write.evonet read and write
files in Newick extended format (Cardona et al. 2008. BMC
Bioinformatics 9:532).
o Four new functions contributed by Franz Krah help to manipulate
AA sequences: methods c(), as.list(), and as.matrix() for the
class "AAbin", and as.AAbin() for lists.
o The new function has.singles tests if a tree has single nodes:
such trees can now be plotted with plot.phylo().
o There are two new convenience functions cladewise() and
postorder() which are short-cuts to reorder(, index.only =
TRUE).
o The new function Xplor shows all data files on the local machine
in a Web browser with clickable links to the directories and
files; it is based on the Xplorefiles() function.
o image.DNAbin() and image.AAbin() gain two options, grid and
show.base (or show.aa), to display a grid and the symbols of the
bases (or amino acids), and three options to control the aspect
of the latter: base.cex, base.font, and base.col (or aa.cex,
aa.font, and aa.col).
o image.AAbin() now shows the polymorphic positions.
o Several internal improvements were made to pcoa(). biplot.pcoa()
gains an optional argument 'main' to add a title.
o tiplabels() has a new option 'offset' to position the labels
with respect to the tips of the tree. This can be used in
combination with 'adj' and works for all types of trees (except
unrooted ones).
o phydataplot(type = "mosaic", continuous = FALSE) allows to
define the colours more flexibly thanks to a suggestion by
Elizabeth Purdom; this can be done if the function passed with
'funcol' returns a named vector. Also, the values are now sorted
alphabetically in the legend.
o phydataplot(type = "mosaic", legend = "none") does not display
the legend.
o read.tree() and read.nexus() can now read trees with singleton
nodes (i.e., nodes of degree 2) thanks to Klaus.
o read.tree() can now read labels with special characters within
single quotes.
o There are reorder() and Nedge() methods for objects of class
"evonet", and a new generic as.evonet() with a method for the
class "phylo".
o LLT() gains a '...' argument (e.g., to use log = "y").
o drop.tip() and extract.clade() gain an option 'collapse.singles'
(TRUE by default).
BUG FIXES
o CADM.*(... make.sym = FALSE) failed: this is now fixed.
o phydataplot(x, , type = "mosaic") now works if x is a vector or
a one-column matrix.
o as.igraph.phylo() has been improved to work with igraph >= 1.0.
o reorder.multiPhylo() failed with compressed lists.
o arecompatible() returned FALSE when comparing two identical
splits.
o as.hclust.phylo() failed if internal branches near the root have
length zero, so sorting the branching times failed due to
rounding errors.
o plot.phylo() failed when branch lengths were very long compared
to the tip labels: use of the plotting space has been improved.
OTHER CHANGES
o getMRCA() is now much faster (thanks to Joseph Brown and Klaus).
o read.tree() and read.nexus() are now based on C code (thanks to
Klaus) and should be several times faster.
o The default read.tree(, comment.char = "#") has been changed to
comment.char = "" so that extended Newick files can be read.
o The internal code of prop.part() and of reorder.phylo() have
been rewritten in C++ and should be several times faster.
collapse.singles(), drop.tip(), and extract.clade() are also
much faster.
o dist.topo() is much faster with the default distance.
o write.tree() and write.nexus() used to replace multiple
underscores or dashes in labels by single ones: they are now
left unchanged. The help page ?write.tree has been clarified on
how tip and node labels are checked before being printed.
CHANGES IN APE VERSION 4.1
NEW FEATURES
o The new function read.fastq reads FASTQ files returning a
"DNAbin" object with an attribute "QUAL".
o The new functions Xplorefiles, bydir, and edit.file.extensions
help to find files on the local disk.
o read.FASTA() can now read connections thanks to a contribution
by RJ Ewing: the help page shows how to read *.zip, *.gz, or
*.bz2 files. This function can now read remote files through
secure connections (with HTTPS or FTPS). These also work for
read.dna(format = "fasta").
o read.nexus() has a new option, force.multi (FALSE by default),
to always return an object of class "multiPhylo" even if the
file contains a single tree (to keep the tree name which is lost
in the object of class "phylo").
BUG FIXES
o read.FASTA() crashed when reading a file with no sequence or a
compressed file not identified as such (see above about the
support for connections).
o read.GenBank() failed when at least one accession number was
wrong: it now returns the sequences eventually read and prints a
warning with the accession numbers not read.
o extract.clade() failed with trees previously rooted with
root(resolve.root = TRUE).
o A bug was fixed in estimate.dates().
o A bug was fixed in multi2di.multiPhylo().
o drop.tip() failed when dropping all tips but one.
o nj() now checks for infinite distances (it used to return a
badly conformed tree).
OTHER CHANGES
o chronos() now checks the presence of branch lengths in the tree.
o print.DNAbin() now prints base frequencies until 10 million
bases. The display of labels has been improved.
CHANGES IN APE VERSION 4.0
NEW FEATURES
o Two new functions, estimate.mu and estimate.dates, contributed
by Bradley Jones, estimate the mutation rate and the dates for a
rooted phylogenetic tree with dated tips.
o The function plotTreeTime plots a non-ultrametric tree together
with the dates of the tips.
o The new function read.gff reads GFF files.
o The new method all.equal.DNAbin compares two sets of DNA
sequences mainly to compare alignments with a graphical display
of the differences.
o boot.phylo() has two new options: 'jumble' (TRUE by default) to
randomize the order of the rows of the data matrix (and avoid
artificially too large bootstrap values associated with very
short branches), and 'mc.cores' to perform parallel bootstraps.
o reconstruct() now computes ancestral states under directional
models (Brownian with trend and OU; see: Royer-Carenzi, M. and
Didier, G. 2016. A comparison of ancestral state reconstruction
methods for quantitative characters. J Theor Biol, 404:126-142).
o root() has the new option 'edgelabel' to treat node labels as
edge labels so they are associated with the correct edges when
using drawSupportOnEdges (edgelabel = FALSE by default).
o read.GenBank() is faster and more flexible: it can read records
such as contigs or scaffolds (based on a code available on
GitHub for a while).
o is.ultrametric() has a new argument, option, to change the
criterion used to test ultrametricity.
o .compressTipLabel() has a new option (ref = NULL) to constrain
the order of the tips.
BUG FIXES
o plot.phylo() used to fail with NAs in branch lengths: they are
now ignored with a warning.
o plot.phylo(, type = "unrooted", label.offset = 1) used to have
no effect (unless lab4ut = "a" was used).
o checkValidPhylo() failed with trees with a single node.
o unroot() returned badly conformed trees in some situations.
o richness.yule.test() failed when the speciation rate(s) is high:
the code has been improved with better starting values for the
optimization.
o dist.topo() now checks that the trees have the same labels. The
code is ~100 times faster for comparing 100 trees with 100
labels.
o as.character.AAbin() striped matrix rownames (thanks to Shaun
Wilkinson for the report).
OTHER CHANGES
o clustal(), clustalomega(), muscle(), and tcoffee() now give a
more explicit error message when they fail to find the
executable. The help page has been completed and gives some
recommendations.
o "DNAbin" objects larger than 2.1 billion bases (exactly 2^31-1)
can now be handled by most functions in ape. The limitations are
the same than in base R: 2^52 (~4.5*10^15) elements, and the
numbers of rows and columns of matrices cannot exceed 2^31-1.
read.dna() can now read FASTA files larger than 2.1 gigabytes.
Two functions are still limited to 2.1 Gb: dist.dna and
DNAbin2indel (the limit applies to the product of the numbers of
sequences by the sequence length since they work with matrices).
o As a side-effect of the above, several functions are slightly
faster as several calls to .C have been replaced by .Call.
o The following functions are now generic with methods for the
classes "phylo" and "multiPhylo": di2multi, multi2di, Ntip,
Nnode, Nedge, reorder, is.ultrametric, root, unroot, is.rooted,
and is.binary (new function name, see below).
o c.phylo() and c.multiPhylo() have now recursive = TRUE by
default and try to return a list of single trees unless some
objects are not trees or lists of trees.
o image.DNAbin() and image.AAbin() now order rows from top to
bottom.
o read.GenBank() now uses HTTPS in place of HTTP.
o ape now requires R 3.2.0 (or higher).
o boot.phylo() now checks for duplicated labels.
o checkAlignment() now prints the gap lengths that are on the
borders of the alignment.
DEPRECATED & DEFUNCT
o is.binary.tree() is now obsolete and will be removed soon. It
currently calls is.binary().
o The data sets landplants.newick and opsin were removed.
CHANGES IN APE VERSION 3.5
NEW FEATURES
o Eleven new functions are provided to work with the new class
"AAbin":
- trans() translates DNA to AA sequences;
- complement() returns the reverse complement of DNA sequences;
- Six methods to manipulate and display objects of class
"AAbin": print, [, labels, as.character, as.phyDat, and
image (alview() works also on AA sequences);
- New generic as.AAbin() with a method for the class "character";
- dist.aa() computes pairwise Hamming distances;
- AAsubst() returns the indices of polymporphic sites (similar
to seg.sites() for "DNAbin").
o The new function checkAlignment performs diagnostics on a DNA
alignment.
o The new functions plotBreakLongEdges and drawSupportOnEdges help
to plot and annotate trees.
o del.colgapsonly() gains two options: threshold (1 by default) to
delete columns with less than 100% of gaps, and freq.only (FALSE
by default) to return only the number of gaps for each column.
o The new function del.rowgapsonly does the same operation than
del.colgapsonly but on the rows (with the same new options).
BUG FIXES
o root() did not calculate the basal branch length correctly
(thanks to Liam Revell for the report).
o clustal() failed with long labels.
o as.DNAbin.character() now works with uppercase letters as well.
o prop.clades() now returns a sensible results whatever the value
of its option 'rooted' (fixed by Klaus). The code is also faster.
o root(resolve.root = TRUE) failed in some situations.