1. 课程简介与背景:从差异基因到富集分析
这些年我一直在跟「差异基因」打交道。说实话,刚入行那会儿,我也跟很多人一样——拿到 RNA-seq 的差异基因列表,就急着去查每个基因的功能。 结果呢?几十上百个基因,挨个查完,花了好几天,最后跟老板汇报时,还是说不清楚「这堆基因到底在干嘛」。
后来我明白了。我们需要的不是单个基因的故事,而是这群基因背后的「共性逻辑」。 这就是本课程要讲的核心:差异 KEGG 与 GO 富集分析。 今天我们先聊聊:什么是差异基因分析?又为什么非得做富集分析?
1.1 差异基因分析:到底在找什么?
差异基因分析,说白了就是比较两组样本,找出哪些基因的表达量发生了显著变化。 比如正常组织 vs 肿瘤组织、用药前 vs 用药后。我刚开始做差异分析时,常被老板问:『你给了我一堆基因列表,然后呢?』 嗯,这时候要是没想清楚,很容易被问住。
常见的差异分析工具,我个人习惯这么选:
- DESeq2(R包):适合小样本、基于负二项分布模型,稳定。我大部分项目都用它。
- edgeR(R包):速度比 DESeq2 快,适合大样本或初步筛选。
- limma(R包):原本为芯片设计,但也能处理 RNA-seq,且对数据质量要求高。
你拿到差异基因列表后,通常会得到这样一个文件:
GeneID log2FoldChange pvalue padj
GAPDH 1.23 0.0001 0.002
TP53 2.11 0.0005 0.008
EGFR -0.89 0.002 0.015
... ... ... ...
但问题来了——这个列表里可能有几百个基因。哪个才是关键?它们之间有没有联系?这时候就需要富集分析登场了。
1.2 为什么要做富集分析?把「点」串成「线」
你想想看,如果只盯着一个基因,很容易被它的个别功能带偏。比如 TP53 跟细胞凋亡相关,但你的差异列表里还有 DNA 修复、细胞周期、代谢相关的基因。 它们可能共同指向某个更大的生物学问题。
富集分析就是做这个的:判断一组差异基因是否在某个已知的「通路」或「功能分类」中显著富集。 我曾经在一个肝癌项目里,差异基因列表里既有炎症因子又有代谢酶,单个看都不突出。但一跑富集分析,发现「脂肪酸代谢」和「IL-17 信号通路」两个类别富集度极高,一下子就抓住了重点。
- 降低维度:从数百个基因 → 几十个通路/功能。
- 提供假设:告诉我这些基因「一起做了什么」。
- 可验证性:富集出的通路可以在下游实验中去验证,比如 qPCR 检测关键酶的表达。
1.3 GO 与 KEGG:两大法宝
做富集分析,最常用的就是 GO(Gene Ontology) 和 KEGG(Kyoto Encyclopedia of Genes and Genomes)。 很多人问:两者有什么区别?我一般这么解释:
| 维度 | GO | KEGG |
|---|---|---|
| 本质 | 描述基因的「属性」 | 描述基因参与的「分子交互网络」 |
| 分类 | BP(生物过程)、CC(细胞组分)、MF(分子功能) | 信号通路、代谢通路、疾病通路 |
| 数据更新 | 社区维护,更新频繁 | KEGG 官方维护,较稳定但更新慢 |
| 适合场景 | 探索基因的生物学功能倾向 | 寻找参与的具体信号通路 |
我记得有一次做免疫治疗相关的肿瘤数据,差异基因 GO 富集显示「免疫系统过程」显著,但 KEGG 富集却只找到了几条代谢通路。 为什么会这样?因为 GO 更宽泛,而 KEGG 通路的注释范围受限——很多免疫相关基因当时还没有被收录到 KEGG 通路里。 所以我的建议是:两种都用,但别只盯着P值最小的那个。
1.4 差异基因 → 富集分析 → 生物学解释
来个直观的图,你就明白这整套流程是啥样了:
你看,流程并不复杂:差异基因 → GO/KEGG 富集 → 生物学解释。 但具体怎么操作、用什么参数、怎么可视化、怎么解读,每一步都有坑。这门课就是要把这些坑一个一个填平。
1.5 一个真实的例子:肺腺癌差异基因富集
我曾在肺腺癌项目里对比了「肿瘤 vs 癌旁」的转录组数据。差异基因一共 1200 多个,做了 GO 和 KEGG 富集后,结果如下:
| 富集类别 | 富集条目(Top 3) | p-value |
|---|---|---|
| GO-BP | 细胞分裂、DNA 修复、有丝分裂纺锤体检查点 | 1.5e-08, 3.2e-06, 2.1e-05 |
| GO-CC | 核仁、染色质、动粒 | 4.5e-07, 1.1e-05, 2.0e-05 |
| GO-MF | ATP 酶活性、微管结合、DNA 解旋酶活性 | 1.9e-06, 2.7e-05, 3.1e-04 |
| KEGG | 细胞周期、p53 信号通路、DNA 复制 | 2.5e-10, 4.7e-06, 1.2e-05 |
从这个表你马上能看出什么?富集的通路都指向「细胞增殖失控」这个核心特征。 如果你只告诉我『差异基因列表里有 CDK1、CCNB1、CDC20』,可能觉得它们就是几个调控因子。 但通过富集分析,你发现了几个完整的、已被验证的通路,这远比单基因列表有力得多。
- 差异基因分析是富集分析的「原材料」。
- GO 和 KEGG 是截然不同的两种注释体系,对比使用更可靠。
- 单一基因的调变不能代表通路活性,富集分析才能看到全局。
1.6 常见错误与建议
我踩过的坑,不想让你也踩一遍:
- 只看 P 值,不看富集倍数:有些通路虽然 P 值小,但只涉及到 1-2 个差异基因,这种「微富集」意义有限。我一般会同时看 GeneRatio(富集基因占比)。
- 忽略背景基因集:做富集时,一定要用所有检测到的基因作为背景,而不是只用差异基因。否则算出来的富集会严重夸大。
- 不作多重检验校正:P 值一定要经过调整(FDR 或 BH),默认的原始 P 值会高估显著性。
enrichGO 跑了一个数据集,出来 200 多个富集条目,满心欢喜。后来发现背景基因集设错了,只用了差异基因做背景……嗯,那次白干了两天。从此之后,我每条富集分析都会先检查背景基因的数量和来源。