BioServices 生物信息服务
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/bioservices。
技能介绍
要解决什么问题
生物信息学数据分散在 UniProt、KEGG、PDB、ChEBI 等数十个 Web 服务里,协议混用 REST 与 SOAP/WSDL,标识符体系互不统一。若在每个项目里手写 HTTP 客户端、解析 XML/TSV、维护 KEGG↔UniProt 等映射规则,工作流很难复用,也容易在速率限制与异步任务(如 BLAST)上踩坑。
技能如何工作
BioServices 是面向 Python 工作流的统一访问层,对约 40 个生物信息学服务做封装,协议细节对调用方透明。常见用法可以按任务拆成几块:
- 蛋白质:用
search()/retrieve()查 UniProt,按需拿 FASTA、XML 或 tab;用mapping()做跨库 ID 转换。 - 通路:在 KEGG 里
lookfor_organism()、lookfor_pathway(),用get_pathway_by_gene()关联基因与通路,parse_kgml_pathway()、pathway2sif()抽出结构化数据与蛋白互作网络。 - 化合物:在 KEGG 按名检索后,经 UniChem 映射到 ChEMBL,或利用条目里已有的 ChEBI ID 做交叉引用。
- 序列与互作:发起 BLAST/MUSCLE;通过 PSICQUIC 查询 MINT、IntAct、BioGRID 等交互库;配合 QuickGO 查 GO 术语与注释。
多服务流水线(蛋白检索 → FASTA → BLAST → KEGG 通路 → PSICQUIC)在技能文档的 scripts/ 与 references/workflow_patterns.md 里有完整模式。返回格式各异时,习惯用 BeautifulSoup 处理 XML、Pandas 处理 TSV、BioPython 接 FASTA;复杂映射见 references/identifier_mapping.md。
适用边界与注意点
- BLAST 为异步任务,需先查状态再取结果,不宜假设同步返回。
- 各服务有速率限制,应控制请求频率与输出详细程度。
- 服务调用建议包在
try-except中,避免单点失败拖垮整条流水线。 - 生物体代码需用标准缩写(如人类
hsa、小鼠mmu);完整列表可用 KEGG 相关 API 列举。 - 包在 Python 3.9–3.12 上测试;更重的多步研究场景可参考官方文档与 K-Dense Web 等托管环境,但日常脚本集成以本地 Python + BioServices 为主。
使用场景
- 在 Python 流水线里从 UniProt 检索靶蛋白序列,导出 FASTA 后提交 BLAST 并轮询任务状态取同源结果
- 根据差异表达基因列表在 KEGG 中定位相关代谢通路,用 pathway2sif 导出互作网络供 NetworkX 做拓扑统计
- 按化合物俗名在 KEGG 检索条目,经 UniChem 映射到 ChEMBL/ChEBI ID 并整理进同一 DataFrame
- 批量将 Ensembl 或 RefSeq 蛋白 ID 映射为 UniProtKB,再合并 GO 注释与 PSICQUIC 互作查询结果
适合人员
- 维护实验室自动化脚本、需在单次运行中串联 UniProt 与 KEGG 的 bioinformatics 研究生
- 负责代谢通路或信号通路复现、要把 KGML 转成可分析网络文件的计算生物学工程师
- 做先导化合物梳理、需在 KEGG、PubChem、ChEMBL 间交叉核对 ID 的药物化学或化信学研究员
- 参与基因功能注释或互作网络构建、要查 QuickGO 与 IntAct 等库的基因组数据策展或分析员