最近看到太多“假显著”的富集结果了,动不动几百上千个通路全显著。
看起来丰富,其实大多数是背景设错的“统计幻觉”。
这篇就讲清楚——为什么很多生信公司、甚至论文作者,都踩在这个坑里。
你只要搞懂一个参数:universe。
说实话,这个坑连Nature 系列都提醒过。
富集分析不只是比p值小,而是比“背景”真实。
选错背景,p值再小也没意义。
一行代码,让结果从玄学变科学。
文献:

富集分析的显著结果,大概率是偏倚造的假象。
这篇文章提出了“富集分析的三大偏倚”——技术、检测、生物学——
还点名了:不设背景基因(universe)= 富集分析没统计意义。
连 Genome Biology 都说要“定义实验特异的基因背景”,
那你再默认用整个基因组当背景,就真该警惕了。
同时,这篇文章明确提出:
“Functional enrichment analysis must not be considered proof of biological plausibility... We strongly advocate for efforts to generate appropriate background expression ‘universes’.”
(富集分析不能被当作生物学合理性的证明,我们强烈呼吁研究者建立合适的背景基因集。)
别怪GO/KEGG太假,其实是你富集分析的“背景基因”没设!
1️⃣ 开篇引入
为什么你的 GO/KEGG 分析总是显著得离谱?
几十上百条通路,全是 p < 0.05?
恭喜你——你遇上了 Genome Biology 2015 提到的“统计幻觉”。
2️⃣ 顶刊提醒
Timmons et al. 在 Genome Biology 这篇文章中系统指出:
“几乎所有富集分析都能跑出显著通路——无论你输入什么基因。”
因为多数研究没设置背景(universe),
而背景才决定“显著”的概率空间。
3️⃣ 生信亮点
这篇文章首次系统区分了三种偏倚来源:
🧬 技术偏倚(不同芯片检测到的通路结构不同)
🔍 检测偏倚(有些基因永远检测不到)
🧫 生物学偏倚(组织特异表达本身决定结果)
一句话总结:
不设背景,你只是“在已知的偏倚中再次富集”。
4️⃣ 可学部分(实操)
在 R 里,只需加一行:
universe= rownames(expr_filtered)
正如我们提到的一样:别怪GO/KEGG太假,其实是你富集分析的“背景基因”没设!告诉算法“这次实验能检测到的全部基因是谁”。
你的 p 值会立刻“回归理性”。
5️⃣ 延伸
RNA-seq、单细胞、蛋白质组、代谢组都一样。
无论是 enrichGO 、enrichKEGG 还是 enricher,
记得一句话:没有背景的显著,全是幻觉。
6️⃣ 总结
这篇 Genome Biology 2015 文章其实是在提醒我们:
“富集分析不是结果验证,而是统计假设。”
真正科学的分析,是在实验语境内定义“可能性宇宙”。
1️⃣ 背景没设对,所有 p 值都只是泡沫。
2️⃣ 富集分析的通路越多,结果越假。
3️⃣ 看懂这篇 Genome Biology ,你就能一眼识破“假显著”。
这期内容非常实用。
做差异分析、富集分析、单细胞、空间组学的都能用上。
想发Cell、Nat Commun、甚至JCI的文章,一定得避开这个统计陷阱。
建议直接收藏。
如果你使用所有基因作为参考,不防把你的p值设置的小一点比如0.001