引言Introduction

ORA富集分析是生信里最常用的功能解释方法之一。但很多人卡在两点。第一,不知道怎么从基因列表开始做。第二,结果出来了,却不会判断参数和图形是否合理。如果你也想把ORA从“会点按钮”提升到“能解释结果”,这篇文章适合你。 科研人员在电脑前查看富集分析结果界面,右侧显示GO/KEGG柱状图和气泡图,背景带有基因列表和统计图表元素

1. ORA富集分析到底在分析什么

1.1 ORA的核心逻辑

ORA,全称 Over Representation Analysis,中文常译为过度富集分析。它回答的是一个很直接的问题。

你的目标基因集,是否在某些功能条目中“出现得太多”了。

这类条目可以是:

  • GO 的 BP,CC,MF。
  • KEGG 通路。
  • Reactome 通路。
  • 其他功能注释集合。

它的统计基础通常是超几何检验或 Fisher 精确检验。简单说,就是把你的基因列表和背景基因集放在一起比较,判断某个功能条目中的基因是否显著富集。

1.2 适合哪些场景

ORA最适合已经有“确定基因列表”的分析场景,比如:

  • 差异表达基因筛选后。
  • RRA整合后得到的候选基因。
  • 蛋白组、代谢组筛选出的显著分子。
  • 单细胞某个亚群的marker基因。

如果你的输入是一组明确的基因ID,ORA通常是第一选择。

它不需要表达量矩阵,也不要求连续型排序。对医学生、医生和科研人员来说,门槛低,解释性强,特别适合文章补充分析。

2. 从零开始做ORA,先把输入准备对

2.1 输入基因列表要满足什么条件

ORA最常见的错误,不是算法错,而是输入错。常见问题有三个。

  1. 基因ID类型混乱。
  2. 物种背景选错。
  3. 基因重复或缺失过多。

做ORA之前,先统一基因ID。
如果工具要求 Entrez ID,就不要直接丢 Symbol。
如果工具支持 Symbol,也要确认背景库是否一致。

一般建议先检查:

  • 是否为同一物种。
  • 是否去重。
  • 是否存在大量无法映射的ID。
  • 背景基因集是否与实验平台匹配。

2.2 背景集决定结果是否可信

背景集是很多初学者最容易忽略的地方。
但它会直接影响富集结果。

常见背景包括:

  • 全基因组注释基因。
  • 某个芯片平台覆盖基因。
  • 某次实验中实际检测到的基因。

背景选得不对,p值再漂亮也可能没有生物学意义。

例如,RNA-seq分析时,若用全基因组作为背景,而你的实验只有一部分基因可检测,会导致偏差。更稳妥的做法,是使用“实际可检测基因”作为背景。

3. ORA富集分析代码怎么写,关键参数有哪些

3.1 典型的分析流程

ORA分析通常分为四步。

  1. 准备基因列表。
  2. 转换ID。
  3. 执行富集检验。
  4. 可视化结果。

在 R 里,clusterProfiler 是最常用的工具之一。
它的优势是功能完整,生态成熟,适合继续接柱状图、气泡图和网络图。

一个典型思路是:

  • enrichGO() 做GO富集。
  • enrichKEGG() 做KEGG富集。
  • barplot()dotplot() 画图。
  • 必要时再做 cnetplot()

3.2 代码里最重要的参数

虽然不同包写法不同,但核心参数逻辑基本一致。

1. gene
输入你的目标基因列表。

2. universe / background
输入背景基因集。

3. OrgDb
指定物种注释数据库,比如人、鼠等。

4. pvalueCutoff 和 qvalueCutoff
控制显著性阈值。

5. readable
是否把ID转换回更易读的基因名。

这里要注意,阈值不是越严越好。
如果条目太少,可以适度放宽。
但不能为了出图随意放到失去统计意义。

3.3 代码实操中的常见检查步骤

在真正运行前,建议做三次检查。

  • 检查基因数是否足够。
  • 检查ID映射成功率。
  • 检查背景和目标集是否同源。

很多报错并不是富集函数本身的问题,而是数据格式不符合要求。

尤其是从公开数据库下载的结果,常常带有空值、重复值和非标准字符。
这一步不处理,后面所有结果都可能偏。

4. 结果怎么看,才不会只会“截图发文章”

4.1 先看统计学,再看生物学

