R phytools 为 3D 系统发育树中的分支添加颜色

R phytools add color to branches in 3D phylogenetic tree

我正在为 3D 系统发育树使用 R“phytools”库。

我用下面的脚本成功制作了3D树

library(phytools)
library(rgl)

tree<-read.tree(text="((un6:3,(un2:2,(un7:1,un5:1):1):1):1,((un1:1,un4:1):1,un3:1,un8:1):1):1,(un9:2,un10:2):1):1):1;")
class(tree) <- "phylo"
Bae2 <- matrix(c(1,2,2,3,3,0.5,4,4,5,5,1,4,6,7,9,2,1,1,7,8),10,2,byrow=TRUE)
rownames(Bae2) <- c("un1","un2","un3","un4","un5","un6","un7","un8","un9","un10")
fancyTree(tree, type="traitgram3d",X=Bae2,control=list(spin=TRUE)

输出为

我想做的是,由于树是3D的,树枝之间很难区分。

那么有什么方法可以给树枝添加颜色吗?

探索 github 处的函数 fancyTree,我们可以看到参数 type="traitgram3d" 内部调用了一个函数 traitgram3d,它又是函数 traitgram3d 的包装器 phylomorphospace3d。打字

?phylomorphospace3d

给出参数 control as

的解释

col.edge a vector of colors of length nrow(tree$edge).

让我们从第 3 组中选择一些颜色并用它们为树的边缘着色。

cols <- hcl.colors(nrow(tree$edge), palette = "Set 3")
fancyTree(tree, type = "traitgram3d",X = Bae2, 
    control = list(col.edge = cols))