一、概述
在近半年中,我读了很多的高分SCI文章,很多文章中都有多种不同的火山图,包括「普通的火山图、渐变火山图、以及包含GO通路信息的火山图」!
经过一段时间的文献阅读和资料查询,终于找到了一个好用而且简单的包——ggVolcano, 它是一个基于R语言和ggplot2绘图包开发的生物信息学数据可视化工具。它可以用于绘制火山图(Volcano plot),帮助研究者分析高通量实验数据,如基因表达谱或蛋白质组学数据,以识别差异表达或差异富集的基因或蛋白质。
二、数据集
1. 安装及使用
由于无法直接安装ggVolcano,我们需要下载devtools,通过devtools直接从github下载,代码如下:
# 下载器 install.packages("devtools") library(devtools) # 火山图 devtools::install_github("BioSenior/ggvolcano") library(ggvolcano) # 拼图 install.packages("patchwork") library(patchwork) # 渐变色色彩修改 install.packages("RColorBrewer") library(RColorBrewer)
2. 读取数据
首先,我们需要读取aSAH数据集,查看数据集信息
data(deg_data) head(deg_data,3)
数据集展示
row baseMean log2FoldChange lfcSE stat pvalue padj GCR1 GCR1 7201.5782 2.244064 0.2004959 11.19256 4.434241e-29 2.153711e-25 OPI10 OPI10 1009.4171 -2.257454 0.2096469 -10.76789 4.880607e-27 1.185255e-23 AGA2 AGA2 249.1173 3.829474 0.3623263 10.56913 4.143136e-26 6.707736e-23
三、基础用法
ggVolcano绘制的火山图可以根据指定的差异表达或统计显著性阈值,将基因或蛋白质标记为显著差异的或富集的(例如p值小于0.05或fold change大于2),并且根据其差异表达或显著性水平值的高低,用颜色或大小进行编码。此外,它还支持在图中显示用户自定义的标注、注释或基因集富集分析结果,以帮助观察者更好地理解和解释结果。该包主要配置了三个函数:
1. 普通火山图:ggvolcano
- 方法参数解释:
result: DEG结果数据。 x: 对应于x轴的列名,默认为“log2FoldChange”。 y: 对应于y轴的列名,默认为“padj”。 pointSize: 点的大小。 pointShape: 点的形状。 fills: 包含点的填充颜色的向量。 colors: 包含点的画笔颜色的向量。 x_lab: x轴的标签。 y_lab: y轴的标签。 legend_title: 图例的标题。 legend_position: 图例的位置。您可以从“UL”–左上,“UR”–右上,“DL”–左下和“DR”–右下中选择一个位置。 log2FC_cut: log2FC的截止值。 FDR_cut: FDR的截止值。 add_line: 一个逻辑值,表示是否添加虚线,默认值为TRUE。 add_label: 一个逻辑值,表示是否添加基因标签,默认值为TRUE。 label: 对应于标签的列名。 label_number: 您想在图中显示多少基因标签。 custom_label: 包含您感兴趣的基因名称的向量,您想要添加到图中。 output: 一个逻辑值,表示是否保存图片,默认值为TRUE。 filename: 如果output=TRUE,请设置一个文件名。
- 代码演示
data <- add_regulate(deg_data, log2FC_name="log2FoldChange", fdr_name = "padj",log2FC = 1, fdr = 0.05) ggvolcano(data, x = "log2FoldChange", y = "padj", label = "row", label_number = 10, output = FALSE)
- 火山图样式修改
p1 <- ggvolcano(data, x = "log2FoldChange", y = "padj", fills = c("red","green","blue"), colors = c("red","green","blue"), label = "row", label_number = 8, output = FALSE) p2 <- ggvolcano(data, x = "log2FoldChange", y = "padj", label = "row", label_number = 8, output = FALSE,legend_position="DR")+ ggsci::scale_color_aaas()+ ggsci::scale_fill_aaas() p1|p2
2. 渐变色火山图:gradual_volcano
- 方法参数解释:
result: DEG结果数据。 x: 对应于x轴的列名,默认为“log2FoldChange”。 y: 对应于y轴的列名,默认为“padj”。 pointSize: 点的大小。 pointShape: 点的形状。 fills: 包含点的填充颜色的向量。 colors: 包含点的画笔颜色的向量。 x_lab: x轴的标签。 y_lab: y轴的标签。 legend_title: 图例的标题。 legend_position: 图例的位置。您可以从“UL”–左上,“UR”–右上,“DL”–左下和“DR”–右下中选择一个位置。 log2FC_cut: log2FC的截止值。 FDR_cut: FDR的截止值。 add_line: 一个逻辑值,表示是否添加虚线,默认值为TRUE。 add_label: 一个逻辑值,表示是否添加基因标签,默认值为TRUE。 label: 对应于标签的列名。 label_number: 您想在图中显示多少基因标签。 custom_label: 包含您感兴趣的基因名称的向量,您想要添加到图中。 output: 一个逻辑值,表示是否保存图片,默认值为TRUE。 filename: 如果output=TRUE,请设置一个文件名。
- 代码演示
gradual_volcano(deg_data, x = "log2FoldChange", y = "padj", label = "row", label_number = 10, output = FALSE,legend_title="")
- 火山图样式修改
这里不能直接修改颜色了,需要引入RColorBrewer
包,用来调整色彩。
p1 <- gradual_volcano(data, x = "log2FoldChange", y = "padj", fills = brewer.pal(5, "RdYlBu"), colors = brewer.pal(10, "RdYlBu"), label = "row", label_number = 10, output = FALSE,legend_title="") p2 <- gradual_volcano(data, x = "log2FoldChange", y = "padj", label = "row", label_number = 10, output = FALSE,legend_title="")+ ggsci::scale_color_gsea()+ ggsci::scale_fill_gsea() p1|p2
3. GO通路火山图:term_volcano
参数和样式修改方法和上述两个方法类似,不再赘述,接下来展示基础使用方法:
data("term_data") term_volcano(deg_data, term_data, x = "log2FoldChange", y = "padj", label = "row", label_number = 10, output = FALSE, legend_background_fill = "green")