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.
Every year, replica watches uk launch their latest toys and gadgets and show their designers the best they can. For example, replica rolex watches fake omega However, year after year, some models and designs are consistent with us; The tried and tested works will never be impressive.
ReplyDelete