ggtree美化进化树

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?)即可

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容