Biopython 是计算生物学与生物信息学领域的行业标准 Python 库,用于构建生物信息学工作流。本技能提供其综合使用指南。
一、用途 Biopython 适用于以下任务:解析和操作生物序列(DNA、RNA、蛋白质);读写序列文件(FASTA、FASTQ、GenBank、EMBL、SwissProt);执行序列比对(双序列和多序列);运行并解析 BLAST 检索;分析 PDB 文件中的蛋白质结构;计算序列统计量和分子量;将 DNA 翻译为蛋白质;查找限制性酶切位点;构建和分析系统发育树;访问 NCBI 数据库(Entrez、PubMed);计算序列基序和模式;分析下一代测序数据。
二、主要能力与核心模块
- Seq:创建序列,如 Seq("ATCG")。
- SeqIO:读取序列文件,如 SeqIO.parse("file.fasta", "fasta")。
- pairwise2:双序列比对,如 pairwise2.align.globalxx(s1, s2)。
- AlignIO:多序列比对,如 AlignIO.read("align.fasta", "fasta")。
- NCBIWWW:BLAST 检索,如 NCBIWWW.qblast("blastn", "nr", seq)。
- PDB.PDBParser:PDB 结构解析,如 PDBParser().get_structure()。
- Phylo:系统发育树,如 Phylo.read("tree.xml", "phyloxml")。
- Entrez:NCBI 数据库访问,如 Entrez.esearch(db="nucleotide")。
三、安装方式
- pip(推荐):pip install biopython
- 含可选依赖:pip install biopython[extra]
- conda:conda install -c conda-forge biopython
- 开发版:pip install git+https://github.com/biopython/biopython.git
四、使用方式 标准导入示例: from Bio.Seq import Seq from Bio.SeqRecord import SeqRecord from Bio import SeqIO, AlignIO from Bio import pairwise2 from Bio.Align import MultipleSeqAlignment from Bio.Align.Applications import ClustalwCommandline from Bio.Blast import NCBIWWW, NCBIXML from Bio.PDB import PDBParser, PDBIO, Select from Bio.PDB.DSSP import DSSP from Bio.PDB.Polypeptide import PPBuilder from Bio import Phylo from Bio.Phylo.TreeConstruction import DistanceCalculator, DistanceTreeConstructor from Bio import Entrez from Bio.SeqUtils import GC, molecular_weight from Bio.Restriction import *
基本模式包括:序列创建(转录、翻译、反向互补)、文件读取(SeqIO.parse 迭代器)、序列比对(pairwise2 全局/局部比对)、多序列比对(AlignIO 读取 ClustalW 输出)、BLAST 在线检索与 XML 解析、PDB 结构分析、系统发育树构建、Entrez 数据库检索等。
五、关键规则 应做:对大文件使用迭代器(SeqIO.parse() 而非 SeqIO.to_dict());操作前验证序列字母表和长度;解析器与实际文件格式匹配;检查比对质量(空位和一致性百分比);翻译时指定合适的遗传密码表;关闭文件句柄;按质量过滤 FASTQ;验证 PDB 结构缺失原子/残基;为 Entrez 设置邮箱;处理翻译阅读框。 不应做:将整个 FASTQ 加载到内存;忽略序列类型;跳过质量过滤;使用错误的遗传密码;忘记终止密码子;混合字母表;盲目信任所有 BLAST 命中;忽略链断裂;高频请求 NCBI 服务器(无 API key 时限制 3 请求/秒);直接比较原始序列。
六、适用场景与限制 适用场景包括序列解析与操作、文件格式转换、序列比对、BLAST 检索、蛋白结构分析、系统发育分析、NCBI 数据库访问等。 不适用于:高性能基因组组装(应使用 SPAdes、Canu);从 BAM 文件进行变异检测(应使用 GATK、BCFtools);RNA-seq 差异表达(应使用 DESeq2、edgeR);蛋白质结构预测(应使用 AlphaFold、RoseTTAFold);大规模宏基因组学(应使用专用流程)。
七、参考文档 官方文档:https://biopython.org/ 教程:https://biopython.org/DIST/docs/tutorial/Tutorial.html 搜索模式:SeqIO.parse、Seq、AlignIO、NCBIWWW.qblast、PDBParser