GO/KEGG 富集分析
用于基因本体(Gene Ontology)和 KEGG 通路富集分析的自动化流程,包含结果解读和可视化。
功能特性
- GO 富集分析:生物过程(BP)、分子功能(MF)、细胞组分(CC)
- KEGG 通路:结合物种特异性映射的通路富集分析
- 多种 ID 支持:基因 symbol、Entrez ID、Ensembl ID、RefSeq
- 统计方法:超几何检验、Fisher 精确检验、GSEA 支持
- 可视化:条形图、点图、富集图(enrichment map)、cnet 图
- 结果解读:自动生成生物学意义摘要
支持的物种
| 常用名 | 学名 | KEGG 代码 | OrgDB 包 | |-------------|-----------------|-----------|---------------| | Human | Homo sapiens | hsa | org.Hs.eg.db | | Mouse | Mus musculus | mmu | org.Mm.eg.db | | Rat | Rattus norvegicus | rno | org.Rn.eg.db | | Zebrafish | Danio rerio | dre | org.Dr.eg.db | | Fly | Drosophila melanogaster | dme | org.Dm.eg.db | | Yeast | Saccharomyces cerevisiae | sce | org.Sc.sgd.db |
使用方法
基本用法
# Run enrichment analysis with gene list
python scripts/main.py --genes gene_list.txt --organism human --output results/
参数
| 参数 | 说明 | 默认值 | 是否必需 |
|-----------|-------------|---------|----------|
| --genes | 基因列表文件路径(每行一个基因) | - | 是 |
| --organism | 物种代码(human/mouse/rat/zebrafish/fly/yeast) | human | 否 |
| --id-type | 基因 ID 类型(symbol/entrez/ensembl/refseq) | symbol | 否 |
| --background | 背景基因列表文件 | all genes | 否 |
| --pvalue-cutoff | 显著性 P 值阈值 | 0.05 | 否 |
| --qvalue-cutoff | 校正后 P 值(q 值)阈值 | 0.2 | 否 |
| --analysis | 分析类型(go/kegg/all) | all | 否 |
| --output | 输出目录 | ./enrichment_results | 否 |
| --format | 输出格式(csv/tsv/excel/all) | all | 否 |
进阶用法
# GO enrichment only with specific ontology
python scripts/main.py \
--genes deg_upregulated.txt \
--organism mouse \
--analysis go \
--go-ontologies BP,MF \
--pvalue-cutoff 0.01 \
--output go_results/
# KEGG enrichment with custom background
python scripts/main.py \
--genes treatment_genes.txt \
--background all_expressed_genes.txt \
--organism human \
--analysis kegg \
--qvalue-cutoff 0.05 \
--output kegg_results/
输入格式
基因列表文件
TP53
BRCA1
EGFR
MYC
KRAS
PTEN
带表达值(用于 GSEA)
gene,log2FoldChange
TP53,2.5
BRCA1,-1.8
EGFR,3.2
输出文件
output/
├── go_enrichment/
│ ├── GO_BP_results.csv # Biological Process results
│ ├── GO_MF_results.csv # Molecular Function results
│ ├── GO_CC_results.csv # Cellular Component results
│ ├── GO_BP_barplot.pdf # Visualization
│ ├── GO_MF_dotplot.pdf
│ └── GO_summary.txt # Interpretation summary
├── kegg_enrichment/
│ ├── KEGG_results.csv # Pathway results
│ ├── KEGG_barplot.pdf
│ ├── KEGG_dotplot.pdf
│ └── KEGG_pathview/ # Pathway diagrams
└── combined_report.html # Interactive report
结果解读
该工具会自动生成生物学解读内容,包括:
- 顶部富集条目:按富集比率排序的显著 GO 条目/通路
- 功能主题:从富集条目中聚类得到的生物学主题
- 关键基因:驱动显著条目富集的核心基因
- 网络关系:基因-条目关系可视化
- 临床相关性:疾病关联(针对人类基因)
技术难度:HIGH(高)
⚠️ AI自主验收状态: 需人工检查
该技能需要:
- 安装 clusterProfiler 的 R/Bioconductor 环境
- 多个注释数据库(org.*.eg.db)
- KEGG REST API 访问
- 复杂的可视化依赖项
依赖项
所需 R 包
install.packages(c("BiocManager", "ggplot2", "dplyr", "readr"))
BiocManager::install(c(
"clusterProfiler",
"org.Hs.eg.db", "org.Mm.eg.db", "org.Rn.eg.db",
"enrichplot", "pathview", "DOSE"
))
Python 依赖项
pip install pandas numpy matplotlib seaborn rpy2
示例工作流程
- 准备输入:从 DEG 分析中生成基因列表
- 运行分析:使用适当参数执行 main.py
- 查看结果:检查生成的 CSV 文件和可视化图表
- 解读:阅读自动生成的摘要以获取生物学洞见
参考资料
参见 references/:
- clusterProfiler 文档
- KEGG API 指南
- 统计方法说明
- 可视化示例
局限性
- 需要联网以查询 KEGG 数据库
- 较大的基因列表(>5000)可能需要更多内存
- 部分通路可能并非所有物种都可用
- KEGG API 有速率限制(最多 3 次请求/秒)
风险评估
| 风险指标 | 评估 | 级别 | |----------------|------------|-------| | 代码执行 | 本地执行 Python/R 脚本 | Medium | | 网络访问 | 无外部 API 调用 | Low | | 文件系统访问 | 读取输入文件、写入输出文件 | Medium | | 指令篡改 | 标准提示词规范 | Low | | 数据暴露 | 输出文件保存至工作空间 | Low |
安全检查清单
- [ ] 无硬编码凭证或 API 密钥
- [ ] 无未经授权的文件系统访问(../)
- [ ] 输出不暴露敏感信息
- [ ] 已落实提示词注入防护
- [ ] 已校验输入文件路径(无 ../ 路径穿越)
- [ ] 输出目录限制在工作空间内
- [ ] 脚本在沙箱环境中执行
- [ ] 错误信息已做脱敏处理(不暴露堆栈跟踪)
- [ ] 已审计依赖项
前置条件
# Python dependencies
pip install -r requirements.txt
评估标准
成功指标
- [ ] 成功执行主要功能
- [ ] 输出符合质量标准
- [ ] 能优雅处理边界情况
- [ ] 性能可接受
测试用例
- 基本功能:标准输入 → 预期输出
- 边界情况:无效输入 → 优雅的错误处理
- 性能:大数据集 → 可接受的处理时间
生命周期状态
- 当前阶段:Draft
- 下次评审日期:2026-03-06
- 已知问题:无
- 计划改进:
- 性能优化
- 增加功能支持
Scan to join WeChat group