酶改造-Rosetta 蛋白序列设计的原理与方法

蛋白质语言模型(Protein Language Model,PLM)与逆向折叠(inverse folding)网络普及之前,大量可验证的从头蛋白质设计(de novo protein design)依赖 Rosetta 等基于物理能量与离散侧链搜索的框架。即便在今天,Rosetta 仍在能量精修约束驱动的界面设计小分子/核酸共设计以及与实验数据(交联质谱(cross-linking mass spectrometry,XL-MS)、小角 X 射线散射(small-angle X-ray scattering,SAXS)等)联用的场景中占据重要位置。本文面向酶与聚合酶相关改造读者,归纳 Rosetta 做蛋白序列设计(protein sequence design)时的核心原理与常用方法边界。

段末注释PLM 从序列统计学习表示;逆向折叠指由骨架反推序列;Rosetta 为华盛顿大学等社区维护的大分子建模软件套件;XL-MS / SAXS 为可提供距离或低分辨形状约束的实验手段。


1. Rosetta 在序列设计中的定位

Rosetta 将「序列 + 三维构象」映射为一个可微或至少可比较的标量能量(score),并在离散/连续自由度上搜索低能解。与深度网络把问题写成端到端条件生成不同,Rosetta 更强调:

  • 显式物理与统计项组合的能量函数(可解释、可调权重);
  • 侧链离散 rotamer(rotamer,侧链构象异构体)上的组合优化(Packer);
  • 蒙特卡洛(Monte Carlo,MC)与模拟退火(simulated annealing,SA)等随机搜索,在序列–构象联合空间中探索。

因此,Rosetta 的序列设计通常表述为:在给定骨架(backbone)与任务约束下,寻找使总能量(及惩罚项)较低的氨基酸身份(identity)与配套侧链构象

段末注释骨架指主链原子排布;氨基酸身份即残基类型;rotamer 为侧链在 χ 角离散采样下的代表性构象。

Rosetta 序列设计总流程:从 Pose 到评分再到 Packer 搜索与输出候选

图 1(示意):左侧为输入 Pose(主链几何);中间将体系编码为可比较的标量能量并叠加约束项;右侧由 Packer 在离散 rotamer 与氨基酸身份上配合 MC/SA 搜索,输出多组低能「序列 + 侧链」候选。图中英文标注与软件界面常用符号一致,便于对照官方教程。


2. 能量函数:把「化学合理性」写成可优化的目标

Rosetta 使用全原子(full-atom)或** centroid 粗粒**(低分辨率)等多档表示;序列设计几乎总是在全原子档完成侧链打包。以常用的 ref2015(以及其前后代如 talaris2014 等)为代表,总能量为若干项的加权和,典型包括:

类别 代表项(直觉)
范德华 Lennard-Jones(Lennard-Jones,LJ)吸引/排斥,防止原子重叠并鼓励紧密堆积
溶剂化 Lazaridis–Karplus 隐式溶剂化(EEF1/LK 等变体)描述疏水埋藏与极性暴露
氢键 几何取向敏感的氢键项,奖励几何合理的 donor/acceptor 配对
静电 简化的库仑或去屏蔽模型(具体实现随版本与 flag 变化)
构象偏好 Ramachandran(φ/ψ)偏好、主链二面惩罚等
侧链先验 rotamer 概率(来自 Dunbrack 等库)与参考能量(氨基酸类型依赖的偏移)

参考能量(reference energy)对每种氨基酸给出一个基准,用于部分抵消「大侧链更容易形成更多接触因而能量更负」的偏差,使序列搜索不至于无条件偏向芳香族/大疏水残基。

段末注释ref2015 为 Rosetta 一套广泛使用的全原子权重与参考参数集合名;Ramachandran 图描述主链二面允许的构象区域;Dunbrack 库为 backbone 依赖的 rotamer 统计库。

全原子评分函数分项与总能量关系(定性示意,条长不表示真实数值比例)

