
文献来源:Gianluca Quargnali, Pablo Rivera-Fuentes. BioPipelines: Accessible Computational Protein and Ligand Design for Chemical Biologists. bioRxiv 2026. DOI: 10.64898/2026.03.11.711024 作者单位:苏黎世大学化学系(Department of Chemistry, University of Zurich) 发表时间:2026 年 3 月 13 日(bioRxiv 预印本) 开源地址:https://github.com/locbp-uzh/biopipelines 完整文档:https://biopipelines.readthedocs.io
过去十年间,蛋白质工程经历了从"专家导向"到"民主化"的根本性转变。以 Rosetta 为代表的传统方法需要研究者深度掌握物理能量函数与复杂参数调优,门槛极高。深度学习的兴起打破了这一局面:
上述工具的突破给化学生物学带来了前所未有的机遇——从改造结合特异性、设计酶变体,到对化合物库进行靶蛋白虚拟筛选,计算设计已成为实验设计的有力前导。然而,将这些工具串联成完整设计工作流在工程层面存在严重壁垒:
挑战维度 | 具体表现 |
|---|---|
软件环境隔离 | 每个工具依赖特定版本的 Python、CUDA 及第三方库,conda 环境间几乎不可兼容 |
输入/输出格式异构 | .pdb、.cif、.sdf、SMILES、FASTA……各工具读写格式不统一,中间转换脚本易出错 |
高性能计算配置 | SLURM 作业脚本需逐工具手动编写,资源申请、依赖关系管理、失败重跑均需人工干预 |
中间文件追踪 | 多步流程产生大量中间文件,手工管理极易造成版本混乱或数据丢失 |
可复现性不足 | Shell 脚本分散、缺乏版本控制,结果难以精确复现或追溯参数 |
这些"计算后勤"问题的累积效应是:对于缺乏专职计算支持的实验型化学生物学课题组,采用计算设计的门槛往往高于科学问题本身的复杂度。
在 BioPipelines 之前,学界已有若干尝试解决上述问题的框架,但均存在不同程度的局限:
BioPipelines 明确以上述框架为竞争对手,在设计上针对性地解决了其痛点。
BioPipelines 的设计围绕三个核心目标展开:抽象(Abstraction)、模块化(Modularity) 与 可测试性(Testability)。
BioPipelines 将 pipeline 的生命周期严格划分为两个独立阶段:
阶段一:配置阶段(Python 编排)
阶段二:执行阶段(bash 脚本运行)
这一设计的关键优势在于:同一套 pipeline 代码可在 Jupyter Notebook 中交互调试,无需任何修改即可提交至 SLURM 集群进行生产级运行。
BioPipelines 识别出化学生物学工具操作的三种基本实体类型,将其作为工具间流通的标准数据流:
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Structures │ │ Sequences │ │ Compounds │
│ (.pdb/.cif/ │ │ (蛋白质/DNA/ │ │ (SMILES/CCD/ │
│ .sdf 等) │ │ RNA 序列) │ │ 等) │
└──────────────┘ └──────────────┘ └──────────────┘
↕ ↕ ↕
与各实体关联的表格数据(tabular data)每个工具以这些基本类型作为输入和输出,并附带结构化的关联数据表。例如:
ProteinMPNN:Structures → SequencesAlphaFold:Sequences → StructuresBoltz2:Sequences + Compounds → Structures(同时产出亲和力数据表)任何新工具只需实现一个 Tool 类(包含四个方法),能够从输入流预测输出流即可被集成。框架还支持自定义数据流类型(如 Boltz2 生成的 MSA 文件可在后续运行中复用),以及基于 pandas 的标准化表格操作(过滤、排序、排名)。
实体类型 | 典型格式 | 示例工具 |
|---|---|---|
Structures(结构) | .pdb、.cif、.sdf | PDB 加载、AlphaFold 输出、Boltz2 输出 |
Sequences(序列) | 蛋白质氨基酸序列、DNA/RNA 序列 | ProteinMPNN 输出、DNAEncoder 输出 |
Compounds(化合物) | SMILES、CCD 代码 | CompoundLibrary 定义、Ligand 声明 |
BioPipelines 引入了两个组合辅助类(combinatorial assistants),用于精确控制多实体预测中的分组逻辑:
Bundle:将多个实体捆绑进同一次预测(用于构建同二聚体、多链复合物等);Each:对集合中的每个实体分别进行独立预测(用于库筛选、逐一评估等)。两者可嵌套,支持复杂的组合场景(如"对每种配体,均在同一同二聚体+另一分子共同存在时计算亲和力")。
框架内置 Panda 工具(封装 pandas),提供标准化的表格操作接口:
concat(合并多步结果)、add_source(追踪数据来源)等操作;科学目标:在保持折叠拓扑不变的前提下,为目标蛋白生成具有改善理化性质(稳定性、溶解度)的替代序列,并输出可直接用于基因合成的密码子优化 DNA。
Pipeline 流程:
PDB("4LCD", chain="E") # 加载泛素晶体结构(chain E)
↓
ProteinMPNN(soluble_model=True, # 使用可溶蛋白训练权重重设计序列
num_sequences=10) # 生成 10 条候选序列
↓
AlphaFold(proteins=sequences) # 折叠验证,计算结构置信度
↓
DNAEncoder(organism="EC") # 输出大肠杆菌密码子优化 DNA
技术亮点:
ProteinMPNN 调用专门针对可溶蛋白训练的模型权重(soluble_model=True),相比通用模型对溶解度预测更可靠;DNAEncoder 调用 CoCoPUTs 数据库提供的物种特异性密码子使用频率表,采用"阈值加权采样"策略:优先使用高频密码子以避免稀有密码子,同时引入随机性以降低基因重复序列(有利于基因合成);RMSD 计算 + pLDDT 阈值过滤(via Panda),对设计结果进行自动质控,仅保留与亲本结构高度相符且预测置信度高的变体(见 Figure S1)。

