Volcano plot | 别再问我这为什么是火山图 (在线轻松绘制)

本文详细介绍了火山图的基本概念、应用场景及其在生物信息学研究中的重要性。通过实例讲解了如何解读火山图,并探讨了差异倍数、P值等关键指标的计算与转换方法。此外,还提供了火山图的绘制技巧及增强火山图的应用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

封面来源于:Pixabay+易生信

生物信息学习的正确姿势

NGS系列文章包括NGS基础高颜值在线绘图和分析、转录组分析 (Nature重磅综述|关于RNA-seq你想知道的全在这)、ChIP-seq分析 (ChIP-seq基本分析流程)、单细胞测序分析 (重磅综述:三万字长文读懂单细胞RNA测序分析的最佳实践教程)、DNA甲基化分析、重测序分析、GEO数据挖掘(典型医学设计实验GEO数据分析 (step-by-step))、批次效应处理等内容。

火山图是散点图的一种,它将统计测试中的统计显著性量度(如p value)和变化幅度相结合,从而能够帮助快速直观地识别那些变化幅度较大且具有统计学意义的数据点(基因等)。常应用于转录组研究,也能应用于基因组,蛋白质组,代谢组等统计数据。

所以关注火山图(其它类型图也是),先理解每个点是什么(点代表基因、样品、通路或其它的,这个认识可以来自于常识,更准确的是看作者的描述),然后看横轴代表什么纵轴代表什么,再看图例中展示的其他信息,如颜色、大小和形状分别代表什么。这些都理顺了,图理解就不难了。

如图一:

  • 每个点代表一个检测到的基因

  • 横轴和纵轴用于固定点在空间的位置。

  • 一般横轴是Log2(fold change),点越偏离中心,表示差异倍数越大。

  • 纵轴是-Log 10 (adjusted P-value),点越靠图的顶部表示差异越显著。

  • 点的大小和颜色也可以表示更多的属性,如下图中点的颜色标记其对应的基因是上调, 下调还是无差异

    大小也可用于展示基因表达的平均丰度,一般我们关注表达水平较高且差异较大的基因用于后续的分析和验证。

图一(图源:易生信PPT)

火山图理解常见的几个问题

但没想到,在我们易生信培训过程中,对火山图的问题还是比较多的,我们一个个的说一下。

  1. 什么是fold change?

    翻译成中文是差异倍数,简单来说就是基因在一组样品中的表达值的均值除以其在另一组样品中的表达值的均值。所以火山图只适合展示两组样品之间的比较。

  2. 为什么要做Log 2转换?

    两个数相除获得的结果 (fold change)要么大于1,要么小于1,要么等于1。这是一句正确的废话吧?那么对应于基因差异呢?简单说,大于1表示上调(可以描述为上调多少倍),小于1表示下调(可以描述为下调为原来的多少分之多少)。大于1可以到多大呢?多大都有可能。小于1可以到多小呢?最小到0。用原始的fold change描述上调方便,描述下调不方便。绘制到图中时,上调占的空间多,下调占的空间少,展示起来不方便。所以一般会做Log 2转换。默认我们都会用两倍差异 (fold change == 2 | 0.5)做为一个筛选标准。Log2转换的优势就体现出来了,上调的基因转换后Log2 (fold change)都大于等于1,下调的基因转换后Log2 (fold change)都小于等于-1。无论是展示还是描述是不是都更方便了。

  3. P-value都比较熟悉,统计检验获得的是否统计差异显著的一个衡量值,约定成俗的P-value<0.05为统计检验显著的常规标准。

  4. 什么是adjusted P-value?

    这里面就涉及到一个统计学问题了。做差异基因检测时,要对成千上万的基因分别做差异统计检验。统计学家认为做这么多次的检验,本身就会引入假阳性结果,需要做一个多重假设检验校正。

    这个校正怎么做呢?最简单粗暴的方法是每一次统计检验获得的P-value都乘以总的统计检验的次数获得adjusted P-value (这就是Bonferroni correction)。

    但这样操作太严苛了,很容易降低统计检出力,找不到有差异的基因。后续又有统计学家提出相对不这么严苛的计算方法,如holm, hochberg, hommel, BH, BY, fdr等。BH是我们比较常用的一个校正方法,获得的值是假阳性率 FDRfalse discovery rate)。

    FDR筛选时就可以不用遵循0.05这个标准了。我们可以设置FDR<0.05表示我们容许数据中存在至多5%假阳性率;FDR<0.1表示我们对假阳性率的容忍度至多是10%。当然如果说我们设置FDR<0.5,即数据中最多可能有一半是假阳性就说不过去了。

  5. 同样为什么做-Log 10转换呢?

    因为FDR值是0-1之间,数值越小越是统计显著,也越是我们关注的。-Log 10 (adjusted P-value)转换后正好是反了多来,数值越大越显著,而且以10为底很容易换算回去。

理解完这些之后,再来看火山图。

  • 整体来看,基因有上调就有下调,图整体是以X=0的垂线左右对称的。如果数据中大部分点都是上调或下调,成偏态分布时,需考虑标准化步骤没有处理好,或数据存在批次效应,导致数据存在系统偏差。

  • 图的左上角和右上角是差异基因集中的地方,也是我们关注的重点。

  • 图一中左侧的火山图还展示了基因表达的平均丰度,即基因在所有样品中表达的均值。一般变化倍数大、平均表达也比较高的基因会更可信,更适合后期实验检测,否则就算变化倍数再大,表达低的基因也难以被检测到。

