SuperAPI AI 工具集

biopython

数据与分析

查看项目

更新于 10-21 16:23

技能介绍

Biopython 是一套免费提供的 Python 生物计算工具集,用于完成序列操作、文件输入输出、数据库访问、结构生物信息学、系统发育分析等生物信息学任务。当前版本为 Biopython 1.87(2026 年 3 月 30 日发布),支持 Python 3.10-3.14 与 PyPy3.10,并依赖 NumPy。1.87 版本修复了 Bio.Entrez.Parser 在解析不可信文件时的 CVE-2025-68463,因此对于需要解析外部提供的 Entrez XML 的工作流,建议使用 1.87 或更高版本。

用途

该工具适用于以下场景:处理生物序列(DNA、RNA 或蛋白质);读取、写入或转换生物文件格式(FASTA、GenBank、FASTQ、PDB、mmCIF 等);通过 Entrez 访问 NCBI 数据库(GenBank、PubMed、Protein、Gene 等);运行 BLAST 检索或解析 BLAST 结果;进行序列比对(双序列或多序列比对);分析 PDB 文件中的蛋白质结构;创建、操作或可视化系统发育树;查找序列基序或分析基序模式;计算序列统计量(GC 含量、分子量、熔解温度等);执行结构生物信息学任务;处理群体遗传学数据;以及其他计算分子生物学任务。

主要能力

Biopython 按模块化子包组织,每个子包对应特定生物信息学领域:序列处理使用 Bio.Seq 与 Bio.SeqIO;比对分析使用 Bio.Align 与 Bio.AlignIO;数据库访问使用 Bio.Entrez;BLAST 操作使用 Bio.Blast;结构生物信息学使用 Bio.PDB;系统发育使用 Bio.Phylo;此外还有基序、群体遗传学、序列工具等高级功能。

安装与设置

使用显式版本固定安装当前稳定版:uv pip install "biopython==1.87"。访问 NCBI 数据库时,必须设置邮箱地址(NCBI 要求);对于可复用软件,应设置稳定的 Entrez.tool 值并向 NCBI 注册工具与邮箱。如需更高请求速率(10 次/秒而非 3 次/秒),应仅从环境变量读取 NCBI_API_KEY,不要硬编码密钥或加载无关环境变量。示例代码:

import os from Bio import Entrez

Entrez.email = "your.email@example.com" # required — use your real email Entrez.tool = "your_tool_name" # optional but recommended for reusable software

Optional: register at https://www.ncbi.nlm.nih.gov/account/settings/

if api_key := os.environ.get("NCBI_API_KEY"): Entrez.api_key = api_key

使用方式

编写 Biopython 代码时应遵循以下原则:显式导入模块,例如 from Bio import SeqIO, Entrez 与 from Bio.Seq import Seq;使用 NCBI 数据库时设置 Entrez 邮箱,并仅在存在时从环境变量加载 NCBI_API_KEY;选择合适文件格式(常见格式包括 "fasta"、"genbank"、"fastq"、"clustal"、"phylip");正确管理文件句柄,使用后关闭或使用上下文管理器;对大文件使用迭代器,避免一次性载入内存;优雅处理错误,网络操作与文件解析可能失败。

常见模式包括:从 GenBank 获取序列;构建序列分析流水线(计算 GC 含量、长度、翻译等);运行 BLAST 并获取前几个命中序列;从序列构建系统发育树(读取比对、计算距离、构建邻接树、ASCII 可视化)。

最佳实践

编写代码前先阅读相关参考文档;使用 grep 搜索参考文件中的特定函数或示例;解析前验证文件格式;优雅处理缺失数据;缓存已下载数据;遵守 NCBI 速率限制(使用 API 密钥、注册工具/邮箱、对大型任务使用 Entrez 历史与批处理);先用小数据集测试;保持 Biopython 更新;翻译时使用合适的遗传密码表;记录分析参数以保证可复现性。

适用场景与限制

该工具适用于计算分子生物学相关任务,包括序列分析、数据库检索、结构分析与系统发育研究。使用时应确认工具版本、参考基因组/注释版本与输入格式(FASTQ、BAM、VCF、h5ad);确认输入格式、标识符与参数,对影响结果的取值应询问而非猜测;先在小样本上运行;执行完整任务后验证结果(QC 指标、样本身份、基因组版本一致性、批次效应);报告运行内容(版本、命令、参数)、已检查项与仍不确定项。若输入间基因组版本或标识符不匹配,应停止并先协调(liftover、ID 映射);若指令中的函数、标志或端点在已安装版本中缺失,应查阅该版本自身文档并告知用户,不得虚构 API;若必需输入、标识符或参数不明确,应询问用户或明确说明假设。不得编造结果、参数、标识符、引用或统计量;不得超出统计支持范围解释生物学意义,应报告多重检验校正;版本相关细节可能过时,应以已安装版本的官方文档为准;涉及费用、共享 GPU 或云配额、个人或患者数据、不可撤销操作时,应先询问。

其他资源

官方文档:https://biopython.org/docs/latest/;教程:https://biopython.org/docs/latest/Tutorial/;GitHub:https://github.com/biopython/biopython;发布说明:https://github.com/biopython/biopython/blob/master/NEWS.rst;已弃用 API:https://github.com/biopython/biopython/blob/master/DEPRECATED.rst;邮件列表:biopython@biopython.org。

相关技能包括 scikit-bio、gget 与 etetoolkit。