5分钟跑通RFdiffusion:用扩散模型生成蛋白质骨架的完全指南
5分钟跑通RFdiffusion:用扩散模型生成蛋白质骨架的完全指南
【免费下载链接】RFdiffusion Code for running RFdiffusion 项目地址: https://gitcode.com/gh_mirrors/rf/RFdiffusion
手里有一段短基序,想让它被一个完整的骨架包裹住;或者想生成一个能精确扣住靶点的结合蛋白——这类结构在已知数据库里通常不存在,同源建模帮不上忙。RFdiffusion 是一个开源的蛋白质设计工具,用扩散模型直接生成蛋白质骨架,并把「固定基序」「结合靶点」「对称约束」等条件编码进生成过程,覆盖从空白设计到定向改造的多数任务。
能力总览:一张表看懂它能做什么
| 类别 | 功能 | 典型任务 | 入口(脚本 / 配置) |
|---|---|---|---|
| 从头生成 | 无条件单体生成 | 从零生成 100–200 残基的蛋白质 | examples/design_unconditional.sh |
| 从头生成 | 对称寡聚体 | 循环(cN)、二面角(dN)、四面体对称组装体 | examples/design_tetrahedral_oligos.sh、config/inference/symmetry.yaml |
| 从头生成 | 大环肽设计 | 环肽单体或环肽结合剂 | examples/design_macrocyclic_monomer.sh、examples/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。
结合剂设计: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_ca 和 denoiser.noise_scale_frame 设为 0,以质量换多样性。大靶标建议先裁剪到界面附近(运行开销随残基数平方增长)。
对称寡聚体:symmetry 参数在哪里改
能做什么:生成循环、二面角、四面体等对称的多亚基组装体。
入口脚本:examples/design_tetrahedral_oligos.sh;对称相关配置独立打包在 config/inference/symmetry.yaml 中,通过 --config-name symmetry 切换。
关键参数:inference.symmetry=tetrahedral(或 c4、d2 等)决定对称类型;contigs 长度是寡聚体总长,必须能被链数整除,如 'contigmap.contigs=[600-600]' 即 4 条 150 残基链的四面体。示例脚本还挂了一个促进链间/链内接触的引导势:potentials.guiding_potentials=["type:olig_contacts,weight_intra:1,weight_inter:0.1"] 配合 potentials.guide_scale=2.0 与 potentials.guide_decay="quadratic"。
部分扩散:围绕已知折叠生成变体
能做什么:从一个已知结构出发,加噪若干步再去噪,在保持大致折叠的同时产生结构多样性。
入口脚本:examples/design_partialdiffusion.sh(输入 examples/input_pdbs/2KL8.pdb,79 残基)。
关键参数:diffuser.partial_T=10 表示只走 10 步噪声往返(总步数默认 50,噪声越大变体越远)。约束是 contig 长度必须与输入结构完全一致,如 'contigmap.contigs=[79-79]';想保留局部序列可用 contigmap.provide_seq 指定零起始的残基区间。
大环肽结合剂:一个 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' 指出哪条链要闭环。
进阶技巧:调参、批量与容器化
- 步数与噪声:默认
diffuser.T=50,50 步的输出质量通常已接近 200 步。若结果质量不稳,把denoiser.noise_scale_ca/denoiser.noise_scale_frame降到 0.5 甚至更低,可提高单条设计的可靠性但损失多样性;inference.final_step可提前收尾加速。 - 引导势:配置中
potentials区块支持在去噪过程中施加可微势(如olig_contacts、substrate_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 项目地址: https://gitcode.com/gh_mirrors/rf/RFdiffusion
更多推荐






所有评论(0)