图 2(示意):总能量为多项加权之和;常见分项包括范德华吸引/排斥、隐式溶剂化、氢键、主链二面偏好、rotamer 概率与参考能量等。E_total 用于对不同微结构进行相对排序;与实验 ΔG 之间一般需校准,不宜直接等同。具体项名与默认权重以所用 scorefunction 与版本为准。

能量函数并非「第一性原理」;它是力场项 + 统计势 + 经验权重的折中,用于排序候选构象而非给出绝对自由能。实践中常配合约束能量(coordinate、atom pair、ambiguous 等)把先验知识写成惩罚项。


3. Rotamer 与 Packer:序列设计的离散核心

3.1 为什么用 rotamer

侧链自由度(多个 χ 二面角)若连续采样,组合空间极大。Rosetta 采用 Dunbrack 等 backbone 依赖 rotamer 库,把每个残基的侧链近似为有限个高概率离散态。序列设计因此可视为:在每个位点从 20 种氨基酸 × 若干 rotamer 的乘积空间中选一组互容的分配。

段末注释χ 角为侧链二面角;rotamer 离散化是 Rosetta 速度与可控性的关键工程选择。

侧链 χ 连续角 → Dunbrack rotamer 离散库 → Packer 一步 Metropolis 提议(示意)

图 3(示意):左栏强调若 χ 连续取值则组合爆炸;中栏用统计库将侧链落到少数高概率 rotamer;右栏表示 Packer 在联合状态(氨基酸类型 + rotamer)上作随机提议,用能量差驱动接受率,并在退火 schedule 下逐步压低总能量。

3.2 Packer 在做什么

Packer(side-chain packing)在固定或可微调骨架上,对一组可设计位点执行能量驱动的离散搜索:反复提出「某位点换氨基酸 / 换 rotamer」的扰动,用 MC + SA 接受或拒绝,使系统总能量下降并避免浅阱。可配合 rotamer 子集(exclusion、limit 等)控制计算量。

当开启序列设计模式时,Packer 的「状态」同时包含身份rotamer,因此一次成功的打包即给出序列 + 侧链几何的联合解。

段末注释MC 为以能量差决定接受率的随机搜索;SA 通过逐步降温提高跳出局部最优的能力。


4. 典型协议:从固定骨架到联合优化

下图对照三类常见设定:固定骨架(计算快、依赖输入模型质量)、柔性/耦合骨架(主链与序列协同搜索)、多状态(单序列对多个结构同时优化)。后两类更贴近酶口袋重排与变构场景,但代价是轨迹更长、参数更敏感。

固定骨架、柔性骨架与多状态设计的目标与适用边界(示意)

图 4(示意):左——主链基本不动,由 Packer 主导序列与侧链;中——在 backrub / coupled moves / FastRelax 等循环中允许局部主链变化以改善几何;右——多个 pose 同时进入加权和(或变体目标),迫使同一序列在开放/闭合等构象间折中。英文子图标题与 Rosetta 文档常用术语一致。

4.1 固定骨架序列设计(fixed-backbone design)

骨架来自晶体结构、同源模型或结构预测(如 AlphaFold)输出。流程大意:

  1. 定义可设计位点(整条链或界面补丁)与氨基酸允许集(自然 20 种、或排除半胱氨酸/金属敏感残基等);
  2. 设定能量权重、无子结构能量(sub-score 监控界面/核心)与约束;
  3. 运行 fixbbFastDesign 类协议:外层循环中交替/联合进行侧链重打包与可选的最小化(minimization,连续微调);
  4. 生成多随机种子轨迹,聚类后取低能簇代表序列供实验。

该范式假设骨架误差足够小;对低置信度环区大 backbone 偏差,固定骨架设计可能给出「序列–结构自洽性差」的解。

段末注释fixbb 为 fixed backbone 相关应用/演示协议族;FastDesign 为较自动化的设计–最小化循环封装之一(具体 XML/py 脚本随版本略有差异)。

4.2 耦合运动与柔性设计(coupled moves / backbone flexibility)

