Biopython Python 生物计算
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/biopython。
技能介绍
你在解决什么问题
做 DNA/RNA/蛋白质相关脚本时,常见痛点是格式杂(FASTA、GenBank、FASTQ、PDB、mmCIF)、NCBI 检索与批量下载要守速率规则,BLAST 与比对结果解析繁琐,结构层级(SMCRA)与系统发育树又各有一套 API。Biopython 把这类计算分子生物学任务收敛到一套模块化 Python 子包,当前文档对应 Biopython 1.85(Python 3,依赖 NumPy)。
技能如何组织工作流
本技能按领域拆分参考文档,写代码时先对号入座再查 references/:
- 序列:
Bio.Seq、Bio.SeqIO— 创建/翻译/反向互补、SeqRecord、大文件迭代读写与格式互转 - 比对:
Bio.Align、Bio.AlignIO— 两两与多序列比对、BLOSUM/PAM、比对统计 - 数据库:
Bio.Entrez— PubMed、GenBank、Protein、Gene 等搜索与下载(需设置Entrez.email) - BLAST:
Bio.Blast— Web/本地搜索、XML 解析、按 E 值过滤 - 结构:
Bio.PDB— PDB/mmCIF、距离/二面角、DSSP、叠合与 RMSD - 系统发育:
Bio.Phylo— Newick/NEXUS、建树、剪枝与可视化 - 其它:
Bio.motifs、Bio.PopGen、Bio.SeqUtils、Bio.Restriction等
推荐路径:根据任务选模块 → 读对应 reference → 抽取代码模式并组合;大文件用迭代器,网络与解析错误要显式处理,避免重复下载同一批 NCBI 数据。
适用边界与注意点
- 多序列比对写入前序列长度需一致;格式字符串与真实文件不符会触发 EOF 类解析错误。
- NCBI 访问缺邮箱会有 Entrez logger 警告;无效 accession 易导致 HTTP 400。
- 大规模 BLAST 更适合本地 BLAST 或缓存结果;PDB 质量参差时可用
PDBParser(QUIET=True)控制噪声。 - 翻译与群体遗传分析要选对遗传密码表与输入格式;复杂、长会话的多步流水线可另行借助托管研究环境,但日常单模块任务按 reference 即可。
使用场景
- 从 NCBI Entrez 按 Gene/GenBank 登录号检索并下载记录,批量导出为流水线使用的 FASTA 或 GenBank 文件
- 对未知序列跑 BLAST(Web 或本地),解析 XML 结果并按 E 值、一致性过滤后提取命中序列
- 读取 PDB 或 mmCIF,按 SMCRA 层级遍历链与残基,计算距离、二面角或做结构叠合与 RMSD
- 将多序列比对写入 AlignIO,基于距离或比对结果构建 Newick 系统发育树并剪枝、重定根后可视化
适合人员
- 湿实验团队里的生信支持人员,要把 FASTA/GenBank/FASTQ 读写和格式互转固化成可复用 Python 脚本
- 结构生物学或药物设计方向的研究生,需从 PDB 解析坐标、做 DSSP 二级结构赋值或结构比较
- 进化与比较基因组学研究者,需要两两/多序列比对、替换矩阵参数调优及系统发育树构建
- 群体遗传或宏基因组分析人员,要处理 GenePop、限制酶位点扫描或 GC/熔解温度等序列统计量