ggtree导入数据
library(ggtree)
library(treeio)
library(tidytree)
library(TDbook)
setwd("C:\\Users\\XXX\\Desktop\\总树")
tree <- read.tree("test.nwk")
通常情况下,我们需要对ID进行一定的修改,那么我们可以执行一下操作
#先获取当前树的枝名称
tree_name_0 <- tree$tip.label
write(x = tree,file = "tree_name.txt")
#修改完名称后
tree_name<- readLines("tree_name.txt")
tree$tip.label <- tree_name
这样一来即可完成树枝的名称更换
指定外围枝
tree_rooted <- root(phy = tree,outgroup = "outgroup",edgelabel = T)
绘制基础图形
这里建议直接使用ggtree进行绘制,使用ggplot()+ggtree()的形式进行绘制,虽然也能绘制出进化树图,但是只有直方图可用,无法转化为圈图等其他呈现形式。
p <- ggtree(tree_rooted,
layout = "fan",
branch.length="none",# 这里忽略枝长
size=0.15,
open.angle=5)
p
然后可用添加枝条信息
p <- p+ geom_tiplab()
即可将名称添加到树上
高亮特定区域
首先需要知道从哪开始高亮,在ggtree中需要提供一个节点的信息。
通常使用MRCA命令进行获取该节点
MRCA(tree,"name1",“name2")
返回值为这两个枝最近的那个节点
然后通过该值高亮这两个枝所在的簇
p+geom_hilight(node=250,fill="#EE0000",alpha=.3)+
geom_hilight(node=253,fill="#00FF7F",alpha=.3)
如果需要高亮的区域较多可能需要一定的时间来寻找对应的节点。
注:有时MRCA返回的数值并不准确,但想要的节点基本在那个数值附近了,稍微调整一下(加减1?)即可