ORA结果里常见字段包括:

  • ID
  • Description
  • GeneRatio
  • BgRatio
  • pvalue
  • p.adjust
  • qvalue
  • geneID

判断结果时,建议先看 p.adjust,再看富集条目本身。

只看原始p值,容易夸大结果。
多重检验后,p.adjust 更接近真实可靠性。

但统计显著不等于生物学重要。
你还要看条目是否和研究问题匹配。

例如:

  • 炎症研究中,免疫反应、细胞因子信号、白细胞迁移更有解释价值。
  • 肿瘤研究中,细胞周期、凋亡、DNA修复、PI3K-Akt更常见。
  • 神经疾病中,突触传递、轴突导向、神经递质代谢更值得关注。

4.2 结果图怎么选

ORA最常见的三类图。

4.2.1 柱状图

柱状图适合快速展示前10个或前20个条目。
优点是清晰,适合论文主图或补充图。

适合场景:

  • 结果条目不多。
  • 读者需要快速理解排名。
  • 文章风格偏简洁。

4.2.2 气泡图

气泡图比柱状图信息更丰富。
通常可以同时展示富集程度、显著性和基因数。

如果你想让图看起来更“信息密度高”,气泡图通常更合适。

4.2.3 网络图

网络图适合展示“基因和通路的对应关系”。
它更利于讲故事,尤其适合展示多个通路共享核心基因的情况。

但也要注意。
网络图不适合条目太多,否则会显得拥挤。

5. 高阶分析怎么做,才能让ORA更有研究价值

5.1 不是所有富集结果都要全部保留

很多人做完ORA,会把所有显著条目都贴上去。
这不是好习惯。

更好的做法是按研究目标筛选。

建议优先保留:

  • 与疾病机制直接相关的条目。
  • 与实验现象一致的条目。
  • 具有上下游逻辑链的条目。

高质量结果不是条目越多越好,而是解释越集中越好。

5.2 可以和前序分析串起来

ORA最适合和前面的筛选流程联动。
比如:

  • 差异分析后筛基因。
  • RRA整合后筛核心基因。
  • PPI网络后筛 hub genes。
  • 再用ORA解释这些基因的功能背景。

这样写文章时逻辑会更完整。
从“筛到基因”走到“解释机制”,链条就闭合了。

5.3 常见误区要避开

这里列几个高频问题。

  • 只做GO,不做KEGG。
  • 只看BP,忽略CC和MF。
  • 只截屏,不保留代码和参数。
  • 不记录数据库版本。
  • 不记录背景基因来源。

对科研来说,可重复性比一张漂亮图更重要。

6. 为什么从零代码工具学起,再过渡到高阶代码更高效

6.1 零代码的价值,不只是快

很多人以为零代码工具只是“省时间”。
其实不止。

它还能帮助你快速理解:

  • 输入应该是什么格式。
  • 结果应该长什么样。
  • 哪些参数会影响输出。

对于刚接触ORA的人,先用图形化工具跑通流程,再去看代码,会更容易建立整体框架。

6.2 会代码的人,为什么还能在零代码工具里做得更好

真正熟练的人,不是只会点按钮,而是知道按钮背后的参数逻辑。

他们会关注:

  • 背景库怎么设。
  • ID怎么转换。
  • 阈值怎么调。
  • 什么时候该切换到高阶模式。

这也是为什么同样是富集分析,不同人跑出来的结果质量差别很大。
工具只是起点,理解才是核心。

6.3 用解螺旋把流程跑通,再升级到高阶分析

如果你希望少走弯路,可以先用解螺旋 把ORA流程快速跑通。
它适合先完成基因ID导入、富集结果查看和图形输出,再逐步过渡到更高阶的参数调整与批量分析。

对于医学生、医生和科研人员来说,这种“先会用,再会改”的路径,最省时间,也最稳。

总结Conclusion

ORA富集分析的本质,是用统计学回答“这组基因为什么聚在一起”。
它适合差异基因、marker基因、RRA结果和候选靶点的功能解释。
真正做好ORA,不只是会跑代码,更要懂ID、背景、阈值和图形表达。

如果你想把ORA富集分析从入门做到可发表、可复现、可解释,先从规范流程开始。
现在就可以结合解螺旋 的工具与课程,把分析步骤跑通,再进一步掌握高阶代码和参数优化,让你的结果更稳、更清晰,也更适合写进论文。

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