• 跟着NatureMetabolism学作图:R语言ggplot2转录组差异表达火山图


    论文
    Independent phenotypic plasticity axes define distinct obesity sub-types

    https://www.nature.com/articles/s42255-022-00629-2#Sec15

    s42255-022-00629-2.pdf

    论文中没有公开代码,但是所有作图数据都公开了,我们可以试着用论文中提供的数据模仿论文中的图

    今天的推文重复一下论文中的Fig3b 差异表达火山图,之前也有推文介绍过火山图,今天的推文主要学习的一个知识点是利用latex2exp这个R包添加文本,包括

    上下标
    换行 换行的基本写法

    ggplot()+
      geom_point(aes(x=1,y=1))+
      labs(x=TeX(r"(\overset${ABCDEF}{abcde}$)"))
    
    • 1
    • 2
    • 3

    在这里插入图片描述
    火山图的部分示例数据
    在这里插入图片描述
    读取数据

    library(readr)
    df<-read_tsv("data/20220921/fig3b.txt")
    head(df)
    colnames(df)
    
    • 1
    • 2
    • 3
    • 4

    添加差异表达的分组

    df %>% 
      mutate(change=case_when(
        log2FoldChange > 1 & pvalue < 0.05 ~ "Up",
        log2FoldChange < -1 & pvalue < 0.05 ~ "Down",
        TRUE ~ "Not Sig"
      )) -> new.df
    
    table(new.df$change)
    new.df %>% 
      filter(-log10(pvalue)>8) -> new.text.label
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    这里没有找到论文中差异表达的标准,这里是我随便写的

    作图代码

    library(ggplot2)
    library(ggrepel)
    library(latex2exp)
    ggplot(data=new.df,aes(x=log2FoldChange,y=-log10(pvalue)))+
      geom_point(aes(color=change))+
      scale_color_manual(values = c("Down"="#3a53a4",
                                    "Not Sig"="#aaaaaa",
                                    "Up"="#7acde4"),
                         labels=c("Down"=TeX(r"(\textit{Nnat}${^+}$${^/}$${^-}$${^p}$-\textit{Heavy} depleted)"),
                                  "Not Sig"="Not Significant",
                                  "Up" = TeX(r"(\textit{Nnat}${^+}$${^/}$${^-}$${^p}$-\textit{Heavy} enriched)")))+
      theme_classic()+
      theme(legend.position = c(0.2,0.9),
            legend.text.align = 0,
            legend.title = element_blank())+
      geom_text_repel(data=new.text.label,
                      aes(x=log2FoldChange,y=-log10(pvalue),
                          label=mgi_symbol))+
      labs(x=TeX(r"(\overset${\textit{Nnat}{^+}{^/}{^-}{^p}-\textit{Lean}$ versus $\textit{Nnat}{^+}{^/}{^-}{^p}-\textit{Giant}}{(log{_2}$ fold $change)}$)"),
           y=TeX(r"(-log${_1}{_0}$ {(}\textit{P}{ value}{)})"))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    在这里插入图片描述
    制作封面图

    p1<-ggplot(data=new.df,aes(x=log2FoldChange,y=-log10(pvalue)))+
      geom_point(aes(color=change))+
      scale_color_manual(values = c("Down"="#3a53a4",
                                    "Not Sig"="#aaaaaa",
                                    "Up"="#7acde4"),
                         labels=c("Down"=TeX(r"(\textit{Nnat}${^+}$${^/}$${^-}$${^p}$-\textit{Heavy} depleted)"),
                                  "Not Sig"="Not Significant",
                                  "Up" = TeX(r"(\textit{Nnat}${^+}$${^/}$${^-}$${^p}$-\textit{Heavy} enriched)")))+
      theme_classic()+
      theme(legend.position = c(0.2,0.9),
            legend.text.align = 0,
            legend.title = element_blank())+
      geom_text_repel(data=new.text.label,
                      aes(x=log2FoldChange,y=-log10(pvalue),
                          label=mgi_symbol))+
      labs(x=TeX(r"(\overset${\textit{Nnat}{^+}{^/}{^-}{^p}-\textit{Lean}$ versus $\textit{Nnat}{^+}{^/}{^-}{^p}-\textit{Giant}}{(log{_2}$ fold $change)}$)"),
           y=TeX(r"(-log${_1}{_0}$ {(}\textit{P}{ value}{)})"))
    
    p2<-ggplot(data=new.df,aes(x=log2FoldChange,y=-log10(pvalue)))+
      geom_point(aes(color=change))+
      scale_color_manual(values = c("Down"="red",
                                    "Not Sig"="#aaaaaa",
                                    "Up"="darkgreen"),
                         labels=c("Down"=TeX(r"(\textit{Nnat}${^+}$${^/}$${^-}$${^p}$-\textit{Heavy} depleted)"),
                                  "Not Sig"="Not Significant",
                                  "Up" = TeX(r"(\textit{Nnat}${^+}$${^/}$${^-}$${^p}$-\textit{Heavy} enriched)")))+
      theme_classic()+
      theme(legend.position = c(0.2,0.9),
            legend.text.align = 0,
            legend.title = element_blank())+
      geom_text_repel(data=new.text.label,
                      aes(x=log2FoldChange,y=-log10(pvalue),
                          label=mgi_symbol))+
      labs(x=TeX(r"(\overset${\textit{Nnat}{^+}{^/}{^-}{^p}-\textit{Lean}$ versus $\textit{Nnat}{^+}{^/}{^-}{^p}-\textit{Giant}}{(log{_2}$ fold $change)}$)"),
           y=TeX(r"(-log${_1}{_0}$ {(}\textit{P}{ value}{)})"))
    
    library(patchwork)
    pdf(file = "Rplot03.pdf",width = 14.1,height = 6)
    p1+p2
    dev.off()
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41

    在这里插入图片描述
    示例数据和代码可以给推文点赞 点击在看 最后留言获取

  • 相关阅读:
    tensorflow安装踩坑总结
    暴力求解欲哭无泪之保安问题
    【SpringBoot】多环境配置
    C++头文件
    About Covariance and Correlation(协方差和相关)
    Android NDK之使用 arm-v7a 汇编实现两数之和
    VS+QT编译出现QMYSQL driver not loaded
    OB Cloud助力泡泡玛特打造新一代分布式抽盒机系统
    基于智能优化算法的无人机路径规划(Matlab代码实现)
    hutool工具导出excel代码示例
  • 原文地址:https://blog.csdn.net/qq_24252589/article/details/133976228