引言Introduction

差异基因分析做完了,很多人却卡在火山图。阈值怎么设,颜色怎么分,基因标签标哪些,稍有不慎就会把结果画“偏”。火山图不是简单出图,它直接决定你对差异基因的判断是否可靠。 RNA测序差异分析工作流示意图,左侧为数据整理与阈值筛选,中间为火山图,右侧为下游热图和富集分析,整体风格专业简洁。

1. 火山图到底在表达什么

1.1 横轴和纵轴分别代表什么

火山图本质上是二维散点图。横轴通常是 log2 fold change ,表示表达倍数变化。纵轴通常是 -log10(P value) 或 ** -log10(adj.P.Val)**,表示统计显著性。

横轴看变化幅度,纵轴看可信度。 这是理解火山图的核心。横轴越靠右,说明基因上调越明显。越靠左,说明下调越明显。纵轴越高,说明差异越显著。

在差异分析中,常见做法是把基因分成三类。

  • 上调且显著。
  • 下调且显著。
  • 无显著变化。

这三类在图上通常用不同颜色区分。这样一眼就能定位重点基因。

1.2 火山图和差异基因筛选的关系

很多人以为火山图只是结果展示。实际上,它也是筛选质量的检查工具。如果差异基因筛选阈值不合理,火山图会直接暴露问题。

例如,阈值过宽时,显著点会很多,但生物学噪音也会增加。阈值过严时,图上大部分基因都挤在中间,信号会被削弱。课程中常见的参考阈值包括:

  • adj.P.Val < 0.001,且 |log2FC| > 2。
  • 或 p < 0.05,且 |log2FC| > 1。

前者更严格,适合重点筛选。后者更常用于探索性分析。阈值不是固定答案,要和研究目的匹配。

2. 做火山图前,先把数据整理对

2.1 需要准备哪些列

火山图制作方法的第一步,不是画图,而是整理数据。通常至少需要以下几列。

  • 基因名称,gene symbol。
  • 基因ID,gene ID。
  • log2FC。
  • P值或校正后的P值。
  • 分组信息或注释信息。

如果数据来自 DESeq2、limma 或 GEPIA2,结果格式会略有不同,但核心字段一致。没有标准化整理的数据,后面的绘图很难稳定复现。

在实际操作中,常见流程是先把差异分析结果转换成数据框,再把行名中的基因ID转成单独一列,随后与 GTF 注释或基因注释表进行合并。这样才能同时保留 symbol 和 ID,方便后续标注和追踪。

2.2 先处理缺失值和重复值

数据整理阶段最容易被忽略的是缺失值。火山图输入数据中如果存在 NA,可能导致绘图失败,或者部分点不显示。

建议先做三步检查。

  1. 去除关键列缺失值。
  2. 检查基因名是否重复。
  3. 确认数值列是否为数值型,而不是字符型。

这一步看似琐碎,但决定火山图能不能顺利跑通。 课程中的实操也强调,先把数据准备好,后续绘图步骤通常就会变得非常类似。

2.3 先定义显著性分组

在正式作图前,建议先用规则给每个基因打标签。常见逻辑是:

  • 当 adj.P.Val < 0.001 且 log2FC > 2,标记为 up。
  • 当 adj.P.Val < 0.001 且 log2FC < -2,标记为 down。
  • 其余标记为 NS。

如果你使用的是未校正 P 值,也可以用 p < 0.05,但要清楚这会影响假阳性控制。对于医学生、医生和科研人员来说,更推荐优先使用校正后的 P 值。 因为它更符合多重检验场景下的统计规范。

3. 火山图制作方法的标准流程

3.1 用R和ggplot2绘制最稳妥

从可重复性角度看,R 语言配合 ggplot2 仍然是最常用的方案。它的优势很明确。

  • 代码可追溯。
  • 图形参数可完全控制。
  • 适合批量分析和论文出图。
  • 能与下游热图、富集分析无缝衔接。

在整理好的数据框基础上,使用 ggplot2 进行散点绘制,再根据分组映射颜色。火山图的本质不是复杂算法,而是规范的数据映射。

3.2 颜色、坐标和阈值线要统一

标准火山图至少要包含两条参考线。

  • 一条垂直线,对应 log2FC 阈值。
  • 一条水平线,对应显著性阈值。

例如,当设定 |log2FC| > 1 和 p < 0.05 时,图上会出现一个清晰的中心区域和两侧显著区。这两条线不是装饰,而是定义“差异”的边界。

