5分钟跑通RFdiffusion:用扩散模型生成蛋白质骨架的完全指南

【免费下载链接】RFdiffusion Code for running RFdiffusion 【免费下载链接】RFdiffusion 项目地址: https://gitcode.com/gh_mirrors/rf/RFdiffusion

手里有一段短基序,想让它被一个完整的骨架包裹住;或者想生成一个能精确扣住靶点的结合蛋白——这类结构在已知数据库里通常不存在,同源建模帮不上忙。RFdiffusion 是一个开源的蛋白质设计工具,用扩散模型直接生成蛋白质骨架,并把「固定基序」「结合靶点」「对称约束」等条件编码进生成过程,覆盖从空白设计到定向改造的多数任务。

RFdiffusion蛋白质骨架生成流程示意图

能力总览:一张表看懂它能做什么

类别功能典型任务入口(脚本 / 配置)
从头生成无条件单体生成从零生成 100–200 残基的蛋白质examples/design_unconditional.sh
从头生成对称寡聚体循环(cN)、二面角(dN)、四面体对称组装体examples/design_tetrahedral_oligos.shconfig/inference/symmetry.yaml
从头生成大环肽设计环肽单体或环肽结合剂examples/design_macrocyclic_monomer.shexamples/design_macrocyclic_binder.sh
定向改造基序搭架围绕固定基序生长骨架examples/design_motifscaffolding.sh
定向改造部分扩散基于已知折叠生成变体examples/design_partialdiffusion.sh
定向改造结合剂设计对靶蛋白设计 de novo 结合剂examples/design_ppi.sh
定向改造酶活性位点设计微小基序搭架 + 底物引导势examples/design_enzyme.sh
拓扑约束折叠条件生成用二结构 / 邻接信息引导拓扑examples/design_ppi_scaffolded.sh
对称约束对称基序搭架沿对称轴传播基序examples/design_nickel.sh

示例输入结构放在 examples/input_pdbs/ 目录(如 5TPN、insulin_target、tau_peptide 等 PDB 文件),config/inference/base.yaml 是全部推理参数的默认来源。

快速上手:安装、首跑、看结果

✅ 环境搭建分三步:克隆代码、放模型权重、装 SE3 扩展:

git clone https://gitcode.com/gh_mirrors/rf/RFdiffusion

进入仓库后,用 scripts/download_models.sh(或 README 中的 wget 列表)把 Base_ckpt.pt、Complex_base_ckpt.pt 等权重下载进 models/ 目录,再构建运行环境:

conda env create -f env/SE3nv.yml
conda activate SE3nv
cd env/SE3Transformer && pip install -r requirements.txt && python setup.py install && cd ../..
pip install -e .

注意 yml 文件按 CUDA 11.1 给出,其他 GPU 环境需要自行调整 cudatoolkit 与 PyTorch 版本。

最小可跑示例——无条件生成 10 个 150 残基的蛋白质,只需指定长度、输出前缀、设计数量三件事:

./scripts/run_inference.py 'contigmap.contigs=[150-150]' inference.output_prefix=test_outputs/test inference.num_designs=10

⚠️ 首次运行会卡在 "Calculating IGSO3",这是构建几何索引,完成后会缓存,之后启动就快了。

结果怎么看:输出目录里每个设计有三类文件——.pdb 是最终骨架(设计区全部为甘氨酸、无侧链,属正常现象);.trb 记录本次实际用到的 contig 和完整配置,排查问题先看它;/traj/ 文件夹存放逐步去噪轨迹,是可用 PyMOL 打开的多步 PDB(注意轨迹按时间倒序排列)。

场景精选:四个常用任务怎么配

基序搭架:contigs 串怎么写

能做什么:把输入 PDB 中的一段残基钉死在原位,让模型在它周围长出 N 端和 C 端骨架。

入口脚本:examples/design_motifscaffolding.sh(输入为 examples/input_pdbs/5TPN.pdb)。

关键参数:核心是 contig 串,字母前缀表示「保留的基序」,无前缀表示「待生成段」(每次推理随机采样长度),/0 表示断链。示例脚本中的 'contigmap.contigs=[10-40/A163-181/10-40]' 即在 A163-181 两侧各长 10–40 残基。若基序只有几个残基(如酶活性位点),建议切换微调过的活性位点模型:inference.ckpt_override_path=models/ActiveSite_ckpt.pt

RFdiffusion基序搭架:围绕固定基序生成蛋白质骨架

结合剂设计:hotspot 指定结合界面

能做什么:面向靶蛋白的指定界面区域,设计 70–100 残基的新结合剂。

