用途:Biopython 是免费 Python 生物计算工具集,用于序列操作、生物文件读写与格式转换、NCBI 数据库访问、BLAST、序列比对、蛋白结构分析、系统发育树等分子生物学任务。当前版本 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+。
主要能力:Bio.Seq/Bio.SeqIO 处理序列与 FASTA、GenBank、FASTQ 等格式;Bio.Align/Bio.AlignIO 做双序列与多序列比对;Bio.Entrez 访问 NCBI(PubMed、GenBank、Protein、Gene 等);Bio.Blast 运行并解析 BLAST;Bio.PDB 解析 PDB/mmCIF 并计算距离、RMSD 等;Bio.Phylo 读写与可视化系统发育树;另有 motifs、PopGen、SeqUtils、Restriction、Cluster、GenomeDiagram 等。
使用方式:安装可执行 uv pip install "biopython==1.87"。使用 NCBI 时须设置 Entrez.email,建议设置 Entrez.tool;如需更高频率限制(10 req/s 而非 3 req/s),仅从环境变量读取 NCBI_API_KEY,不要硬编码。常用模式包括 SeqIO.parse 逐条读取、SeqIO.convert 转换格式、Entrez.esearch/efetch 检索下载、NCBIWWW.qblast 与 NCBIXML.read 解析结果、PDBParser 解析结构、Phylo.read 与 draw_ascii 展示树。
适用场景:序列统计(GC 含量、分子量、熔解温度)、ORF 与翻译、限制酶位点、群体遗传、聚类、基因组示意图,以及从比对构建距离树等。
限制:需自行处理网络错误与文件格式校验;大文件应使用迭代器;应缓存下载数据并遵守 NCBI 频率限制;Bio.HMM、Bio.MarkovModel、Bio.Application 已在 1.86 移除,可改用 hmmlearn 与 subprocess;1.86 起 PairwiseAligner 默认 gap score 由 0 改为 -1,如需旧行为可设 aligner.gap_score = 0。官方文档见 https://biopython.org/docs/latest/,源码见 https://github.com/biopython/biopython。