用途
KEGG(Kyoto Encyclopedia of Genes and Genomes)是一个用于生物通路分析和分子相互作用网络的综合生物信息学资源。本技能用于通过 KEGG 的 REST API 查询多个物种的通路、基因、化合物、酶、疾病和药物数据。
重要提示:KEGG API 仅面向学术用户提供学术用途。
主要能力
本技能提供:
- Python 辅助函数(scripts/kegg_api.py),覆盖所有 KEGG REST API 操作
- 综合参考文档(references/kegg_reference.md),包含详细 API 规范
核心操作包括:
- 数据库信息(kegg_info):获取 KEGG 数据库的元数据和统计信息,用于了解数据库结构、检查可用数据、获取发布信息。
- 列出条目(kegg_list):列出 KEGG 数据库中的条目标识符和名称,用于获取某物种的所有通路、列出基因、检索化合物目录。
- 搜索(kegg_find):按关键词或分子属性搜索 KEGG 数据库,用于按名称/描述查找基因、按分子式或质量搜索化合物、按关键词发现条目。搜索选项包括 formula(精确匹配)、exact_mass(范围)、mol_weight(范围)。
- 检索条目(kegg_get):获取完整数据库条目或特定数据格式,用于检索通路详情、获取基因/蛋白质序列、下载通路图、访问化合物结构。输出格式包括 aaseq(蛋白质 FASTA)、ntseq(核苷酸 FASTA)、mol(MOL 格式)、kcf(KCF 格式)、image(PNG)、kgml(XML)、json(通路 JSON)。注意:image、KGML 和 JSON 格式一次仅允许一个条目。
- ID 转换(kegg_conv):在 KEGG 与外部数据库之间转换标识符,用于将 KEGG 数据与其他数据库集成、映射基因 ID、转换化合物标识符。支持的转换包括 ncbi-geneid、ncbi-proteinid、uniprot、pubchem、chebi。
- 交叉引用(kegg_link):查找 KEGG 数据库内部及之间的相关条目,用于查找包含基因的通路、获取通路中的基因、将基因映射到 KO 组、查找通路中的化合物。常见链接包括 genes ↔ pathway、pathway ↔ compound、pathway ↔ enzyme、genes ↔ ko(直系同源)。
- 药物-药物相互作用(kegg_ddi):检查药物-药物相互作用,用于分析药物组合、检查禁忌症、药理学研究。
使用方式
当用户请求 KEGG 数据时,确定所需操作并使用 scripts/kegg_api.py 中的相应函数。
示例:
from scripts.kegg_api import kegg_info
# 获取通路数据库信息
info = kegg_info('pathway')
# 获取物种特定信息
hsa_info = kegg_info('hsa') # 人类基因组
常见数据库:kegg、pathway、module、brite、genes、genome、compound、glycan、reaction、enzyme、disease、drug。
常见物种代码:hsa(人类)、mmu(小鼠)、dme(果蝇)、sce(酵母)、eco(大肠杆菌)。
常见分析工作流
- 工作流 1:基因到通路映射。用于查找与感兴趣基因相关的通路(例如用于通路富集分析)。步骤:按名称查找基因 ID → 将基因链接到通路 → 获取详细通路信息。
- 工作流 2:通路富集上下文。用于获取物种通路中的所有基因以进行富集分析。步骤:列出所有人类通路 → 对每个通路获取相关基因。
- 工作流 3:化合物到通路分析。用于查找包含感兴趣化合物的代谢通路。步骤:搜索化合物 → 将化合物链接到反应 → 将反应链接到通路 → 获取通路详情。
- 工作流 4:跨数据库集成。用于将 KEGG 数据与 UniProt、NCBI 或 PubChem 数据库集成。步骤:将 KEGG 基因 ID 转换为外部数据库 ID → 解析转换结果 → 使用 KEGG 获取序列。
- 工作流 5:物种特异性通路分析。用于比较不同物种之间的通路。步骤:列出多个物种的通路 → 获取参考通路进行比较 → 获取物种特定版本。
通路分类
KEGG 将通路组织为七个主要类别:
- 代谢(例如 map00010 - 糖酵解、map00190 - 氧化磷酸化)
- 遗传信息处理(例如 map03010 - 核糖体、map03040 - 剪接体)
- 环境信息处理(例如 map04010 - MAPK 信号通路、map02010 - ABC 转运蛋白)
- 细胞过程(例如 map04140 - 自噬、map04210 - 凋亡)
- 生物体系统(例如 map04610 - 补体级联、map04910 - 胰岛素信号通路)
- 人类疾病(例如 map05200 - 癌症通路、map05010 - 阿尔茨海默病)
- 药物开发(按时间顺序和基于靶点的分类)
详细通路列表和分类请参考 references/kegg_reference.md。
重要标识符和格式
- 通路 ID:map#####(参考通路,通用,非物种特定)、hsa#####(人类通路)、mmu#####(小鼠通路)
- 基因 ID:格式为 organism:gene_number(例如 hsa:10458)
- 化合物 ID:格式为 cpd:C#####(例如 cpd:C00002 为 ATP)
- 药物 ID:格式为 dr:D#####(例如 dr:D00001)
- 酶 ID:格式为 ec:EC_number(例如 ec:1.1.1.1)
- KO(KEGG Orthology)ID:格式为 ko:K#####(例如 ko:K00001)
限制
使用 KEGG API 时需遵守以下约束:
- 条目限制:每次操作最多 10 个条目(image/kgml/json 除外:仅 1 个条目)
- 学术用途:API 仅限学术用途;商业用途需要许可
- HTTP 状态码:检查 200(成功)、400(错误请求)、404(未找到)
- 速率限制:无明确限制,但避免快速连续请求
详细参考
综合 API 文档、数据库规范、物种代码和高级用法请参考 references/kegg_reference.md,其中包括:完整的 KEGG 数据库列表、详细 API 操作语法、所有物种代码、HTTP 状态码和错误处理、与 Biopython 和 R/Bioconductor 的集成、API 使用最佳实践。
故障排除
- 404 Not Found:条目或数据库不存在;验证 ID 和物种代码
- 400 Bad Request:API 调用语法错误;检查参数格式
- 空结果:搜索词可能不匹配条目;尝试更广泛的关键词
- Image/KGML 错误:这些格式仅适用于单个条目;移除批处理
附加工具
用于交互式通路可视化和注释:
- KEGG Mapper:https://www.kegg.jp/kegg/mapper/
- BlastKOALA:自动基因组注释
- GhostKOALA:宏基因组/宏转录组注释