I just posted a new non-CRAN version of phytools (go
here and pick the latest
version, which can be installed from source). I'm working towards an update to
phytools on CRAN; but I need to do some more debugging of phytools' new
functions, such as locate.yeti and locate.fossil,
as well as add some details to new documentation, before I do that.
This latest version now includes the aforementioned locate.fossil.
It also includes fitPagel, a relatively simple wrapper function
that implements
Pagel's
1994 method to test for correlated evolution of two binary characters, as
well as the brand new function
add.arrow,
which adds an arrow to a plotted radial or square phylogram.
Here's a quick demo of the last function in this list:
library(phytools)
packageVersion("phytools")
## [1] '0.4.42'
## simulate tree with realistic tip labels
set.seed(10)
tree<-rtree(n=26)
tree$tip.label<-paste(LETTERS[26:1],"._",sep="",
replicate(26,paste(sample(letters,sample(3:12,1)),
collapse="")))
h<-max(nodeHeights(tree))
plotTree(tree,ftype="i")
add.arrow(tree=tree,tip=tree$tip.label[12],angle=40,arrl=0.1*h)
add.arrow(tree=tree,tip=tree$tip.label[6],angle=40,arrl=0.1*h,col="red")
## we can do it without supplying a tree as a function argument
add.arrow(tip=23,offset=8,angle=40,arrl=0.1*h,col="green")
## we can have an arrow point to a node
add.arrow(tip=41,offset=0.5,angle=40,arrl=0.1*h)
Of course, as described in the original
post
the function also works for radial (type="fan") trees, e.g.:
tree<-pbtree(n=64)
tree$tip.label<-paste(sample(LETTERS,64,replace=TRUE),"._",sep="",
replicate(26,paste(sample(letters,sample(3:12,1)),
collapse="")))
h<-max(nodeHeights(tree))
plotTree(tree,type="fan",ftype="i")
## setEnv=TRUE for this type is experimental. please be patient with bugs
add.arrow(tree,tip="D._idemqv",col="red")
add.arrow(tree,tip="U._fjgchek",col="blue")
And we can use it for plotted objects of class "contMap" and
"densityMap", e.g.:
x<-fastBM(tree)
obj<-contMap(tree,x,plot=FALSE)
plot(obj,type="fan",legend=2)
add.arrow(tree,tip="D._idemqv",col="red")
add.arrow(tree,tip="U._fjgchek",col="blue")
That's it for now.
No comments:
Post a Comment
Note: due to the very large amount of spam, all comments are now automatically submitted for moderation.