用途:BioServices 是用于访问 40 多个生物信息学服务的 Python 工具,适合多数据库工作流,如 UniProt、KEGG、ChEMBL、PubChem、Reactome、QuickGO 等,提供统一 API。
主要能力:蛋白质分析(UniProt 的 search、retrieve、mapping);通路发现与分析(KEGG 的 lookfor_organism、lookfor_pathway、get_pathway_by_gene、parse_kgml_pathway、pathway2sif);化合物数据库检索与交叉引用(KEGG、UniChem);序列分析(NCBIblast 的 run、getStatus、getResult,BLAST 任务为异步);标识符映射(UniProt 支持 UniProtKB 与 KEGG、Ensembl、PDB、RefSeq 等互转,化合物用 UniChem);基因本体查询(QuickGO 的 Term、Annotation);蛋白质互作(PSICQUIC 的 query、activeDBs,支持 MINT、IntAct、BioGRID、DIP 等 30 多个库)。
使用方式:安装命令为 uv pip install bioservices,依赖自动管理,已在 Python 3.9-3.12 测试。可参考 scripts/ 下的示例脚本,如 protein_analysis_workflow.py、pathway_analysis.py、compound_cross_reference.py、batch_id_converter.py。常用做法包括设置 verbose=False 抑制请求细节、调整 TIMEOUT、用 try-except 处理错误。
适用场景:需要整合多个生物数据库的科研分析、蛋白质与通路研究、化合物跨库检索、批量标识符转换等。
限制:BLAST 等任务异步,需先查状态再取结果;NCBI 服务要求提供邮箱;不同服务返回格式各异(XML、TSV、字典/JSON、FASTA),需分别解析;速率限制与超时需自行控制。官方文档见 https://bioservices.readthedocs.io/,源码见 https://github.com/cokelaer/bioservices。