RFdiffusion(Baker 实验室,Nature 2023)把扩散模型用于蛋白骨架生成:从随机噪声出发,在 RoseTTAFold 的结构先验引导下逐步去噪,生成满足指定约束的三维骨架。它让「按需求定制蛋白形状」从研究课题变成了可操作的流程。
部署
git clone https://github.com/RosettaCommons/RFdiffusion.git
cd RFdiffusion
conda env create -f env/SE3nv.yml
conda activate SE3nv
bash scripts/download_models.sh models/ # 下载权重
依赖 SE(3)-Transformer 相关组件,环境较重,建议严格按官方 yml 复现或用容器。需要 GPU。
四种主要设计模式
# 1) 无条件生成:给定长度自由生成骨架
./scripts/run_inference.py \
'contigmap.contigs=[100-100]' \
inference.output_prefix=out/uncond inference.num_designs=10
# 2) 结合物设计:针对靶标表面生成 binder
./scripts/run_inference.py \
inference.input_pdb=target.pdb \
'contigmap.contigs=[A17-145/0 70-100]' \
'ppi.hotspot_res=[A59,A83,A91]' \
inference.output_prefix=out/binder inference.num_designs=100
# 3) motif scaffolding:把功能基序嵌进新骨架
./scripts/run_inference.py \
inference.input_pdb=motif.pdb \
'contigmap.contigs=[10-40/A163-181/10-40]' \
inference.output_prefix=out/scaffold
# 4) 对称组装
./scripts/run_inference.py \
--config-name symmetry inference.symmetry=C3 \
'contigmap.contigs=[120-120]' inference.output_prefix=out/c3
contigs 语法是使用门槛所在:A17-145 表示保留输入 PDB 中 A 链 17–145 号残基,70-100 表示生成一段 70~100 残基的新链,/0 表示链断开。hotspot 残基的选择直接决定结合物设计成败——要挑靶标表面真正参与相互作用的关键残基。
完整管线与真实成功率
- 流程:RFdiffusion 生成骨架 → ProteinMPNN(见 196《ProteinMPNN》)设计序列 → AF2/ESMFold 回测自洽 → 过滤后送实验。
- 计算侧过滤:结合物设计通常要求预测复合物的 pAE_interaction < 10、设计骨架与预测结构 RMSD < 2 Å、pLDDT > 80。这一层能滤掉绝大多数候选。
- 实验成功率要有预期:原论文中,结合物设计经计算过滤后送实验,实验命中率通常在百分之几到百分之十几的量级(因靶标难度而异)。这已远优于以往方法,但意味着一次实验轮次仍需测试几十到上百个设计。把它想象成「一发命中」是不现实的。
- 算力预期:生成上千个骨架 + 每骨架数十条序列 + 全部回测,是常规规模,需要规划 GPU 时间。
擅长与不擅长
| 任务 | 成熟度 |
|---|---|
| 小型对称组装体、理想化折叠 | 较成熟 |
| motif scaffolding(稳定已知功能基序) | 较成熟 |
| 针对结构清晰、有明显凹陷表面的靶标做 binder | 可行,需大量筛选 |
| 针对平坦 PPI 界面做高亲和力 binder | 困难 |
| 设计具有催化活性的酶 | 仍是开放难题 |
| 设计需要构象变化的动态蛋白 | 不擅长 |
上手提示
- 它只生成骨架,必须与 ProteinMPNN + AF2 回测组成完整三段式管线;
contigs语法和 hotspot 选择是成败关键,值得花时间读懂;- 计算过滤后实验命中率通常在个位数到十几个百分点,要按批量做实验规划;
- 结构清晰的靶标可行,平坦 PPI 界面和催化酶设计仍很困难。
延伸资源
- 序列设计:196《ProteinMPNN》;折叠验证:195《ESMFold》、192《Boltz》;
- 经典平台:198《Rosetta》、199《PyRosetta》;
- PPI 与生物药设计见「新药模态」模块。