
# 通路富集超几何检验示意 import math def hypergeom_over(k, K, n, N): s = 0.0 for i in range(k, min(K, n) + 1): s += math.comb(K, i) * math.comb(N - K, n - i) / math.comb(N, n) return s p = hypergeom_over(k=15, K=40, n=200, N=20000) print("富集 p 值:", round(p, 10))
差异表达与富集分析的结果质量取决于前置的数据质量与统计假设是否满足,批次效应、样本量不足、错误归一化都可能产生假信号。建议分析时使用官方推荐流程并保存完整参数与版本信息。理解统计方法背后的假设与 FDR 的含义,才能正确解读"显著差异"与"富集"结论,并为下游的功能验证提供可靠的候选基因列表。
差异表达分析比较不同条件下基因表达水平是否有显著变化,是转录组研究的核心环节。流程从计数矩阵开始:先做归一化处理样本间测序深度的差异,常用方法包括 TMM、DESeq2 的 median-of-ratios 等;然后用统计模型检验差异,主流工具 DESeq2 基于负二项分布建模计数,edgeR 也采用类似框架,limma 则是线性模型加经验贝叶斯方法。结果以 log2 倍数变化与校正后 p 值衡量,通常以倍数变化阈值和 FDR 阈值筛选差异基因。
通路富集把差异基因映射到通路或功能注释,检验是否在某些 GO 条目或 KEGG 通路上过度富集。最常用的是超几何分布检验(Fisher 精确检验),辅以 Benjamini-Hochberg 校正控制 FDR。基因集富集分析(GSEA)不需要预先筛选差异基因,而是把全部基因按表达变化排序,检验预设基因集是否在排序顶端或底端富集,因此对效应小而一致的基因集合更敏感。富集结果需注意背景集合与注释版本的一致性。
# 通路富集超几何检验示意 import math def hypergeom_over(k, K, n, N): s = 0.0 for i in range(k, min(K, n) + 1): s += math.comb(K, i) * math.comb(N - K, n - i) / math.comb(N, n) return s p = hypergeom_over(k=15, K=40, n=200, N=20000) print("富集 p 值:", round(p, 10))
基因表达差异分析是转录组学的核心分析,其"全流程"值得掌握:数据预处理(质控、比对(STAR/HISAT2)、定量(featureCounts——基因水平的读长计数));标准化(TPM/FPKM(长度 + 深度校正)、以及差异分析的统计模型(DESeq2(负二项分布)、edgeR(经验贝叶斯)——"考虑测序深度的计数模型"——"差异分析的统计基础");差异基因的判定(log2 fold change(变化倍数)与调整后 p 值(FDR)的阈值——"差异基因 = 统计显著 + 生物相关");以及可视化(火山图(变化倍数 vs 显著性)、热图(差异基因的表达模式)、PCA(样本间关系——"质控与探索")。
通路富集分析(enrichment analysis)把"差异基因列表"转化为"生物学机制":基本原理(超几何检验/费舍尔精确检验——"差异基因中某通路的基因数是否显著多于随机期望");工具(clusterProfiler(GO/KEGG 富集——"富集分析的 R 生态")、GSEA(基因集富集分析——不设阈值、用全部基因的排序——"全谱富集、不依赖阈值"));以及富集结果的解读(显著富集的通路 = "生物学过程的激活/抑制"——"从基因列表到机制假设")。做一个"差异分析"练习:理解"为什么需要 FDR 校正"(上万个基因同时检验——假阳性爆炸——"校正后的 p 值才可信");理解"富集 vs 简单的列表解读"(差异基因列表"读不出"机制——富集分析"读出"通路——"富集是差异表达的机制解读")。差异表达与通路富集是"转录组学的标准流水线"——从"哪些基因变了"到"哪些通路变了"再到"什么机制在起作用",这套分析把表达数据转化为生物学洞察。
回顾本节核心:差异表达(DESeq2/edgeR——统计模型)→ 富集分析(GO/KEGG/GSEA——机制解读)。"从哪些基因变了到哪些通路变了"是转录组学的标准推理链——统计的严谨(FDR)与机制的理解(富集)缺一不可。
记住一句话:差异表达(统计找变化)+ 通路富集(机制找解释)——"从哪些基因变了到哪些通路变了"是转录组学的标准推理链。
从实践角度理解差异分析:做一个「完整流水线」练习——RNA-seq 数据 → 比对(STAR)→ 定量(featureCounts)→ 差异(DESeq2)→ 富集(clusterProfiler)→ 可视化(火山图、热图)——亲手跑完一次转录组分析,是理解这套方法的必经之路;再做一个「结果解读」练习——用富集结果回答「这个疾病中哪些通路被激活」——「从数据到机制」。
补充一点:富集分析的「结果解读要谨慎」——显著富集的通路是「假设生成」而非「机制证实」——「富集结果需要实验验证(敲除、抑制)」——「从富集到机制,还有实验的一步之遥」。 记住差异分析的「一句话总结」:差异表达回答「哪些基因变了」,通路富集回答「哪些过程变了」——从基因到通路,从统计到机制,这是转录组学最标准的「推理链」,也是从数据到假说的最短路径。 补充:差异分析的「可视化」是沟通与探索的关键——火山图(变化倍数 vs 显著性)一眼看出「显著差异基因」,热图展示「表达模式」,PCA 展示「样本关系」——「一图胜千言」在组学数据分析中尤为真切。