用途:对预先选定的基因列表做 GO 过表征分析(ORA),用 clusterProfiler 的 enrichGO 对每个 GO 条目执行单侧超几何检验(等价于 2x2 表 Fisher 精确检验),回答“我的基因列表中哪些生物学过程被富集”。
主要能力:支持 BP/MF/CC 三个本体(ont='ALL' 分别运行后合并);可指定背景 universe;用 bitr 做 ID 转换;用 simplify() 按本体做语义相似度去冗余;用 GOseq 的 Wallenius 非中心超几何校正 RNA-seq 长度偏差;用 enricher 对自定义 TERM2GENE 基因集做同样的超几何检验;支持其他物种 OrgDb(如 org.Mm.eg.db、org.Dr.eg.db、org.Sc.sgd.db)。
必要用法:enrichGO(gene, universe, OrgDb, keyType='ENTREZID', ont='BP')。需显式设置 ont(源码默认 'MF'),并传入 universe=(省略即 bug,默认会用全部注释基因)。pvalueCutoff 过滤的是校正后 p 值而非原始 p 值,可用 pvalueCutoff=1、qvalueCutoff=1 查看全部结果。前景与背景须用相同 ID 映射,bitr 一对多映射需去重。simplify() 只能对单一本体运行,不能用于 ont='ALL' 对象。GOseq 返回未校正 p 值,需自行 BH 校正。
适用场景:共表达模块、GWAS 映射基因、筛选命中、标记基因等已选定列表;RNA-seq 差异基因列表(建议长度校正);自定义基因集。若存在全基因排序且截断任意,应改用 GSEA(gseGO)。
限制:ORA 丢弃效应量并继承 GO DAG 冗余,需同时看 fold enrichment 与 p.adjust;不能用于验证产生该列表的差异表达结果(循环论证);极短列表(<约15-20 基因)检验效能低;ID 转换丢失超过约 15% 时结果不可靠。版本兼容:参考示例测试于 clusterProfiler 4.18.4+、org.Hs.eg.db 3.22+、goseq 1.54+。