蛋白质不是静态的积木。在真实细胞里,它们像精密的分子机器一样,根据环境信号改变形状、切换功能。一个酶在结合底物后激活,在结合抑制剂后关闭;一个转录因子在感受代谢物后改变DNA结合亲和力 — 这些构象切换是生命调控的核心语言。
然而,过去十年的AI蛋白质设计几乎都聚焦于静态结构:设计一个能结合特定靶点的 binder,或折叠成特定拓扑的 scaffold。能设计"在状态A做X、在状态B做Y"的动态切换蛋白质,一直是领域的圣杯。
SwitchCraft(ICML 2026,Bowen Jing & Mihir Bafna 等人,MIT)正是一个突破这一瓶颈的程序化框架。它通过 Boltz-1 共折叠模型的可微梯度,直接优化氨基酸序列,使其在多个配体状态下展现指定的构象行为。
核心洞察:SwitchCraft 不预测结构再设计序列 — 它将结构预测模型本身作为可微损失函数的"计算引擎",让梯度从"多状态构象差异"直接回传到序列 logits。这是一种将 AF3 级结构模型从"预测器"升级为"设计器"的范式跃迁。
技术原理:从静态设计到多状态优化
Boltz-1 作为可微结构引擎
SwitchCraft 的核心依赖是 Boltz-1(现已支持升级到 Boltz-2),一个 AF3 风格的共折叠结构预测模型。关键在于:Boltz-1 的前向传播是可微的 — 给定一个序列(以连续的 logits 表示)和一组配体,它能输出距离图(distogram)、PAE 矩阵和置信度分数,所有这些输出都可以对输入 logits 求梯度。
这意味着我们可以定义一个多状态损失函数,让 Boltz-1 同时"想象"蛋白质在不同配体条件下的结构,然后通过梯度下降优化序列,使这些想象中的结构满足设计规范。
四阶段退火优化
SwitchCraft 的 MultistateDesigner 类(designer.py:38)实现了一个精心设计的四阶段退火策略:
Warmup(预热)
30步迭代,soft=0、hard=0 的纯连续松弛,让 logits 在 Boltz-1 的结构空间中找到大致合理的起始点。此阶段不做离散化,允许梯度自由探索。
Exploration(探索)
100步迭代,逐步增加 soft interpolation(e_soft: 0→1),将连续 logits 推向 softmax 概率分布。同时增加优化 binder 位置数(e_num_optimizing_binder_pos: 8),扩大搜索范围。
Annealing Down(降温退火)
100步迭代,温度降至 0.01(e_temp=0.01),增加优化位置数到 12。低温下 softmax 趋近 argmax,序列逐渐"凝固"为离散氨基酸。此阶段类似模拟退火的冷却过程。
Argmax(离散化)
10步最终迭代,温度和 e_temp 均设为 0.01,优化位置数增至 16。此阶段几乎完全离散化,输出最终的氨基酸序列。梯度通过 straight-through estimator 传递。
每个阶段使用 Gumbel-Softmax 的 straight-through 估计器:前向传播用 argmax(离散),反向传播用 softmax(连续),确保梯度能穿透离散化操作。固定 motif 残基的梯度被掩码为零,保证功能位点不被优化破坏。
组合式损失函数库
SwitchCraft 的灵活性来自其模块化损失函数设计。每个损失类接收 Boltz-1 的 distogram 输出,计算一个可微标量损失。多个损失可以按权重组合,定义任意复杂的多状态设计目标:
YAML 配置即设计规范
SwitchCraft 的设计理念是:设计规范 = YAML 配置文件。用户不需要写代码,只需定义状态(每个状态是配体列表)和损失函数(类型 + 参数 + 权重),框架自动构建优化问题并求解。
配体支持多种格式:ccd:CODE(CCD 数据库小分子)、ligand:SMILES(任意 SMILES)、protein:SEQ(蛋白质链)、dna:SEQ(DNA双链)、rna:SEQ(RNA)。这意味着 SwitchCraft 可以处理蛋白质-蛋白质、蛋白质-核酸、蛋白质-小分子等任意组合的多状态设计。
五种内置设计范式
SwitchCraft 论文中定义了五种代表性的多状态设计任务,每一种都对应一种重要的生物调控模式:
| 任务 | 状态数 | 生物学含义 |
|---|---|---|
| 正别构 (pos_allostery) | 2 | apo 状态无活性,配体结合后形成功能 motif — 类似别构激活酶 |
| 负别构 (neg_allostery) | 2 | apo 状态有活性,配体结合后破坏功能 motif — 类似别构抑制 |
| 诱导结合 (induced_binding) | 2 | 靶标配体单独存在时不结合,有效应配体共存在时才结合 — 类似条件性激活 |
| 配体辨别 (ligand_discrimination) | 3 | apo + 两种不同配体 = 三种不同构象 — 类似配体门控离子通道 |
| Motif 切换 (motif_switching) | 2 | apo 时 motif 1 活跃,holo 时切换到 motif 2 — 类似双功能酶切换 |
生物医学应用:从传感器到治疗
SwitchCraft 的真正价值不在于设计"漂亮的蛋白质",而在于它能解决生物医学中的动态调控问题。以下是五个高价值应用场景及其技术细节:
应用一:正别构激活开关(pos_allostery)
SwitchCraft 官方示例 pos_allostery.yaml 展示了最基础的别构激活设计:蛋白质在无配体状态下不形成功能 motif,配体结合后 motif 形成。这模拟了天然别构激活酶的行为 — 如 cAMP 激活 PKA、GTP 激活 G 蛋白。
设计使用 PDB 1prw 作为 motif 模板,CCD 小分子 OQO 作为配体(可替换为任意目标分子的 SMILES)。两个状态的损失函数组合实现了精确的构象控制。
- 状态定义:State 0 (apo) — 无配体;State 1 (holo) — 配体
ccd:OQO结合 - 损失组合:AntiMotifLoss(motif=0, state=0) — apo 下惩罚 motif;MotifLoss(motif=0, state=1) — holo 下强制 motif;LigandContactLoss(state=1) — 确保配体接触
- Motif 来源:PDB
1prw(放置在motifs/1prw/目录下),定义了目标功能位点的几何形状 - 配体灵活性:将
ccd:OQO替换为ligand:SMILES可设计针对任意小分子的别构响应蛋白 - 验证方式:Boltz-2 的
boltz2_aff.ckpt可直接预测 holo 状态结合亲和力(ΔG),评估别构切换效率
应用二:Motif 切换双功能蛋白(motif_switching)
SwitchCraft 官方示例 motif_switching.yaml 展示了最复杂的多 motif 设计范式:蛋白质在 apo 状态下展示 motif 1,配体结合后切换到 motif 2。这模拟了天然双功能酶的活性切换行为 — 如 E. coli 的 GS-ATase 级联中的双功能调节蛋白。
设计使用两个独立的 motif 模板(motif1 和 motif2),通过四个 MotifLoss/AntiMotifLoss 损失实现精确的 motif 互斥切换,再加上 ConfChangeLoss 最大化状态间构象差异。
- 状态定义:State 0 (apo) — 无配体,motif 1 活跃;State 1 (holo) — 配体
ccd:OQO结合,motif 2 活跃 - 损失组合:MotifLoss(motif1, apo) + AntiMotifLoss(motif1, holo) + AntiMotifLoss(motif2, apo) + MotifLoss(motif2, holo) + ConfChangeLoss([0,1], strength=10) + LigandContactLoss(holo)
- 双 Motif 机制:apo 状态下 motif 1 形成、motif 2 被抑制;holo 状态下 motif 1 被破坏、motif 2 形成 — 实现完全的构象切换
- ConfChangeLoss:strength=10 的构象变化损失确保两个状态之间有显著的 distogram 差异(Jensen-Shannon 散度),而非微小的局部调整
- 应用潜力:双功能蛋白设计、条件性酶活性切换、配体门控的构象重编程
应用三:条件性药物结合蛋白
在精准治疗中,条件性结合蛋白(prodrug activator)可以大幅降低药物副作用:设计一个蛋白质,只在特定效应分子(如肿瘤微环境特有的代谢物)存在时才结合并激活药物前体。
SwitchCraft 的"诱导结合"任务正是为此而生:状态0只有靶标药物(不结合),状态1同时有靶标药物和效应配体(结合),通过 AntiLigandContactLoss + LigandContactLoss 的组合实现"AND 门控"。
- 设计策略:诱导结合任务 — 靶标配体单独存在时不接触(AntiLigandContactLoss),靶标 + 效应配体共存在时接触(LigandContactLoss)
- 效应配体选择:肿瘤微环境标志物(如乳酸、低 pH 对应的质子、特定激酶底物)
- 安全优势:正常组织中效应配体不存在,药物前体不被激活;肿瘤组织中双重条件满足,精准释放活性药物
- 验证路径:Boltz-2 亲和力预测(boltz2_aff.ckpt)可同时评估两种状态的结合 ΔG,计算选择性窗口
应用四:配体辨别蛋白质设计
许多疾病涉及结构高度相似的配体需要被区分:例如 ATP vs. GTP、NAD+ vs. NADH、磷酸化 vs. 非磷酸化肽段。设计能精确辨别相似配体的蛋白质是药物发现和诊断的关键挑战。
SwitchCraft 的三状态"配体辨别"任务可以设计一个蛋白质,在 apo、配体1、配体2 三种状态下采取三种不同构象,通过 ConfChangeLoss 最大化两两之间的构象差异。
- 设计策略:配体辨别任务 — 3个状态(apo + 2种配体),每对状态之间用 ConfChangeLoss 最大化构象差异
- 配体定义:相似配体对用 SMILES 精确定义,如 ATP
ccd:ATPvs. GTPccd:GTP - 诊断应用:设计的蛋白质与不同配体结合后产生不同构象,可通过 FRET 或电化学信号读出配体身份
- 治疗应用:设计只被致病配体(如突变的磷酸化肽段)激活而不被野生型激活的 therapeutic switch
应用五:合成信号通路中的分子开关
合成生物学的一个核心目标是构建人工信号传导通路 — 类似天然 MAPK 或 JAK-STAT 通路,但用完全从头设计的组件。这需要能在不同配体间切换构象的蛋白质作为信号中继节点。
SwitchCraft 设计的别构开关蛋白可以作为信号通路中的"逻辑门":上游代谢物结合 → 构象切换 → 暴露/隐藏下游结合位点 → 信号传递或阻断。
- 设计策略:负别构任务 — apo 状态下下游结合 motif 暴露(MotifLoss),上游信号配体结合后 motif 隐藏(AntiMotifLoss)
- 通路构建:多个 SwitchCraft 设计的开关蛋白串联,实现多级信号放大和逻辑运算(AND/OR/NOT)
- 配体类型:支持蛋白质链(
protein:SEQ)和核酸(dna:SEQ、rna:SEQ)作为配体,实现蛋白质-蛋白质、蛋白质-核酸信号通路 - 工程优势:完全从头设计的组件不与天然通路交叉干扰,实现正交信号网络
快速上手:官方示例运行指南
SwitchCraft 仓库的 tasks/ 目录提供了五种官方示例 YAML 配置,覆盖了所有核心设计范式。以下展示如何运行这些示例,以及每个示例的关键配置细节。
安装与运行
执行流程:
- YAML 解析:框架读取配置文件,解析 states(配体列表)、motifs(PDB 模板)、losses(损失函数组合)
- Boltz 初始化:加载 Boltz-1 权重(
~/.boltz/boltz1_conf.ckpt),构建MultistateDesigner对象 - 梯度优化:4 阶段退火 — 高温探索 → 中温收敛 → 低温精调 → 序列固化,每阶段 Boltz-1 前向+反向传播
- LigandMPNN 重设计(可选):对每个设计的骨架运行 LigandMPNN 生成候选序列,增加序列多样性
- 结构验证:用 Boltz-1 对最终序列进行独立结构预测,评估各状态的 pTM、ipTM、PAE
负别构(neg_allostery)— 配体结合破坏功能位点
与正别构相反:apo 状态下 motif 形成(功能活跃),配体结合后 motif 被破坏(功能关闭)。这模拟了天然别构抑制 — 如 GDP 抑制 G 蛋白、ATP 抑制 PKA。
诱导结合(induced_binding)— 双配体 AND 门控
靶标配体单独存在时不结合,需要效应配体同时存在才结合 — 这是条件性结合的 AND 逻辑门。无 motif,纯靠配体接触损失控制。
配体辨别(ligand_discrimination)— 三状态构象分离
三状态设计:apo、配体1、配体2 各自采取不同构象。通过三对 ConfChangeLoss 最大化所有状态对之间的构象差异,实现配体门控的构象切换。
技术细节与工程实践
序列表示与梯度传递
SwitchCraft 不直接优化离散的氨基酸序列,而是优化一个 [L × 33] 的连续 logits 矩阵(L = 序列长度,33 = 扩展字母表含特殊字符)。通过 Gumbel-Softmax 的 straight-through 估计器,前向传播取 argmax 得到离散序列,反向传播用 softmax 概率传递梯度。
固定 motif 残基通过 fixed_mask 掩码(designer.py:455-460):前向时用 motif 原始序列的 one-hot 替换,反向时将对应位置梯度置零。这确保功能位点在优化过程中不被破坏。Motif 的加载从 PDB 文件中的 REMARK 999 记录解析,提取 CB 原子坐标作为 motif 参考结构(motif.py:12-48)。
Boltz-1 前向调用细节
在每一步优化中,SwitchCraft 对每个状态分别构建 Boltz-1 batch:将当前序列的 pseudo-logits 注入 res_type 字段,配体信息通过 parse_boltz_schema 解析为标准 Boltz 输入格式(designer.py:289-310)。然后调用 boltz_model.get_distogram(batch) 获取距离图预测(designer.py:315)— 这是整个框架的计算瓶颈。
关键优化:优化阶段只调用 distogram head(不跑完整 diffusion),大幅降低计算成本。最终结构验证阶段才运行完整 diffusion(200步采样 × 5个样本),确保输出质量。
Boltz-2 升级带来的新能力
| 特性 | Boltz-1 | Boltz-2 |
|---|---|---|
| 结构精度 (CAMEO TM-score) | 基线 | +12% |
| 配体 pose 精度 (DockQ) | 基线 | +18% |
| 亲和力预测 | 不支持 | 支持 (boltz2_aff.ckpt) |
| 多配体支持 | 有限 | 完整支持 |
| 无 MSA 单序列模式 | 需 patch | 原生支持 |
Boltz-2 的亲和力预测能力对 SwitchCraft 尤其重要:设计完成后可以直接预测 holo 状态的配体结合 ΔG,无需额外运行分子对接。这使得设计-评估闭环完全在同一个框架内完成。
LigandMPNN 序列重设计
SwitchCraft 优化输出的序列可能包含不自然的氨基酸组合。通过集成的 LigandMPNN(配体感知的逆折叠模型),可以在保持骨架结构的前提下重新设计序列,使其更可能实际表达和折叠。SwitchCraft 的 perform_tied_lmpnn_redesign 函数(lmpnn.py:25-82)实现了"绑定"模式:固定 motif 残基,只重设计 scaffold 区域,并用 Boltz 重新预测结构验证。该函数的完整流程为:(1) 从优化后的 logits 取 argmax 得到序列 → (2) 从 Boltz 预测中提取骨架坐标 → (3) 构造 LigandMPNN 输入(序列、坐标、配体位置)→ (4) 运行 LigandMPNN 采样(温度 0.1)→ (5) 用新序列重新运行 Boltz 验证结构保持。
架构全景:从 YAML 到结构输出
通过 codemap 追踪,SwitchCraft 的完整流程可以清晰地分为八个阶段,从 YAML 配置加载到最终结构输出。以下是每个阶段的精确代码位置和关键操作。
阶段 1-2:CLI 入口与配置解析
阶段 3-4:多状态 Batch 构建与损失函数
每个状态(apo/holo)的 batch 构建是 SwitchCraft 的核心工程。setup_states()(designer.py:120-180)为每个状态创建独立的 Boltz 输入字典:
损失函数的组装在 setup_losses()(designer.py:182-220)中完成。每个损失项绑定到特定状态,例如 MotifLoss(state=1) 只在 holo 状态的 distogram 上计算 motif 区域的 RMSD。
阶段 5-6:梯度优化循环
阶段 7-8:LigandMPNN 重设计与最终结构生成
| 阶段 | 代码位置 | 关键操作 | 输出 |
|---|---|---|---|
| 1. CLI 入口 | cli.py:16-38 |
加载 YAML 配置 | config dict |
| 2. Designer 初始化 | designer.py:38-95 |
解析配置、加载 motif、构建状态 | MultistateDesigner 实例 |
| 3. Batch 构建 | designer.py:120-180 |
BoltzTokenizer → BoltzFeaturizer | per-state batch dicts |
| 4. 损失组装 | designer.py:182-220 |
绑定损失函数到状态 | loss_fn 列表 |
| 5. 梯度优化 | designer.py:250-420 |
4 阶段退火 + Boltz 前向 + 反向 | 优化后 logits |
| 6. Motif 保护 | designer.py:455-460 |
fixed_mask 掩码应用 | 受保护的 logits |
| 7. LigandMPNN | lmpnn.py:25-82 |
配体感知序列重设计 | refined_seq |
| 8. 最终预测 | structure.py:10-45 |
Boltz 完整结构预测 + PDB 输出 | PDB + metrics |
整个流水线的计算瓶颈在阶段 5:每步优化需要对每个状态做一次 Boltz 前向。对于 2 状态设计 × 200 步优化 = 400 次 Boltz 前向。在单张 A100 上,每次前向约 30-60 秒,总优化时间约 3-7 小时。
局限与未来方向
SwitchCraft 是一个计算框架,论文明确指出它尚未提供端到端的湿实验验证流程。以下是需要注意的关键局限:
- 计算验证 ≠ 实验验证:Boltz-1/2 的结构预测精度虽高,但仍非实验结构。设计的蛋白质在真实环境中可能因翻译后修饰、寡聚化、细胞环境等因素表现不同
- 序列长度限制:当前框架在 50-150 残基范围内效果最佳。对于大型多结构域蛋白质,需要分域设计或结合全蛋白推理分析
- 动力学盲区:SwitchCraft 优化的是 Boltz 预测的静态结构差异,不直接模拟分子动力学。设计的"构象切换"在真实时间尺度上的动力学行为需要 MD 模拟验证
- 配体刚性假设:Boltz-1 对配体的处理基于 CCD 或 SMILES 的刚性构象,未充分考虑配体柔性。对于高度柔性的配体(如多肽),可能需要额外采样
未来最有前景的发展方向包括:(1) 将 Boltz-2 亲和力预测纳入优化损失函数,直接优化结合选择性;(2) 整合分子动力学模拟验证构象切换的动力学可行性;(3) 扩展到蛋白质-蛋白质相互作用界面的多状态设计;(4) 结合高通量湿实验平台(如酵母展示)实现设计-验证闭环。
🔑 关键要点
- 范式跃迁:SwitchCraft 将 AF3 级结构预测模型(Boltz-1/2)从"预测器"升级为"设计器",通过可微梯度直接优化多状态构象行为,填补了动态蛋白质设计的方法空白
- 组合式设计:10种模块化损失函数 + YAML 配置 = 任意复杂的多状态设计规范。五种内置任务覆盖了别构激活/抑制、条件性结合、配体辨别、motif 切换等核心生物调控模式
- 生物医学价值:在别构生物传感器、代谢工程酶开关、条件性药物激活、配体辨别诊断、合成信号通路五个方向具有明确的应用路径和技术细节
- 工程可行性:50残基设计在单块 A100 上约40分钟完成,LigandMPNN 重设计增加序列多样性,Boltz-2 亲和力预测实现设计-评估闭环
- 开源可复现:MIT 许可证,基于 Boltz-1 + LigandMPNN 开源项目,YAML 配置即设计规范,降低了动态蛋白质设计的技术门槛