美文网首页统计与科研
跟着Nature Communications学作图:R语言gg

跟着Nature Communications学作图:R语言gg

作者: 小明的数据分析笔记本 | 来源:发表于2023-04-05 20:01 被阅读0次

    论文

    Chromosome-level assemblies of multiple Arabidopsis genomes reveal hotspots of rearrangements with altered evolutionary dynamics

    https://www.nature.com/articles/s41467-020-14779-y

    拟南芥NC_panGenome.pdf

    分析代码的github主页

    https://github.com/schneebergerlab/AMPRIL-genomes

    论文中组装了7个拟南芥的基因组,做了一些泛基因组相关的分析,数据和大部分代码都公开了,我们试着复现一下其中的图和一些分析过程,今天的推文复现一下论文中的figure2b箱线图和小提琴图展示结构变异的长度分布

    示例数据

    image.png

    读取数据

    library(tidyverse)
    dat<-read_delim("D:/R_4_1_0_working_directory/env001/data/20230318/Source_Data.Figure2/Fig2b.txt",
                    delim = "\t")
    dat
    

    最基本的箱线图和小提琴图

    library(ggplot2)
    
    ggplot(data = dat,aes(x=`SV-type`,y=length))+
      geom_violin()+
      geom_boxplot()
    
    image.png

    这里因为结构变异的长度分布范围非常大,所以出图不太好看,论文里的处理方式是对长度的数值取log10,这样图看起来就好看很多,这个也是一个数据可视化的小技巧

    ggplot(data = dat,aes(x=`SV-type`,y=log10(length)))+
      geom_violin()+
      geom_boxplot()
    
    image.png

    接下来对整个图进行美化

    dat %>% 
      mutate(`SV-type`=factor(`SV-type`,
                              levels = c("INS","DEL","DUP","TL","INV"))) -> dat
    ggplot()+
      geom_rect(aes(xmin=-Inf,xmax=2.5,ymin=-Inf,ymax=Inf),
                alpha=0.5)+
      geom_violin(data = dat,
                  aes(x=`SV-type`,
                      y=log10(length),
                      color=`SV-type`),
                  linewidth=1)+
      geom_boxplot(data = dat,
                   aes(x=`SV-type`,
                       y=log10(length),
                       color=`SV-type`),
                   width=0.1,outlier.alpha = 0,
                   linewidth=1)+
      labs(x=NULL,y="Length of SVs (bp)")+
      scale_y_continuous(breaks = c(2:6),
                         labels = c(expression(10^2),expression(10^3),
                                    expression(10^4),expression(10^5),
                                    expression(10^6)))+
      theme_bw()+
      theme(legend.position = "none",
            panel.grid = element_blank(),
            panel.background = element_rect(fill="grey"))
    
    image.png

    这里遇到一个问题是

    geom_rect(aes(xmin=-Inf,xmax=2.5,ymin=-Inf,ymax=Inf),
                alpha=0.5)
    

    添加背景的时候如果添加一层是没有问题的,但是如果再继续叠加一层就会报错,暂时搞不清楚问题出在哪里

    示例数据和代码可以给推文点赞,然后点击在看,最后留言获取

    欢迎大家关注我的公众号

    小明的数据分析笔记本

    小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;3、生物信息学入门学习资料及自己的学习笔记!

    微信公众号好像又有改动,如果没有将这个公众号设为星标的话,会经常错过公众号的推文,个人建议将 小明的数据分析笔记本 公众号添加星标,添加方法是

    点开公众号的页面,右上角有三个点

    image.png

    点击三个点,会跳出界面

    image.png

    直接点击 设为星标 就可以了

    相关文章

      网友评论

        本文标题:跟着Nature Communications学作图:R语言gg

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