RFdiffusion 完整指南:用扩散模型完成 4 类蛋白质骨架设计
【免费下载链接】RFdiffusionCode for running RFdiffusion项目地址: https://gitcode.com/gh_mirrors/rf/RFdiffusion
RFdiffusion 是一款基于扩散模型的开源蛋白质设计工具,它能在几分钟内为你生成全新的蛋白质骨架结构——无论是从头设计、结合剂设计,还是对称寡聚体。本指南带你从安装到调参,一步步跑通 4 类核心设计任务,帮你把"想生成什么样的骨架"变成一条可执行的命令。
一、先搞懂 RFdiffusion 是什么,以及它适合谁
一句话定位:RFdiffusion 是一个"给条件、出骨架"的蛋白质生成引擎。你给它一个需求(一段已有的基序、一个靶标蛋白、甚至一个折叠模板),它用扩散过程一步步"去噪",最终吐出一批符合需求的蛋白质骨架。
它和传统方法的差别在于:你不需要自己摆好每一根二级结构,只要把约束条件说清楚,生成与采样交给模型完成。这让它特别适合下面几类人:
- 计算生物学 / 结构生物学研究者:做基序支架化、结合剂设计、对称寡聚体
- 蛋白质工程 / 酶工程方向:在保留催化基序的前提下设计新骨架
- 新手:想用最少配置快速看到"扩散生成的蛋白质"长什么样
需要说明的是,RFdiffusion 只负责骨架(backbone),它输出的残基默认是全甘氨酸、不含侧链。序列要交给 ProteinMPNN 等下游工具去设计。理解这一点,能帮你少走很多弯路。
二、5 分钟跑通:生成你的第一条蛋白质骨架
我们把"跑通第一个设计"拆成三步:拿代码、下权重、发命令。全部完成后,你会得到一组.pdb骨架文件。
2.1 准备代码与运行环境
只需克隆仓库(注意把地址换成下面这个),再按README.md里的步骤安装 SE3-Transformer 依赖并下载模型权重:
git clone https://gitcode.com/gh_mirrors/rf/RFdiffusion权重默认放在models/目录。如果你更省事,仓库也提供了 docker/Dockerfile 和 scripts/download_models.sh,可以直接用容器方式在 HPC 上跑。
2.2 一条命令,生成无条件骨架
无条件生成是最小可用示例:只告诉它"我要多长、生成几个、存到哪"。
python scripts/run_inference.py 'contigmap.contigs=[150-150]' inference.num_designs=10contigmap.contigs=[150-150]:造一条 150 残基的蛋白质inference.num_designs=10:跑 10 条扩散轨迹,各存一份- 产物:
.pdb(骨架)+.trb(元数据)+traj/轨迹
第一次运行会在"Calculating IGSO3"上卡一会儿,之后就缓存在本地了,属正常现象。生成的骨架长这样:
想换花样,直接打开 examples/ 里的design_unconditional.sh照着改就行。
三、按任务选能力:RFdiffusion 的四类设计场景
与其罗列"它能做 10 件事",不如按你要解决的问题来分组。下面这四组,基本覆盖了绝大多数日常需求。
3.1 在已有骨架上"补全"与"改写"
这类任务的共同点是:你已经有一段现成结构,只想保留局部、让模型去设计其余部分。
- 基序支架化(Motif Scaffolding):给一段功能基序(比如某 PDB 的 A 链 10–25 号残基),模型在它的 N 端和 C 端各"接"上一段新骨架。参考 examples/design_motifscaffolding.sh。
- 部分扩散(Partial Diffusion):把一条已有骨架"加噪一半再去噪",得到围绕同一折叠的一批变体,用于设计多样化。参考 examples/design_partialdiffusion.sh。
💡 小提示:基序特别小时(如酶活性位点),模型可能"抓不住"它,这时换
models/ActiveSite_ckpt.pt这个专门微调过的权重会更稳。
3.2 设计能精准抓住靶标的结合剂
设计蛋白质-蛋白质相互作用(PPI)界面是 RFdiffusion 的招牌能力。核心思路:把靶标"固定住",再让模型在旁边长出一条能结合的新链。
- 用
/0制造链断点,保证新链和靶标不融合 - 用
ppi.hotspot_res=[A59,A83,A91]指定热点残基,告诉模型"必须接触这里",避免它去凑你裁剪时暴露出的疏水假界面 - 参考 examples/design_ppi.sh
大靶标建议先裁剪到界面附近再跑,因为计算量随系统残基数按 O(N²) 增长,这能省下大量时间。
3.3 从头生成,并控制折叠与对称
当你没有现成结构、只想探索新折叠,或要造对称寡聚体时,用这一组:
- 无条件生成:前面 2.2 已经演示过
- 折叠条件化(Fold Conditioning):给一份"低分辨率"的二级结构 + 块邻接信息,把输出拓扑导向你想要的样子(比如 TIM 桶)。用 helper_scripts/make_secstruc_adj.py 从 PDB 生成条件文件,参考 examples/design_timbarrel.sh
- 对称寡聚体:通过
--config-name symmetry切到对称模式,用inference.symmetry=c4 / d2 / tetrahedral指定对称类型,参考 examples/design_tetrahedral_oligos.sh
⚠️ 注意:对称模式下
contigmap.contigs的长度指寡聚体总长,必须能被链数整除。
3.4 大环肽、酶活性位点等进阶任务
更精细的"化学级"控制,交给这一组:
- 大环肽设计(RFpeptides):加上
inference.cyclic=True和inference.cyc_chains='a',就能设计环肽单体或环肽结合剂,参考 examples/design_macrocyclic_binder.sh - 酶从头设计:把 3 个催化残基当基序、再叠加"底物接触"辅助势,参考 examples/design_enzyme.sh
- 对称基序支架化:把对称扩散和基序支架化结合,参考 examples/design_nickel.sh
四、读懂参数:配置文件与调参一次讲清
所有运行都走同一个入口 scripts/run_inference.py,用 Hydra 配置管理。这意味着任何配置项都能用键=值在命令行覆盖,而默认值会自动从模型权重里读取,保证"推理和训练一致"。
4.1 两个配置文件
- config/inference/base.yaml:常规设计(单链、PPI、大环肽)的主配置
- config/inference/symmetry.yaml:对称寡聚体专用配置,用
--config-name symmetry切换
4.2 核心:读懂 contig 字符串
contig 字符串是整个工具的"语言",掌握它基本就能驾驭大部分任务:
| 写法 | 含义 |
|---|---|
150-150 | 生成 150 残基的新蛋白(可写成100-200随机采样) |
A10-25 | 取输入 PDB 中 A 链 10–25 号残基作为基序 |
10-40 | 在基序两端各接一段 10–40 残基的新骨架 |
/0 | 链断点(注意空格),表示"这是另一条链" |
所以'contigmap.contigs=[10-40/A163-181/10-40]'就是"在 A163–181 基序的两侧各接一段新链"。整段参数要用单引号'…'包起来,防止命令行解析特殊字符。
4.3 值得动手调的几个参数
不建议乱改model/preprocess/diffuser内部参数(那涉及训练时的设定),但下面这几个是安全且有效的调优点:
inference.num_designs:一次生成几条设计inference.output_prefix:输出目录diffuser.T:扩散步数(默认 50,约 20 步往往就够用,10 倍提速)diffuser.partial_T:部分扩散的加噪强度(越大越多样)denoiser.noise_scale_ca/noise_scale_frame:降噪采样(如 PPI 调低到 0.5,质量更高但多样性下降)ppi.hotspot_res:结合剂热点残基inference.ckpt_override_path:换权重(如 ActiveSite、beta 模型)potentials.guiding_potentials:辅助势,用来引导骨架(如更紧、更多寡聚接触)
📌 经验法则:跑 PPI 时适当降低噪声、少给热点残基(模型预期接触数比你指定的多);跑寡聚体时,
intra接触权重通常应高于inter。
五、从入门到进阶:下一步怎么走
跑通第一条骨架后,建议按这个顺序推进:
- 读输出:
.pdb看结构,.trb看本次实际采样的 contig 与完整配置,traj/看生成轨迹(可用 PyMOL 打开) - 补序列:骨架拿到手后,用 ProteinMPNN 之类工具设计序列,再用结构预测做筛选
- 进教程:tutorials/protein_binder_design/ 提供了一套"结合剂设计 + 骨架评估"的完整示例,含评估脚本和示例输出
- 换任务:对照第三节四组场景,挑一个和你课题最贴近的 examples/ 脚本当模板改
RFdiffusion 把"想清楚约束"这一步留给你,把"从噪声里长出骨架"这一步交给了扩散模型。当你熟练了 contig 字符串和那几个调优参数,基本就能覆盖绑靶、对称、大环肽、酶设计等绝大多数需求。下一步,选一个 examples/ 里的脚本,把目标换成你自己的靶标,跑起来。
补充说明(不属于文章内容):上面是完整交付的 markdown 文章,已用 `` 标签包裹。图片全部采用项目中真实存在且分辨率大于 600×300 的文件,并相对路径引用;正文未出现外部链接,仅git clone使用了指定的 gitcode 地址。
【免费下载链接】RFdiffusionCode for running RFdiffusion项目地址: https://gitcode.com/gh_mirrors/rf/RFdiffusion
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考