颜色建议保持清晰稳定。

  • 上调基因用红色。
  • 下调基因用蓝色。
  • 不显著基因用灰色。

这样最符合大多数读者的阅读习惯,也便于论文和汇报统一风格。颜色不要过多。颜色越复杂,越容易干扰判断。

3.3 标签只标最重要的基因

火山图最常见的问题之一,是标签太多。标签一多,图就乱。真正有用的做法,是只标注最有代表性的基因。

可优先考虑以下对象。

  • log2FC 最大或最小的基因。
  • 统计显著性最强的基因。
  • 文献已知的关键基因。
  • 机制研究中的候选标志物。

如果使用 ggrepel 之类的工具,标签会更不容易重叠。火山图的目标是快速抓重点,不是把所有基因都写出来。

4. 常见陷阱,往往不是画图,而是前处理

4.1 阈值设得太随意

很多差异基因分析失败,不是因为方法错误,而是阈值选择缺乏逻辑。课程知识库里提到,常见阈值如 log2FC = ±1,对应表达量变化至少两倍。这个设置适合初步筛选。若研究更严格,可以提高到 ±2。

这里要特别注意。阈值调严格后,进入火山图的显著基因会明显减少。 这会直接影响后续热图、GO、KEGG 和网络分析的输入集合。

所以,阈值选择应该与研究阶段对应。

  • 发现阶段,用相对宽松阈值。
  • 验证阶段,用更严格阈值。
  • 临床转化,优先保证稳定性和可解释性。

4.2 只看P值,不看效应量

这是另一个高频误区。P值小,不代表效应大。样本量足够时,微小变化也可能显著。真正有生物学意义的基因,通常需要同时满足统计显著和变化幅度足够大。

所以火山图最好同时保留:

  • 变化幅度,log2FC。
  • 显著性,P值或 adj.P.Val。

两者缺一不可。只看一项,很容易得到“统计上显著,但生物学上不重要”的结果。

4.3 不区分原始P值和校正P值

在高通量测序里,成千上万个基因同时检验,必须考虑多重比较问题。adj.P.Val 比原始 P 值更适合用于正式结论。

如果只是探索性展示,可以同时保留两种结果。但论文或报告中,应明确说明使用的是哪一种。否则读者无法判断结果可信度。

4.4 批次效应没处理干净

知识库中提到,差异分析前常需使用 sva 去除 batch effect,或在表达矩阵层面做处理。这个步骤对火山图影响很大。批次效应如果没处理好,火山图上会出现大量非真实差异。

判断批次效应是否影响明显,可以结合 PCA、箱线图和样本聚类结果一起看。火山图不是孤立图,它依赖前面每一步是否规范。

5. 火山图画完后,下一步怎么接

5.1 与热图联动验证核心基因

火山图筛出候选基因后,下一步通常是热图。热图能看这些基因在样本间的表达模式是否一致。火山图负责“发现”,热图负责“验证”。

这也是为什么很多规范流程会把火山图、热图、箱线图或象限图一起做。它们共同构成差异表达分析的证据链。

5.2 与在线工具配合提高效率

如果你想快速完成差异可视化,也可以借助在线工具。知识库里提到的 GEPIA2 和 Magpie 就是常用选择。前者适合快速查看 TCGA 和 GTEx 的差异表达结果,后者适合做在线火山图可视化。

在线工具适合快速探索,但正式发表仍建议保留本地代码和参数记录。能复现,才是科研里真正可靠的图。

5.3 输出格式要为论文做准备

火山图完成后,建议优先导出高分辨率格式,如 PDF 或 300 DPI 以上的位图。这样方便后续排版和投稿。图中字体、图例、坐标轴范围也要统一调整,避免投稿后再返工。

对于科研团队来说,规范的出图流程可以直接节省大量时间。一套标准参数,往往比临时修图更高效。

总结Conclusion

火山图制作的关键,不是“画出来”,而是“画得对”。从数据清洗、阈值设定、显著性分组,到颜色、标签和导出格式,每一步都会影响最终结论。真正专业的火山图,应该同时满足统计规范、可视化清晰和下游分析可复现。

如果你在差异基因分析、火山图绘制或生信作图流程上希望少走弯路,可以直接使用 解螺旋 。它能帮助你更快完成规范化整理与可视化输出,把精力集中在结果解释和科研推进上。

解螺旋科研助手企业微信二维码,扫码添加免费领取科研资料礼包,包含AI科研提效、SCI投稿技巧、国自然基金、医学科研绘图、科研软件工具等实用资料