Here is a quick demo of an apparent bug in the ape function root
. The bug seems to affect the branch lengths of the rerooted tree. (Specifically, one of the branch lengths is too long!)
This may affect any function in phytools that uses root
internally, such as fastAnc
and functions that depend on fastAnc
.
library(ape)
tree<-read.tree(text="((A:1,B:1):1,C:1);")
plot(tree,type="unrooted")
unroot(tree)$edge.length
## [1] 1 1 2
rerooted<-root(tree,node=5)
plot(rerooted,type="unrooted")
unroot(rerooted)$edge.length
## [1] 1 1 3
packageVersion("ape")
## [1] '3.4'
sessionInfo()
## R version 3.2.2 (2015-08-14)
## Platform: x86_64-w64-mingw32/x64 (64-bit)
## Running under: Windows 8 x64 (build 9200)
##
## locale:
## [1] LC_COLLATE=English_United States.1252
## [2] LC_CTYPE=English_United States.1252
## [3] LC_MONETARY=English_United States.1252
## [4] LC_NUMERIC=C
## [5] LC_TIME=English_United States.1252
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] ape_3.4 knitr_1.11
##
## loaded via a namespace (and not attached):
## [1] magrittr_1.5 tools_3.2.2 stringi_1.0-1 nlme_3.1-122
## [5] grid_3.2.2 stringr_1.0.0 lattice_0.20-33 evaluate_0.8
This bug cannot be reproduced with ape 3.1.4 on my laptop. Most probably it appeared in a release between 3.1.4 and 3.4.
ReplyDelete