用途:BioServices 是 Python 包,提供对约 40 个生物信息学 Web 服务的编程访问,透明处理 REST 和 SOAP 协议。适合在单个工作流中查询多个数据库(如 UniProt + KEGG + ChEMBL)、跨库 ID 映射、通路分析、蛋白互作查询与基因本体查询。单库快速查询更适合用 gget。
安装:uv pip install bioservices
主要能力:一是蛋白分析(UniProt),支持按名称搜索、检索 FASTA、ID 映射到 KEGG、Ensembl、PDB、RefSeq 等;二是通路分析(KEGG),可查找包含某基因的通路、解析通路数据、提取相互作用并可输出 SIF 格式;三是化合物跨库引用(KEGG 与 UniChem,如 KEGG 转 ChEMBL);四是序列分析(NCBIblast,任务为异步,需先查状态再取结果,运行需提供邮箱);五是基因本体(QuickGO)查询术语与注释;六是蛋白互作(PSICQUIC),可查询 MINT、IntAct、BioGRID 等 30 多个数据库并列出活动库。
用法要点:实例化对应服务类并调用其方法,例如 UniProt 的 search、retrieve、mapping,KEGG 的 get_pathway_by_gene、get、parse、parse_kgml_pathway、pathway2sif,UniChem 的 get_compound_id_from_kegg,NCBIblast 的 run、getStatus、getResult,QuickGO 的 Term、Annotation,PSICQUIC 的 query 与 activeDBs。
最佳实践:设置 verbose=False 抑制 HTTP 请求细节;慢连接可调整超时(如 k.TIMEOUT = 30);用 try-except 包裹服务调用以应对 API 不稳定;常用物种代码 hsa(人)、mmu(小鼠)、dme(果蝇)、sce(酵母),可用 k.list("organism") 列出全部;可与 BioPython、Pandas、NetworkX 配合使用。
限制:资料未提供各服务的完整方法清单、收费或配额信息;API 可能不稳定;NCBIblast 任务为异步且需要邮箱;部分功能细节见随附参考文件(services_reference.md、workflow_patterns.md、identifier_mapping.md)及示例脚本。文档见 https://bioservices.readthedocs.io/,源码见 https://github.com/cokelaer/bioservices。