蛋白保守结构域和进化树
2022-09-02 本文已影响0人
kkkkkkang
常规的MEME和进化树可视化,以及其它基因结构/注释信息结合进化树可视化,TBtools已经做的很好https://cloud.tencent.com/developer/article/1809116
但是定制化的还是不容易实现,比如我只想画出来不同物种间某一蛋白的预测的跨膜结构域。摸索TBtools且群里求助也没解决。算了,我用R自己画吧。。
准备文件 :
- fasta格式的蛋白序列文件,去mega多序列比对后建树,bootstrap值设置为1000;
- 整理TMHMM预测得到的跨膜结构域信息,如下
tm_motif
注意进化树里面蛋白的名字要和结构域里面的一模一样
下面开始画图
library(ggplot2)
library(gggenes)
library(ggtree)
library(aplot)
tree <- read.tree("Newick Export.nwk") # 读入树文件
tm <- read.table("tm.txt", header = T, sep = "\t") # 读入结构域信息文件
p1 <- ggtree(tree) +
geom_tiplab(size = 4) +
geom_treescale(fontsize=4, linesize=0.5) + # 加标尺
geom_nodelab(nudge_x = 0.7) + # 加bootstrap值
xlim(0,15) # 名称太长,设置一下x轴范围以便显示完全
p1
p2 <- ggplot(tm, aes(xmin = start, xmax = end, y=IDs, fill = type)) +
scale_fill_manual(values = c("#e63946","#f1faee","#a8dadc"))+
geom_gene_arrow(arrowhead_height = unit(3, "mm"),
arrowhead_width = unit(0, "mm"))+ # 画结构域的函数
theme_genes()+
ylab(NULL) +
theme(legend.title = element_blank(), axis.text.y = element_blank())
p2
p <- p2 %>% insert_left(p1) # 拼图
p
image.png
至于种名斜体什么的,AI中去改吧