197

RFdiffusion:蛋白骨架生成工具实战

RFdiffusion 用扩散模型按约束生成蛋白骨架,可做结合物设计与对称组装,是从头设计的主力工具。这篇给出各设计模式的命令与实际成功率预期。

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 界面和催化酶设计仍很困难。

延伸资源