科学目标:替换腺苷酸激酶(adenylate kinase, PDB: 4AKE)的非必需 LID 结构域(残基 A118-160),用长度可变的全新骨架取代,同时保持其余部分结构完整。
Pipeline 流程(经典 RFdiffusion → ProteinMPNN → AlphaFold2 三步范式):
PDB("4AKE")
↓
RFdiffusion(contigs='A1-117/50-70/A161-214', # 固定非LID区域,扩散生成50-70aa新骨架
num_designs=10) # 生成10个骨架
↓
ProteinMPNN(num_sequences=2, # 每个骨架设计2条序列
redesigned=backbones.tables. # 关键:自动传递各骨架的"设计区域"信息
structures.designed)
↓
AlphaFold(proteins=sequences) # 折叠验证
技术亮点:
contigs 参数中 A1-117/50-70/A161-214 是 RFdiffusion 的标准 contig 语法,表示固定 A1-117 和 A161-214 区域,在其间扩散生成长度为 50-70 aa 的新片段;redesigned=backbones.tables.structures.designed 这一参数调用是框架模块化的典型体现——RFdiffusion 在运行时通过 contig 采样确定了每个骨架中被设计的具体位置(长度可变),这一信息以结构化表格形式传递给 ProteinMPNN,后者自动仅对新生成的骨架片段设计序列,而不对固定区域进行重设计,无需任何手工解析;
说明:RFdiffusion 类的 pipeline 通常需要数百至数千个设计才能产出高质量命中,实际应用中
num_designs应远大于示例值。
科学目标:构建色氨酸衍生物小分子库,通过 Boltz2 对色氨酸阻遏蛋白(TrpR)同二聚体在其 DNA 操纵子存在下的共折叠与亲和力进行预测筛选。
Pipeline 流程:
with Pipeline(project="TrpR", job="LibraryScreen"):
resources(gpu="A100", time="8:00:00", memory="32GB")
TrpR = Sequence("MAQQSPYSAAMA...VELRQWLEEVLLKSD")
DNA = Sequence("TGTACTAGTTAACTAGTAC")
library = CompoundLibrary("path/to/TrpR_library.cdxml") # ChemDraw 组合库文件
cofolded = Boltz2(proteins=Bundle(TrpR, TrpR), # 两个TrpR链捆绑→同二聚体
dsDNA=DNA,
ligands=Each(library)) # 对库中每个配体独立预测
输出:
技术亮点:
Bundle vs Each 的精妙语义:Bundle(TrpR, TrpR) 指示 Boltz2 将两条 TrpR 链置于同一预测中(生成同二聚体),而 Each(library) 指示对库中每个配体分别运行一次预测,最终得到 N 个独立的三元复合物预测;
科学目标:设计基于钙调蛋白(calmodulin)的基因编码 FRET 钙传感器,系统筛选 EBFP(供体)-钙调蛋白-EYFP(受体)三域融合蛋白的 linker 长度组合,在 apo 和 Ca²⁺ 结合态下预测结构并比较荧光基团间距。
Pipeline 流程:
with Pipeline(project="Biosensor", job="CaFRET"):
resources(gpu="A100", time="8:00:00", memory="16GB")
donor = Sequence("VSKGEELFTG...", ids="EBFP")
cam = Sequence("ADQLTEEQIA...", ids="CaM")
acceptor = Sequence("VSKGEELFTG...", ids="EYFP")
fusions = Fuse(sequences=[donor, cam, acceptor],
name="CaFRET",
linker="GSG",
linker_lengths=["0-3", "0-3"]) # 4×4=16种linker组合
apo = Boltz2(proteins=fusions) # 无Ca²⁺态
ca = Ligand("CA") # 钙离子
holo = Boltz2(proteins=fusions,
ligands=Bundle(ca, ca, ca, ca),
msas=apo) # 复用apo计算的MSA,节省服务器资源
技术亮点:
msas=apo 参数将 apo 计算中已生成的多序列比对文件传递给 holo 预测,避免重复向 MSA 服务器提交计算,显著降低计算开销;FRET 效率的几何假设:该示例基于荧光基团可自由旋转(取向因子 κ² = 2/3)的假设,以荧光基团间距离作为 FRET 效率的代理指标。实际传感器优化还需考虑荧光基团取向的各向异性。
科学目标:对周质结合蛋白 NocT(PDB: 5OT9)的组氨酸(Histopine)结合口袋进行计算定向进化,多轮循环筛选亲和力更高的结合位点变体。
算法框架:
初始化:Boltz2 预测 NocT-Histopine 原始结构与亲和力
循环(5轮):
1. DistanceSelector → 识别距配体5Å以内的口袋残基
2. LigandMPNN(num_sequences=1000) → 为口袋残基设计1000条变体序列
3. MutationProfiler → 统计每个位置的突变频率(绝对频率矩阵)
4. MutationComposer(mode="weighted_random", max_mutations=3)
→ 基于频率加权采样,生成10个候选突变体(每个最多3个突变)
5. Boltz2 → 预测所有候选突变体结构与亲和力
6. Panda.sort("affinity_pred_value").head(1)
→ 选取本轮最优突变体作为下一轮模板
技术亮点:
current_best = Panda(tables=[current_best.tables.result, predicted.tables.affinity], operations=[...], pool=[current_best, predicted]) 展示了 Panda 工具在迭代场景下的核心能力:跨轮次合并亲和力数据,自动选取最优结构作为下一轮起点,所有文件管理由框架自动处理;suffix(f"Cycle{cycle+1}"):为每轮生成的文件添加循环编号后缀,保证多轮输出不相互覆盖,便于事后回溯;BioPipelines 的交互式模式支持两种典型工作流:
Load 工具从已完成的 HPC 运行中加载任意步骤的输出,在本地 Notebook 中继续分析或接入新工具步骤。此外,框架利用 Python 的类型系统提供 IDE 原生支持:在 VS Code + Pylance 等现代 IDE 中,输入 RFdiffusion( 即可弹出所有参数名称、类型与文档说明;传入错误类型时,IDE 在运行前即会给出下划线警告。
BioPipelines 的一大亮点是对 AI 编程助手的系统性利用。作者报告,只需向 Claude Code(Anthropic,Opus 4.6 模型)提供 GitHub 仓库 URL 和一句话指令:
"Implement a BioPipelines tool for the repository:
<url>conforming to the existing tool standards."
Claude Code 将自动完成:
值得一提的是,BioPipelines 代码库本身有相当比例由 Claude Code(Opus 4.6)编写或重构(见 Acknowledgments),体现了"面向 AI 可读性"的代码组织策略——这反过来也使得框架代码更加规范、一致。
若手动实现,一个新 Tool 类需实现的四个核心方法包括(见 Supporting Information 架构文档):
特性 | BioPipelines | ProtFlow | ProteinDJ | Ovo | ColabFold |
|---|---|---|---|---|---|
自定义工作流 | ✅ | ✅ | ❌(9种固定) | ✅ | ❌ |
类型化生物分子数据流 | ✅ | ❌ | — | — | — |
小分子支持 | ✅ | 有限 | 有限 | 未知 | ❌ |
无需持续 Python 进程 | ✅ | ❌ | ✅ | — | — |
Jupyter 交互式调试 | ✅ | ❌ | ❌ | — | ✅(有限) |
SLURM 集群支持 | ✅ | ✅ | ✅ | ✅ | ❌ |
迭代优化支持 | ✅ | 有限 | ❌ | 未知 | ❌ |
AI 辅助工具扩展 | ✅(明确支持) | ❌ | ❌ | ❌ | ❌ |
部署复杂度 | 低 | 中 | 中 | 高 | 极低 |
开源协议 | MIT | — | — | — | — |
BioPipelines 的定位极为精准:化学生物学家既非纯实验科学家(对计算细节无感),也非计算生物学专家(无需重复造轮子),而是"有能力理解计算工具的科学逻辑,但缺乏精力处理底层工程问题"的群体。Python 上下文管理器语法与实验方案描述的高度相似性,以及内置的化合物库生成、FRET 传感器设计、基因合成输出等化学生物学特异性功能,均表明框架开发者对目标用户群体有深刻的理解。
BioPipelines 的核心贡献可概括为以下三点:
读者类型 | 推荐理由 | 建议阅读重点 |
|---|---|---|
以实验为主的化学生物学课题组 | 核心目标用户,可大幅降低计算设计采用门槛 | 所有应用案例 + GitHub README |
计算化学/计算生物学研究者 | 了解工具整合方案,借鉴模块化架构设计 | 软件设计部分 + Supporting Information 架构文档 |
结构生物学家 | 逆折叠 + 结构预测工具链的简洁实现参考 | 案例一、二 |
药物化学家/CADD 研究者 | 化合物库筛选与 Boltz2 集成方案 | 案例三 |
合成生物学家 | 从头设计 + 基因合成一体化 pipeline | 案例一、二 + DNAEncoder 工具 |
计算工具开发者 | AI 辅助框架扩展范式,具有方法论价值 | 扩展框架部分 + Supporting Information AI 工具开发记录 |
根据论文正文及 Table S1,BioPipelines 集成的工具(>30 个)按功能分类如下:

本文为基于bioRxiv 预印本的学术解读。整理时间:2026 年 3 月