引言Introduction
差异分析做完了,结果却不会解释。火山图一眼看不懂,上下调阈值怎么定也不清楚。这是很多医学生、医生和科研人员常见的卡点。真正决定图是否可信的,不是“画出来”,而是参数是否设置合理。

1. 火山图是什么,为什么它是差异分析的核心图
1.1 一张图同时回答“变没变”和“变多少”
火山图是差异分析最常用的可视化之一。它把每个基因的变化幅度和统计显著性放在同一张图上。横轴通常是 log2 fold change ,纵轴通常是 -log10(P value) 或 ** -log10(padj)**。
横轴看效应大小,纵轴看可信度。
这也是火山图比单纯表格更适合快速筛选候选基因的原因。点越靠左右两侧,变化越大。点越靠上,显著性越强。
1.2 火山图适合哪些分析场景
火山图常见于以下场景:
- 转录组差异表达分析。
- 芯片数据差异分析。
- 蛋白组或代谢组的分组比较。
- 单基因处理前后的筛选结果展示。
对于论文和汇报来说,火山图的价值不只是“好看”。它能快速告诉读者:
- 上调基因有多少。
- 下调基因有多少。
- 差异信号是否集中。
- 是否存在明显的偏倚。
如果火山图两侧分布失衡,往往提示样本分组、归一化或阈值设置需要重新检查。
2. 火山图差异分析的三个核心参数
2.1 log2FC决定“变化幅度”
log2FC是最关键的效应量指标。它表示两个组之间表达量的倍数变化,取对数后更便于比较。
常用解释如下:
- log2FC = 1,表示上调2倍。
- log2FC = -1,表示下调2倍。
- log2FC = 2,表示上调4倍。
- log2FC = -2,表示下调4倍。
在课程和实操中,常见阈值是 |log2FC| > 1 ,也就是变化超过2倍。部分分析会使用 |log2FC| > 2 ,即变化超过4倍。
阈值越严格,筛出的基因越少,但更稳健。
阈值越宽松,候选基因更多,但假阳性风险更高。
2.2 p值或padj决定“显著性”
火山图的另一核心是显著性。常见做法是使用 p值或校正后的 p 值 padj。
在高通量数据中,同时检测成千上万个基因时,多重检验问题非常突出。
因此,更推荐使用 padj,而不是原始 p 值。
常见阈值是:
- padj < 0.05。
- 有些研究会采用 padj < 0.01,提高严格性。
如果只用原始 p 值,假阳性会明显增加。
这在样本量较大、比较基因较多时尤其明显。
2.3 上下调分类变量决定颜色和解释
火山图通常将点分成三类:
- Up,上调。
- Down,下调。
- NS,无显著变化。
分类逻辑一般是:
- 先判断 padj 是否小于阈值。
- 再判断 log2FC 是否超过正负阈值。
- 同时满足时,归为上调或下调。
- 其他情况归为 NS。
这一步不是为了美化,而是为了让颜色和统计结论一致。
如果分类规则混乱,图再漂亮也没有分析价值。
3. 差异分析结果如何准备,火山图才能画对
3.1 输入数据至少要包含四列
标准火山图数据通常至少包括:
- 基因名。
- log2FC。
- p值或padj。
- 分组方向,up、down 或 NS。
如果使用 ggplot2 体系,还可以加入:
- label,用于标注重点基因。
- -log10(padj),用于纵轴计算。
没有完整的结果表,就无法画出规范的火山图。
3.2 先统一列名,再做阈值判断
在R分析中,很多错误都来自列名不统一。
比如有的结果列叫 log2FoldChange,有的叫 logFC。
有的显著性列叫 padj,有的叫 adj.P.Val。
所以第一步要做的是统一字段。
然后再计算分类变量,例如:
- 当
log2FC > cutoff且padj < 0.05,标记为 Up。 - 当
log2FC < -cutoff且padj < 0.05,标记为 Down。 - 其余标记为 NS。
这一步决定后续配色是否正确。
3.3 先看分布,再决定阈值
不是所有数据都适合直接套用固定阈值。
如果差异基因太少,说明阈值可能过严。
如果差异基因过多,说明阈值可能过松,或者批次效应较强。
实操中可以先观察:
- 上下调比例是否接近。
- 是否存在大量点挤在图中央。
- 是否有极端值把坐标轴拉得过大。
阈值不是死规定,而是要结合数据分布来调整。
4. 火山图绘制时最容易出错的细节
4.1 纵轴到底用p值还是padj
这是最常见的一个问题。
从严格的统计学角度看,差异分析结果展示更建议使用 padj 。
因为它已经控制了多重检验带来的假阳性。
如果使用原始 p 值,图上“显著”点可能更多。
但这种显著不一定可靠。
论文级分析优先用 padj。
探索性分析可以同时查看 p值和 padj 的结果。
4.2 标签不要标太多
火山图上最常见的问题之一,是基因名标得太密。
结果是图看不清,读者也看不懂。
通常建议只标注:
- Top 5 上调基因。
- Top 5 下调基因。
- 或者文献重点关注的候选基因。
可以利用 ggrepel 避免标签重叠。
这在高密度点图中非常有用。
火山图的目标是突出核心信号,不是把所有基因都贴上名字。
4.3 颜色要稳定,逻辑要统一
常见配色逻辑是:
- NS:灰色。
- Down:蓝色。
- Up:红色。
这一规则在多数文章中都容易理解。
关键是全篇一致。
不要前面一张图红色代表下调,后面又变成上调。
颜色统一,能显著降低读者理解成本。
4.4 坐标轴范围不要被极端值带偏
有些数据中,个别基因 log2FC 特别大。
这会把横轴范围拉得很宽。
结果多数点都挤在中间,看不出结构。
常见处理方式包括:
- 限制显示范围。
- 对极端值进行截断展示。
- 只标记重点基因,不强行显示全部极值标签。
这类处理是为了提升可读性,不是为了修改结果。
5. 从结果表到高质量火山图的标准流程
5.1 第一步,完成差异分析
常见工具包括:
- DESeq2,适用于 counts 数据。
- limma,常用于标准化后的表达矩阵或芯片数据。
如果是 RNA-seq 原始计数数据,通常优先使用 DESeq2。
如果是芯片或已处理表达矩阵,limma 更常见。
5.2 第二步,筛选阈值并生成分组变量
建议先定义:
logFC_cutoffpadj_cutoff
然后根据结果表生成 change 或 direction 列。
这一列是火山图分类的基础。
5.3 第三步,提取重点基因用于标注
通常从显著差异基因中筛选:
- log2FC 最大的上调基因。
- log2FC 最小的下调基因。
- 或 padj 最小的前几位基因。
这样可以保证标注基因更有代表性。
5.4 第四步,作图并检查图形逻辑
最终火山图至少要检查以下内容:
- 点的颜色是否和分类一致。
- 横纵轴方向是否正确。
- 分界线是否放在阈值位置。
- 标签是否重叠。
- 上下调数量是否和结果表一致。
图形不是画完就结束,而是必须回查统计逻辑。
6. 论文和报告中,火山图应该怎么解读
6.1 先看整体,再看局部
阅读火山图时,建议按这个顺序:
- 先看两侧是否对称。
- 再看显著点是否集中在两端。
- 然后看上调和下调数量是否平衡。
- 最后检查重点基因是否落在合理区域。
如果大部分点都集中在中间,说明差异整体不强。
如果一侧特别多,可能提示生物学偏向,也可能提示技术偏差。
6.2 不能只看火山图,还要结合热图和富集分析
火山图只回答“哪些基因变了”。
它不能单独回答“这些变化意味着什么”。
因此,规范的差异分析通常要配合:
- 聚类热图,看样本分组是否清晰。
- GO/KEGG 富集分析,看功能通路。
- 关键基因表达验证,看结论是否稳健。
火山图是入口,不是终点。
总结Conclusion
火山图差异分析的关键,不在于把点画出来,而在于把 log2FC、padj、分组规则和标注策略 设对。** 只有参数合理,火山图才真正具有解释力和发表价值。** 对医学生、医生和科研人员来说,理解这些核心参数,能显著提升结果解读效率,也能减少后续返工。
如果你希望更快完成规范的差异分析图形整理、参数设置和结果输出,可以借助 解螺旋 的专业生信内容与工具支持,把时间从重复操作中释放出来,专注于真正有价值的科研问题。

- 引言Introduction
- 1. 火山图是什么,为什么它是差异分析的核心图
- 2. 火山图差异分析的三个核心参数
- 3. 差异分析结果如何准备,火山图才能画对
- 4. 火山图绘制时最容易出错的细节
- 5. 从结果表到高质量火山图的标准流程
- 6. 论文和报告中,火山图应该怎么解读
- 总结Conclusion






