蛋白保守结构域和进化树

常规的MEME和进化树可视化,以及其它基因结构/注释信息结合进化树可视化,TBtools已经做的很好https://cloud.tencent.com/developer/article/1809116
但是定制化的还是不容易实现,比如我只想画出来不同物种间某一蛋白的预测的跨膜结构域。摸索TBtools且群里求助也没解决。算了,我用R自己画吧。。

准备文件 :

  1. fasta格式的蛋白序列文件,去mega多序列比对后建树,bootstrap值设置为1000;
  2. 整理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中去改吧

你可能感兴趣的:(蛋白保守结构域和进化树)