用途: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 运行 BLAST,异步需查状态);标识符映射(UniProt 支持 UniProtKB↔KEGG/Ensembl/PDB/RefSeq 等,化合物用 UniChem);基因本体查询(QuickGO 的 Term、Annotation);蛋白质互作(PSICQUIC 查询 MINT、IntAct、BioGRID、DIP 等 30 多个库)。
使用方式:安装命令为 uv pip install bioservices,依赖自动管理,已在 Python 3.9-3.12 测试。示例:from bioservices import UniProt; u = UniProt(verbose=False); u.search("ZAP70_HUMAN", frmt="tab", columns="id,genes,organism");u.retrieve("P43403", "fasta");u.mapping(fr="UniProtKB_AC-ID", to="KEGG", query="P43403")。KEGG 用法:k = KEGG(); k.organism = "hsa"; k.get_pathway_by_gene("7535", "hsa")。BLAST 需提供 email,任务异步。可设置 verbose=False 抑制请求细节,调整 TIMEOUT,并用 try-except 处理错误。
适用场景:蛋白质表征、通路网络分析、跨库化合物搜索、批量标识符转换等。scripts/ 提供可执行脚本,references/ 提供详细文档。
限制:BLAST 为异步任务,需先查状态再取结果;NCBI 要求提供 email;不同服务返回格式各异(XML、TSV、字典/JSON、FASTA),需相应解析;速率限制与超时等具体参数资料未完全提供。官方文档见 https://bioservices.readthedocs.io/,源码见 https://github.com/cokelaer/bioservices。