美文网首页收藏
【R画图学习23.1】ggplot2展示多序列比对结果

【R画图学习23.1】ggplot2展示多序列比对结果

作者: jjjscuedu | 来源:发表于2023-02-08 21:13 被阅读0次

    以前做序列比对通常都是MEGA来做,然后有时候会用genedoc来展示,但是经常碰到一个问题就是没办法得到矢量图。所以一直在想用R能不能展示多序列比对的结果,尤其是核心关键domain的区域。

    下面是paper中的一个结果,看着就很清晰。


    library("phylotools")

    library("ggplot2")

    library("tidyr")

    library("dplyr")

    df <- read.fasta("data.fasta")

    df


    #用ggplot展示的话,我们就需要拆分成单个碱基的形式,有点类似长矩阵变成短矩阵的感觉。


    new.df <- df %>% separate(seq.text,paste0("col",str_pad(1:28,2,side = "left",pad = "0")),'') %>% select(-col01) %>%mutate(seq.name=factor(seq.name,levels = rev(seq.name))) %>% pivot_longer(!seq.name)


    下面就可以用ggplot画图了


    p1<-ggplot(new.df,aes(x=name,y=seq.name))+

      geom_tile(fill="white",alpha=0)+

      geom_text(aes(label=value))+

      theme_bw()+

      theme(axis.text.x = element_blank(),

            axis.ticks = element_blank(),

            panel.grid = element_blank(),

            panel.border = element_blank())

    p1


    下面添加两侧的数字:


    df1<-data.frame(x=0,

                    y=11:1,

                    label=c(671,668,669,666,744,743,756,736,706,747,759))   #左侧

    df2<-data.frame(x=28,

                    y=11:1,

                    label=c(695,692,693,690,770,665,777,761,727,768,780))  #右侧

    p2 <- p1+

      geom_text(data=df1,

                aes(x=x,y=y,label=label),

                inherit.aes = FALSE,hjust=1)+

      geom_text(data=df2,

                aes(x=x,y=y,label=label),

                inherit.aes = FALSE,hjust=0)+

      coord_equal(xlim = c(-1,29))

    p2


    下面就是添加颜色了:

    我们把控制颜色的数据单独放在一个文件中,我只准备了部分。


    df3 <- read.table("tmp.txt",sep="\t",header=T)

    df3

    p2 +

      geom_tile(data=df3,aes(x=x,y=y,fill=group),

                color="white",show.legend = FALSE)+

      geom_text(data=df3,aes(x=x,y=y,label=label),

                color="white")+

      scale_fill_manual(values = c("#00adef","#ed1b24"))+

      labs(x=NULL,y=NULL)


    这样经过控制,就可以获得文中的效果了。

    相关文章

      网友评论

        本文标题:【R画图学习23.1】ggplot2展示多序列比对结果

        本文链接:https://www.haomeiwen.com/subject/xwatkdtx.html