一行代码绘制高分SCI火山图

简介: 经过一段时间的文献阅读和资料查询,终于找到了一个好用而且简单的包——ggVolcano, 它是一个基于R语言和ggplot2绘图包开发的生物信息学数据可视化工具。它可以用于绘制火山图(Volcano plot),帮助研究者分析高通量实验数据,如基因表达谱或蛋白质组学数据,以识别差异表达或差异富集的基因或蛋白质。

一、概述



在近半年中,我读了很多的高分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

640.png


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")


目录
相关文章
|
人工智能 数据可视化 Go
R绘图实战|GSEA富集分析图
GSEA(Gene Set EnrichmentAnalysis),即基因集富集分析,它的基本思想是使用预定义的基因,将基因按照在两类样本中的差异表达程度排序,然后检验预先设定的基因集合是否在这个排序表的顶端或者底端富集。
2713 0
R绘图实战|GSEA富集分析图
|
6月前
|
并行计算 数据可视化 算法
CMplot & rMVP | 全基因组曼哈顿图和QQ图轻松可视化!
`CMplot`和`rMVP`是R语言中的两个包,用于全基因组关联分析(GWAS)的数据可视化。`CMplot`专注于曼哈顿图和QQ图的绘制,支持多种图表类型,如常见的SNP密度图、环状曼哈顿图、矩阵图、单条染色体图和多重曼哈顿图等。`rMVP`不仅包含了`CMplot`的功能,还支持更复杂的GWAS方法,如线性/混合线性模型和基因组选择算法,优化了内存管理和计算效率,特别适合大规模数据集。此外,它还提供PCA图和柱状图。两者都提供了丰富的参数定制图表。
314 1
CMplot & rMVP | 全基因组曼哈顿图和QQ图轻松可视化!
|
6月前
R语言中绘制箱形图的替代品:蜂群图和小提琴图
R语言中绘制箱形图的替代品:蜂群图和小提琴图
|
6月前
Visio绘制论文文献技术路线图流程图
Visio绘制论文文献技术路线图流程图
188 1
跟着 Cell 学作图 | 柱状图+误差棒+蜂群图
跟着 Cell 学作图 | 柱状图+误差棒+蜂群图
193 0
|
数据可视化
好玩的DEM制图:等高线地形图入门与进阶
好玩的DEM制图:等高线地形图入门与进阶
89 0
|
机器学习/深度学习 索引
一行代码绘制高分SCI限制立方图
Restricted cubic splines (RCS)是一种基于样条函数的非参数化模型,它可以可靠地拟合非线性关系,可以自适应地调整分割结点。在统计学和机器学习领域,RCS通常用来对连续型自变量进行建模,并在解释自变量与响应变量的关系时更加准确和精细。之前有写一篇RCS的文章,但是还是有一定的难度,经过一段时间的研究,发现rcssci包更为简便好用。
336 0
|
数据可视化 Python
技巧 | Python绘制2022年卡塔尔世界杯决赛圈预测图
技巧 | Python绘制2022年卡塔尔世界杯决赛圈预测图
|
数据可视化 数据挖掘 Python
跟着Nature Genetics学作图:R语言ggtree画进化树展示不同种番茄的进化关系
跟着Nature Genetics学作图:R语言ggtree画进化树展示不同种番茄的进化关系
论文技术路线图如何绘制?
本文介绍基于Visio软件绘制技术路线图、流程图、工作步骤图等的方法~
563 1