目录
前记
都2023年了,才去使用Y叔早在2018年发表的进化树构建利器——ggtree。刚好最近在做基因家族分析,进化树的构建与美化确实有点麻烦,先前使用MEGA11进行了绘制,但图像简陋,于是导出了nwk文件,准备使用其他软件进行美化。这里,我使用ggtree包进行操作。
一、ggtree的安装
下方链接:
Bioconductor - ggtreehttps://bioconductor.org/packages/release/bioc/html/ggtree.html打开R语言输入以下代码,进行安装:
if (!require("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("ggtree")
二、使用ggtree处理nwk文件
1、导入进化树文件
#加载包
library(ggplot2)
library(ggtree)
library(treeio)
#读取文件
tree <- read.newick("Newick Export.nwk", node.label = "label")
2、绘制简单进化树
代码如下:
ggtree(tree, branch.length = "none", layout = "circular") +
geom_tiplab()
#branch.length = "none",表示对齐;
#layout,设置树的外观;
#geom_tiplab(),显示各分支名称。
结果为:
3、重命名进化树分支
为方便操作,对上述例子的分支名称进行重命名,操作如下:
#重命名分支名称
rename <- read.table(file = "common_rename.txt", header = F)
tree1 <- tree
tree1@phylo$tip.label <- rename[match(tree1@phylo$tip.label,rename$V1),]$V2
#"common_rename.txt"文件是新名称和旧名称的对应文件。
重新绘制,如下:
可以看到,名称全部被替换。
4、标识进化树
以其中一个分组为例,NB-179到NB-122这个范围,如上图所示;
代码如下:
ggtree(tree1, branch.length = "none", layout = "circular") +
geom_tiplab2(size = 2, color = "seagreen") +
geom_text2(aes(label=node), size = 2, color = "red") +
geom_hilight(node = 377, fill = "orange", alpha = 0.6) +
geom_strip(taxa1 = "NB-179", taxa2 = "NB-122",
label = "Class I", color = "steelblue",
offset = 2.5, barsize = 2,
hjust = "center", angle = 30,
extend = 0.5, offset.text = 2,
align = FALSE)
#其中,geom_tiplab2设置分支名称的标签;geom_text2显示节点名称;geom_hilight对节点进行高亮;geom_strip对分组进行标注。
输出的结果如下:
看着有点缭乱,去掉节点名称和高亮,重新输出:
PS:如果要进化树分支显示颜色,需建立一个node与color对应的件,并通过下面语句进行导入。
col <- read.table("node_color.txt", header = TRUE)
col <- data.frame(col)
#使用`%<+%`符号强插入颜色数据到树文件中
p2 <- p1%<+%col + aes(color = I(color))
p2
5、参考链接
后记
第一次用ggtree绘制进化树,很多地方还不熟,后面还需要再用心琢磨琢磨。
2023.8.14
CXGG