番外:

  1. 差异倍数fold change还有另外一种处理方式。假如有两个样品AB。如果某个基因在A中表达比较高,则计算fold change是用A/B; 。如果某个基因在B中表达比较高,则计算fold change是用B/A,然后乘以-1; gtools::foldchange是这么操作的。

  2. adjusted P-value, q value, fdr一般代表相同的含义,都是多重假设检验校正后的P-value,可能的区别就在于校正算法的不同。


几个代表性火山图

火山图虽然用的多,但其实能提供的信息算不上多,一般是在上面标记一些关注的基因的名字,然后在正文中做下描述。标记基因名字的方式也比较多,图二中左图的颜色标示是一个不错的选择。

图二(图源:易生信PPT)

图二右图来自2017年发表在Cell的一篇文章-Epigenetic Therapy Ties MYC Depletion to Reversing Immune Evasion and Treating Lung Cancer。

  • https://www.sciencedirect.com/science/article/pii/S0092867417312448

一排火山图放在一起是不是很有气势,更主要的是展示了5种疫苗诱导的差异基因数目显著不同,在图上红点多少展示出的视觉冲击还是优于图标中的数字表示的,更容易留下直观的印象。个人觉得是一个很有特色的火山图案例。

图三

图三来自文章Edwards, J., et al. (2015). PNAS Fig. 2A

  • http://www.pnas.org/content/112/8/E911.short

这是一篇16S分析文章较系统的作品,两年被引用147次,推荐阅读。上面的火山图展示了水稻根不同生态位相对于土壤中显著差异的OTU,横坐标是相对丰度平均值(Log10 转换),纵坐标是Log10(fold change),整体类似于图一中的左图,只是转换了XY轴变量。

图四

火山图就是散点图,点的颜色可展示代表性属性。

图四来源— https://arxiv.org/pdf/1103.3434.pdf :

第6号染色体上的探针/基因用红色标记,在基因注释中带有“细胞因子”的探针/基因用蓝色标记。

增强火山图之在基本火山图的基础上,标注有变量名。

上图共有64102个变量,绿色的点的|log2FC|>1,蓝色的点是在P value <0.0001的基础上,校正得到的符合要求的点。红色的点是满足了以上两点要求的变量。

如有雷同数据,可大胆参照模仿,更多增强火山图见:
传送门(代码)➷➷

火山图绘制 (新版更强大)

最简单的绘制方法是使用我们的在线网站——imageGP(http://www.ehbio.com/ImageGP/)。

还有我们的往期推文:

高颜值免费在线绘图

往期精品

画图三字经 生信视频 生信系列教程 

心得体会 TCGA数据库 Linux Python 

高通量分析 免费在线画图 测序历史 超级增强子

生信学习视频 PPT EXCEL 文章写作 ggplot2

海哥组学 可视化套路 基因组浏览器

色彩搭配 图形排版 互作网络

自学生信 2019影响因子 GSEA 单细胞 

后台回复“生信宝典福利第一波”或点击阅读原文获取教程合集

### 火山绘制与命名的技术解析 火山是一种广泛应用于生物信息学领域中的数据可视化工具,主要用于展示基因或其他分子水平上的差异表达情况。其核心在于将统计显著性和效应大小结合起来进行直观表示。 #### 1. **火山的核心概念** 火山通常由两个维度构成:横轴代表效应大小(通常是log2倍变化),纵轴则表示统计显著性(通常是-log10 p-value)。这种设计使得研究者能够快速识别那些既具有较大生物学影响又具备高统计置信度的数据点[^4]。 #### 2. **火山的命名原则** 在技术文档或学术论文中,火山的名称往往与其用途密切相关。以下是常见的命名方式及其含义: - **基础命名**:可以直接称为“Volcano Plot”,这是最普遍的形式。 - **功能导向型命名**:如果表用于显示特定类型的基因表达差异,则可以加入描述性的前缀,例如“Differential Expression Volcano Plot”。 - **样本特异性命名**:当对比不同条件下的样品时,可以在标题中标明比较对象,比如“Control vs Treatment Volcano Plot”。 #### 3. **绘制火山的方法** 利用R语言中的`ggplot2`包是一个非常流行的选择来创建高质量的火山。下面提供了一个简单的代码框架: ```r library(ggplot2) # 加载数据 data <- read.table("V_GV_GV.anno.xls_ggplot2", header = TRUE) # 创建基本volcano_plot <- ggplot(data, aes(x=logFC, y=-log10(PValue))) + geom_point(aes(color=sign(logFC)), size=1) + # 使用颜色区分上调/下调基因 scale_color_manual(values=c("blue", "red")) + # 自定义颜色方案 theme_minimal() + # 设置简约主题 labs(title="Volcano Plot of Differential Gene Expression", x="Log2 Fold Change", y="-Log10 P Value") print(volcano_plot) ``` 上述脚本实现了从原始文件读取数据到最终渲染像的过程,并通过调整参数增强了可读性和美观程度。 #### 4. **与其他可视化的关联** 除了火山之外,还有多种其他形式可用于探索复杂关系网络或者评估路径重要性。例如,桑基擅长描绘流量转移过程;Cytoscape和Gephi适合构建复杂的节点连接模型;而基于Z分数计算的结果可能需要额外注意解读难度较高的情形下所传达的具体意义[^2][^3]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

生信宝典

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值