
关于
Biopython 是一套全面的免费 Python 生物计算工具。提供序列操作、文件 I/O、数据库访问、结构生物信息学、系统发育学等众多生物信息学功能。
name: biopython description: "Biopython是一套全面的免费Python生物计算工具。提供序列操作、文件I/O、数据库访问、结构生物信息学、系统发育学等多种生物信息学任务功能。" license: Unknown metadata: skill-author: K-Dense Inc. risk: unknown source: "https://github.com/biopython/biopython"
Biopython:Python计算分子生物学
概述
Biopython是一套全面的免费Python生物计算工具。提供序列操作、文件I/O、数据库访问、结构生物信息学、系统发育学等多种生物信息学任务功能。当前版本为 Biopython 1.85(2025年1月发布),支持Python 3并需要NumPy。
何时使用本技能
在以下情况使用本技能:
- 处理生物序列(DNA、RNA或蛋白质)
- 读取、写入或转换生物文件格式(FASTA、GenBank、FASTQ、PDB、mmCIF等)
- 通过Entrez访问NCBI数据库(GenBank、PubMed、Protein、Gene等)
- 运行BLAST搜索或解析BLAST结果
- 执行序列比对(成对比对或多序列比对)
- 分析PDB文件中的蛋白质结构
- 创建、操作或可视化系统发育树
- 查找序列基序或分析基序模式
- 计算序列统计信息(GC含量、分子量、熔解温度等)
- 执行结构生物信息学任务
- 处理群体遗传学数据
- 任何其他计算分子生物学任务
核心功能
Biopython组织为模块化子包,每个子包针对特定的生物信息学领域:
- 序列处理 - Bio.Seq和Bio.SeqIO用于序列操作和文件I/O
- 比对分析 - Bio.Align和Bio.AlignIO用于成对和多序列比对
- 数据库访问 - Bio.Entrez用于程序化访问NCBI数据库
- BLAST操作 - Bio.Blast用于运行和解析BLAST搜索
- 结构生物信息学 - Bio.PDB用于处理3D蛋白质结构
- 系统发育学 - Bio.Phylo用于系统发育树操作和可视化
- 高级功能 - 基序、群体遗传学、序列工具等
安装和设置
使用pip安装Biopython(需要Python 3和NumPy):
uv pip install biopython
访问NCBI数据库时,始终设置你的电子邮件地址(NCBI要求):
from Bio import Entrez
Entrez.email = "your.email@example.com"
# Optional: API key for higher rate limits (10 req/s instead of 3 req/s)
Entrez.api_key = "your_api_key_here"
使用本技能
本技能提供按功能领域组织的全面文档。处理任务时,请查阅相关参考文档:
1. 序列处理(Bio.Seq & Bio.SeqIO)
参考: references/sequence_io.md
用于:
- 创建和操作生物序列
- 读取和写入序列文件(FASTA、GenBank、FASTQ等)
- 在文件格式之间转换
- 从大文件中提取序列
- 序列翻译、转录和反向互补
- 处理SeqRecord对象
快速示例:
from Bio import SeqIO
# Read sequences from FASTA file
for record in SeqIO.parse("sequences.fasta", "fasta"):
print(f"{record.id}: {len(record.seq)} bp")
# Convert GenBank to FASTA
SeqIO.convert("input.gb", "genbank", "output.fasta", "fasta")
2. 比对分析(Bio.Align & Bio.AlignIO)
参考: references/alignment.md
用于:
- 成对序列比对(全局和局部)
- 读取和写入多序列比对
- 使用替换矩阵(BLOSUM、PAM)
- 计算比对统计信息
- 自定义比对参数
快速示例:
from Bio import Align
# Pairwise alignment
aligner = Align.PairwiseAligner()
aligner.mode = 'global'
alignments = aligner.align("ACCGGT", "ACGGT")
print(alignments[0])
3. 数据库访问(Bio.Entrez)
参考: references/databases.md
用于:
- 搜索NCBI数据库(PubMed、GenBank、Protein、Gene等)
- 下载序列和记录
- 获取出版物信息
- 跨数据库查找相关记录
- 带适当速率限制的批量下载
快速示例:
from Bio import Entrez
Entrez.email = "your.email@example.com"
# Search PubMed
handle = Entrez.esearch(db="pubmed", term="biopython", retmax=10)
results = Entrez.read(handle)
handle.close()
print(f"Found {results['Count']} results")
4. BLAST操作(Bio.Blast)
参考: references/blast.md
用于:
- 通过NCBI网络服务运行BLAST搜索
- 运行本地BLAST搜索
- 解析BLAST XML输出
- 按E值或同一性过滤结果
- 提取命中序列
快速示例:
from Bio.Blast import NCBIWWW, NCBIXML
# Run BLAST search
result_handle = NCBIWWW.qblast("blastn", "nt", "ATCGATCGATCG")
blast_records = NCBIXML.parse(result_handle)
for record in blast_records:
for alignment in record.alignments:
print(f"Hit: {alignment.title[:60]}")
5. 结构生物信息学(Bio.PDB)
参考: references/structures.md
用于:
- 解析PDB和mmCIF文件
- 分析蛋白质3D结构
- 计算原子间距离和角度
- 提取特定链或残基
- 叠加结构
快速示例:
from Bio.PDB import PDBParser
parser = PDBParser()
structure = parser.get_structure("protein", "1abc.pdb")
for model in structure:
for chain in model:
print(f"Chain {chain.id}: {len(list(chain.get_residues()))} residues")
6. 系统发育学(Bio.Phylo)
参考: references/phylogenetics.md
用于:
- 读取和写入系统发育树文件(Newick、Nexus、PhyloXML)
- 遍历和操作树结构
- 计算树统计信息
- 可视化系统发育树
- 比较树拓扑结构
快速示例:
from Bio import Phylo
tree = Phylo.read("tree.nwk", "newick")
Phylo.draw_ascii(tree)
print(f"Terminals: {len(tree.get_terminals())}")
7. 高级功能
基序分析:
from Bio import motifs
from Bio.Seq import Seq
instances = [Seq("TACAA"), Seq("TACGC"), Seq("TACAC")]
m = motifs.create(instances)
print(m.counts)
pwm = m.counts.normalize(pseudocounts=0.5)
pssm = pwm.log_odds()
序列工具:
from Bio.SeqUtils import gc_fraction, molecular_weight
from Bio.Seq import Seq
seq = Seq("ATGCGATCGATCG")
print(f"GC content: {gc_fraction(seq):.2%}")
print(f"MW: {molecular_weight(seq, 'DNA'):.2f}")
生产环境注意事项
- 速率限制:NCBI限制每秒3次请求(有API密钥为10次)——始终在请求之间添加延迟
- 错误处理:网络请求可能失败——实现重试逻辑
- 大文件:对大文件使用
SeqIO.parse()(迭代器)而非SeqIO.read()(全部加载到内存) - 版本兼容性:某些API在不同版本间有变化——检查弃用警告
- 引用:在出版物中使用Biopython时请引用它
兼容工具
Claude CodeCursor
标签
前端开发