为缓解「错骨架配好序列」问题,Rosetta 提供在 MC 中同时扰动序列–侧链–局部 backbone 的协议,例如 coupled movesbackrubFastRelax 与设计循环组合。思想是:允许小幅主链调整以释放 clashes 或改善氢键网络,再由 Packer 重写序列/rotamer。

代价是搜索空间扩大,需要更多步数与调参经验,但界面设计酶活性口袋附近常更受益。

段末注释backrub 为一种保留肽段几何关系的局部主链微扰动算子;FastRelax 为重复最小化–侧链重排的快速弛豫流程。

4.3 多状态设计(multistate design)

酶与开关蛋白常需在多种构象多种结合态下折中。Rosetta 可将多个 pose(结构实例)放入同一目标函数:能量为各态加权之和(或 max、软最大等变体),迫使单一序列在多个输入结构上同时合理。该思路对催化多步反应变构调节或「结合开放/闭合两种构象」的设计尤为相关。

段末注释pose 为 Rosetta 内存中单条结构对象(可含多条链、配体等)。


5. 约束、对称与评分监控

  • 约束:距离、二面、接触数目、金属配位几何等,把生物学知识弱化为软惩罚,避免纯能量项走偏。
  • 对称设计:同源寡聚体可用对称定义减少自由度,同时避免界面出现不对称堆积缺陷。
  • 分解能量:per-residue、interface、dG_separated 等监控量用于解释「为何该位点倾向某氨基酸」,便于与酶学假设对照。

段末注释:对称与约束属于「把任务从纯优化变成有先验的优化」,对聚合酶寡聚形式尤其常见。


6. 实践入口:命令行与 PyRosetta

  • 命令行 + RosettaScripts(XML):工业界与高通量流水线常用,利于批处理与集群。
  • PyRosetta:在 Python 中构建 pose、设置 Movemap(允许动的自由度)、调用 PackTaskFactory 定义可设计位点与氨基酸库,再运行 PackRotamersMover / FastRelax 等;适合与机器学习打分器、文库生成脚本互操作。

典型注意点:能量单位是 Rosetta 内部单位(REU,Rosetta Energy Unit),跨协议比较相对排名比绝对值更有意义;随机种子影响轨迹,应记录 seed 与完整 command line 以保证可复现。

段末注释Movemap 标记哪些主链/侧链自由度可动;REU 为 Rosetta 自定义能量单位,用于相对比较。


7. 与数据驱动方法的关系(为何仍要学 Rosetta)

深度逆向折叠模型(如 ProteinMPNN)在速度与骨架噪声鲁棒性上优势明显;Rosetta 的优势在于显式约束物理精修小分子/核酸/共价修饰支持与长期工程积累。常见组合范式是:神经网络生成候选序列 → Rosetta FastRelax / 界面优化 → 实验。对聚合酶改造,若问题核心是溶剂可及表面电荷二硫键模式底物对接几何稳定性–活性权衡,Rosetta 仍是可落地的工具链一环。

段末注释ProteinMPNN 为基于图消息传递的逆向折叠序列设计网络(见本仓库 ProteinMPNN 综述篇)。


8. 小结

Rosetta 的蛋白序列设计可概括为:在显式能量函数下,对离散 rotamer–连续微调混合空间做随机优化,并通过约束与多状态目标把生物学任务编码进目标函数。理解 Packer、能量项分工与「固定骨架 vs 柔性骨架」的适用边界,是阅读 RosettaScripts / PyRosetta 教程与调参的起点。


9. 延伸阅读(入门到系统)

  • Leaver-Fay A 等,Methods Enzymol. 2011;Rosetta3 模块化与基本算法综述。
  • Kuhlman B, Bradley P,Nat Rev Mol Cell Biol 2009;蛋白质设计的原理与挑战(含物理能量视角)。
  • Alford RF 等,J Chem Theory Comput 2017;Rosetta 能量函数 REF2015 的系统描述。
  • Rosetta Commons 官方文档与 workshop 材料(随版本更新,命令与默认权重以当前版本为准)。
-------------本文结束感谢您的阅读-------------