差异基因|火山图

介绍

关于ggvolcano包和ggplot2包绘制火山图,以及加标签、修改配色等。
获得差异基因列表后,用以进行差异基因分析的数据通常包括包括Gene_ID,logFoldChange,P值和P.adj,上调下调信息以及注释信息(Symbol name或Gene name等)。火山图不需要每个样本的表达量,所以这些信息就足够了。

> head(DEG_data)
       Gene_ID Gene_name     logFC      P.Value        P.adj regulate
1 LOC117871706      RPS8 -13.09148 1.169818e-11 1.392317e-07     DOWN
2        RPS29     RPS29  12.06191 2.783048e-10 4.575940e-07       UP
3        PDIA2     PDIA2 -10.66046 4.753260e-11 2.015868e-07     DOWN
4       ANXA10    ANXA10 -10.36442 3.167544e-10 4.575940e-07     DOWN
5       PPDPFL    PPDPFL -10.27714 7.087988e-09 4.017202e-06     DOWN
6         PFN1      PFN1 -10.20349 5.081167e-11 2.015868e-07     DOWN

ggvolcano

ggvolcano是专门针对火山图开发的包。它的相关参数是直接针对差异基因绘制火山图设计的。

  • 安装

install.packages("devtools")
library(devtools)
devtools::install_github("BioSenior/ggvolcano",force = TRUE)
library(ggVolcano)

注意library中的'ggVolcano'的'V'是大写。否则安装成功后,运行时显示找不到包。

  • 数据处理
# 读入R包
library(ggVolcano)
library(tidyverse)
library(RColorBrewer)
library(ggsci)
library(patchwork)
# RColorBrewer可以生成渐变色盘,仅作绘图尝试,在火山图中其实并不实用
# patchwork可通过“|”命令合并多个图,快捷方便,但更多时候还是通过cowplot包完成。
data_Female <- read.csv("~/R/LNN/TSE_PS/Limma_DEGs_TSE_vs_PS_Female.csv")%>%
  mutate(X = NULL)
data_Female%>%colnames()
DEG_data <- data_Female%>%
  mutate(regulate = Direction)%>%
  select(Gene_ID,Gene_name,logFC,P.Value,P.adj,regulate)
head(DEG_data)

注意,ggvolcano需要识别regulate这一列,且包含UP、DOWN和NS信息。我的表格中的这一列为"DIrection",在处理中新建立了“regulate”一列并复制了Direction里的信息。如果本身列表中不具备这一列,那么可通过包中自带的功能生成相应的“regulate”列。

DEG_data <- add_regulate(data_Female, log2FC_name = "logFC",
fdr_name = "P.adj",log2FC = 1, fdr = 0.05)

  • 火山图绘制
    绘图,我们简单绘制一个默认参数下的图,随后尝试调整各种参数
P1 <- ggvolcano(DEG_data,x= "logFC",y ="P.adj",label = "Gene_name")

P1为默认参数下的结果,其中Gene_name为注释信息列,也可以是Gene_ID或自己命名的其它列。默认情况显示10个label,可通过"label_number = "控制显示标签的数目。output = F表示不输出文件,如果output = T,则需要设置 “filename = ”参数。默认情况下,x轴为Log2FC,Y轴为-Log10FDR,图例位置在左上方。接下来我们对图进行部分调整。

#准备目标基因集
list <- DEG_data$Gene_name
label_list <- list[1:50]
#
P2 <- ggvolcano(DEG_data,x= "logFC",y ="P.adj",
                label = "Gene_name",output = F,
                fills = c("#357EBDFF", "#B8B8B8FF", "#D43F3AFF"),
                colors = c("#357EBDFF", "#B8B8B8FF", "#D43F3AFF"),
                x_lab = "log2FC",
                y_lab = "-Log10P.Value",
                custom_label = label_list ,
                pointSize = 2,
                pointShape = 18,
                legend_position = "DR")
#
P1|P2

fills和colors命令设置颜色,x_lab和y_lab设置x、y周名称。custom_label可以设置自己想要显示的标签,以list形式输入,这里我筛选了Gene_name中的前50个名称在list中。pointSize和pointShape设置点的大小和形状。 legend_position 设置图例位置,默认是在左上,即UL,我将其设置在没有遮挡的坐下,即DR。

P1, P2
  • 渐变色火山图 gradual_volcano
    ggVolcano中有一个独立的函数ggradual_volcano来绘制渐变色火山图。
    这里需要注意的是,前面的pointSize, pointShape在这里没法使用,但是可以设置pointSizeRange来控制大小的变化。这里我设置了从大到小以及从小到大,可以看看效果。
# gradual_volcano
P3 <- gradual_volcano(DEG_data,x= "logFC",y ="P.adj",
          label = "Gene_name",output = F,
          fills = brewer.pal(5, "RdYlBu"),
          colors = brewer.pal(10, "RdYlBu"),
          x_lab = "log2FC",
          y_lab = "-Log10P.Value",
          custom_label = label_list ,
          legend_position = "DR")
#
mycolors <- hcl.colors(10)
P4 <- gradual_volcano(DEG_data,x= "logFC",y ="P.adj",
                label = "Gene_name",output = F,
                fills = mycolors,
                colors = mycolors,
                x_lab = "log2FC",
                y_lab = "-Log10P.Value",
                custom_label = label_list ,
                pointSizeRange = c(1,4),
                legend_position = "DR")
#
P5<- gradual_volcano(DEG_data,x= "logFC",y ="P.adj",
                label = "Gene_name",output = F,
                x_lab = "log2FC",
                y_lab = "-Log10P.Value",
                custom_label = label_list ,
                pointSizeRange = c(4,1),
                legend_position = "DR")+
  scale_color_gsea()+
  scale_fill_gsea()
pdf("gradual_plot.pdf",width = 16, heigh = 6)
P3|P4|P5
dev.off()

P3使用RColorBrewer包进行配色,未设置点的大小
P4使用R中自带的grDevices配色,点从小到大
P5使用ggsci包进行配色,ggsci中可选用渐变色的色盘很少,选择时需要看说明。点改为从大到小


P3,P4,P5

虽然渐变色更炫酷,但是好像不太实用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容