入口脚本:examples/design_ppi.sh(靶标为 examples/input_pdbs/insulin_target.pdb)。

关键参数:'contigmap.contigs=[A1-150/0 70-100]' 把靶标 A 链 1-150 与待生成的 70–100 残基链分开;'ppi.hotspot_res=[A59,A83,A91]' 告诉模型必须接触哪些界面残基——这是保证结合剂打在被裁剪暴露出的真实界面、而非人工水合补丁上的关键。脚本同时把 denoiser.noise_scale_cadenoiser.noise_scale_frame 设为 0,以质量换多样性。大靶标建议先裁剪到界面附近(运行开销随残基数平方增长)。

RFdiffusion生成的蛋白质结合剂设计结果

对称寡聚体:symmetry 参数在哪里改

能做什么:生成循环、二面角、四面体等对称的多亚基组装体。

入口脚本:examples/design_tetrahedral_oligos.sh;对称相关配置独立打包在 config/inference/symmetry.yaml 中,通过 --config-name symmetry 切换。

关键参数:inference.symmetry=tetrahedral(或 c4d2 等)决定对称类型;contigs 长度是寡聚体总长,必须能被链数整除,如 'contigmap.contigs=[600-600]' 即 4 条 150 残基链的四面体。示例脚本还挂了一个促进链间/链内接触的引导势:potentials.guiding_potentials=["type:olig_contacts,weight_intra:1,weight_inter:0.1"] 配合 potentials.guide_scale=2.0potentials.guide_decay="quadratic"

RFdiffusion四面体对称寡聚体设计结果

部分扩散:围绕已知折叠生成变体

能做什么:从一个已知结构出发,加噪若干步再去噪,在保持大致折叠的同时产生结构多样性。

入口脚本:examples/design_partialdiffusion.sh(输入 examples/input_pdbs/2KL8.pdb,79 残基)。

关键参数:diffuser.partial_T=10 表示只走 10 步噪声往返(总步数默认 50,噪声越大变体越远)。约束是 contig 长度必须与输入结构完全一致,如 'contigmap.contigs=[79-79]';想保留局部序列可用 contigmap.provide_seq 指定零起始的残基区间。

RFdiffusion部分扩散生成的蛋白质变体

大环肽结合剂:一个 cyclic 开关

能做什么:按 RFpeptides 方案设计原子精度环肽结合剂(另有单体版 examples/design_macrocyclic_monomer.sh)。

入口脚本:examples/design_macrocyclic_binder.sh(靶标 input_pdbs/7zkr_GABARAP.pdb)。

关键参数:在常规结合剂参数(contigs + ppi.hotspot_res)之外加两个开关——inference.cyclic=True 声明要生成环肽,inference.cyc_chains='a' 指出哪条链要闭环。

RFdiffusion大环肽结合剂绑定靶蛋白示意

进阶技巧:调参、批量与容器化

  • 步数与噪声:默认 diffuser.T=50,50 步的输出质量通常已接近 200 步。若结果质量不稳,把 denoiser.noise_scale_ca / denoiser.noise_scale_frame 降到 0.5 甚至更低,可提高单条设计的可靠性但损失多样性;inference.final_step 可提前收尾加速。
  • 引导势:配置中 potentials 区块支持在去噪过程中施加可微势(如 olig_contactssubstrate_contacts,见 examples/design_enzyme.sh 中的用法),guide_scale 控制强度、guide_decay 控制随步数衰减(constant/linear/quadratic/cubic)。经验:先从无势跑基线,再逐步加强,且 intra 链权重一般要高于 inter 链。
  • 批量任务inference.num_designs 控制单批数量,inference.design_startnum 控制起始编号,便于断点续跑。
  • 可视化/traj/ 中的轨迹文件直接拖进 PyMOL 即可逐帧查看去噪过程;最终 .pdb 可用任何分子可视化工具检查骨架合理性。
  • Docker:仓库提供 docker/Dockerfile,适合 HPC 环境——构建镜像后用 scripts/download_models.sh 拉权重,挂载 inputs/models/outputs 三个目录运行即可。

写在最后

RFdiffusion 把「想要什么结构的蛋白质」变成了「配置一行 contig 串」的问题,基序、靶点、对称、环化都只是参数差异。完整的参数说明见仓库 config/inference/ 下的两个 YAML,可直接运行的例子全部在 examples/ 中,逐个打开照着改是最快的学习路径。

【免费下载链接】RFdiffusion Code for running RFdiffusion 【免费下载链接】RFdiffusion 项目地址: https://gitcode.com/gh_mirrors/rf/RFdiffusion

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