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

news/2024/11/20 7:45:49/

一、概述

在近半年中,我读了很多的高分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)
    image
  • 火山图样式修改
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

image

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

image

  • 火山图样式修改

这里不能直接修改颜色了,需要引入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

image

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

image

本文由博客一文多发平台 OpenWrite 发布!


http://www.ppmy.cn/news/63461.html

相关文章

Milvus应用开发实战【语义搜索】

美国总统竞选活动即将到来。 现在是回顾拜登政府上任头两年的一些演讲的好时机。 搜索一些演讲记录以了解更多关于白宫迄今为止关于某些主题的信息不是很好吗&#xff1f; 假设我们要搜索演讲的内容。 我们该怎么做&#xff1f; 我们可以使用语义搜索。 语义搜索是目前人工智能…

网络路径下倾斜模型生产流程-模型s3c化

网络路径下倾斜模型生产流程-模型s3c化 将osgb模型处理文件拷贝到osgb模型文件夹下 在osgb模型文件夹下&#xff0c;新建与工程同名文件夹&#xff0c;然后将原文件夹下所有文件拷贝到YNPE27文件夹下&#xff0c; E:\YNPE27\CC\YNPE27\Productions\Production_2\YNPE27 打开o…

腾讯云轻量应用服务器使用限制(买前必看)

腾讯云轻量应用服务器和云服务器CVM相比具有一些限制&#xff0c;比如轻量服务器不支持更换内网IP地址&#xff0c;轻量服务器只能套餐整体升级且不支持降配&#xff0c;轻量不支持用户自定义配置私有网络VPC&#xff0c;还有如实例配额、云硬盘配额、备案限制和内网连通性等限…

【工作笔记】Springboot一个比较通用的数据脱敏处理办法

背景 个人信息中的手机号、邮箱等属于敏感数据&#xff0c;其中手机号需要加密存储&#xff0c;邮箱可以直接存储但是在获取和展示时要做脱敏处理&#xff1b; 针对此类敏感数据&#xff0c; 介绍一种比较通用的脱敏方法。 基于注解 1. 定义DataMask注解 Retention(RetentionPo…

Maven 知识点总结

文章目录 核心点&#xff1a;Maven 能做什么&#xff1f;Maven的安装1、安装2、配置文件 Maven 的概念1、坐标&#xff1a;通过坐标唯一定位2、scope依赖范围3、maven的传递性依赖性质4、optional可选依赖5、exclusion排除依赖6、properties归类依赖7、优化依赖 Maven基本使用1…

125-Linux_守护进程

文章目录 1. 什么是Linux守护进程&#xff1f;2. 如何创建Linux守护进程&#xff1f;① 切换当前工作目录到根目录&#xff0c;这样可以避免守护进程在其它目录中的文件被占用。② 使用fork()函数创建子进程&#xff0c;并在父进程中退出。③ 在子进程中调用setsid()函数创建新…

喜报丨酷雷曼荣膺最佳创新品牌价值奖

2023年4月&#xff0c;“元力觉醒新浪VR 2022年度行业奖项”颁奖盛典成功举行&#xff0c;酷雷曼VR&#xff08;北京同创蓝天云科技有限公司&#xff09;荣获“最佳创新品牌价值奖”荣誉称号&#xff01; 本次大会由元宇宙产业的权威门户媒体新浪VR主办&#xff0c;中国民协元…

windows 下Node.js 版本管理工具

目录 1、概述&#xff1a; 2、下载安装 3、nvm命令 4、如何安装不在可用列表里面的版本 1、概述&#xff1a; 不同项目使用的nodejs版本和依赖等不同&#xff0c;需要进行nodejs的版本切换&#xff0c;使用nvm可以方便的切换当前的nodejs版本 windows可以使用 nvm-window…