扩散模型教程第8章:生物与分子读者轨道
本章是系列第 8 章:把前面所有机制、旋钮、评估落到四条真实的生物轨道——蛋白结构、小分子配体、单细胞组学、显微病理图像,并用 RFdiffusion 这条最出名的蛋白设计流水线做深度案例。 前置:第 1 章(生物问题=条件生成)、第 6 章(条件注入)、第 7 章(四层评估与选型)。这一章是它们的落地。 系列内:条件注入机制见 第 6 章 训练与采样旋钮;评估菜单见 第 7 章 按数据结构选型;蛋白工具链见 ProteinMPNN / RFdiffusion 蛋白质设计。
1. 本章目标与验收标准
Section titled “1. 本章目标与验收标准”学完本章,你应能在不看笔记的情况下完成下列自检:
- 对蛋白 / 小分子 / 单细胞 / 病理四类任务,各填出「输入 x / 输出 / 条件 y / 评估」四要素模板。
- 解释为什么蛋白和小分子的 3D 扩散必须用等变网络,而单细胞扩散不用 U-Net。
- 说清 RFdiffusion 流水线里「谁产结构、谁产序列、谁做裁判」的三段分工。
- 解释 self-consistency(scTM)是什么、为什么它是蛋白生成的金标准、为什么裁判必须独立。
- 拿一个你领域的真实任务,套上对应轨道的四要素并选对条件注入方式。
字数与深度定位:生物落地章(约 8500–12000 汉字)。不从零训练任何模型、不背命令行 flag、不深入每个工具的安装教程。
2. 四条轨道的统一视角
Section titled “2. 四条轨道的统一视角”前面七章讲的都是「通用扩散」。落到生物,你会遇到四类差别极大的数据。但它们共享同一套四要素框架——先把这个框架建立起来,后面每条轨道就是往里填空:
flowchart TB Bio["生物生成需求"] --> P["轨道一 蛋白结构<br/>在 3D 空间去噪"] Bio --> M["轨道二 小分子配体<br/>在分子空间去噪"] Bio --> S["轨道三 单细胞组学<br/>在表达空间去噪"] Bio --> I["轨道四 显微病理<br/>最接近自然图像"]
| 轨道 | 被去噪对象 x | 和图像的最大差别 | 等变性要求 |
|---|---|---|---|
| 蛋白结构 | 残基坐标 + 朝向(SE(3) frame) | 3D 几何、有物理约束 | 强(SE(3) 等变) |
| 小分子 | 原子类型 + 3D 坐标 / 2D 图 | 离散+连续混合、化合价约束 | 强(E(3) 等变) |
| 单细胞 | 高维稀疏表达向量 | 无空间邻接、非负长尾 | 无(用 MLP/Transformer) |
| 病理图像 | 像素 / 潜向量 | 超高分辨率、染色变异 | 无(复用图像那套) |
一个贯穿本章的四要素模板,每条轨道都会填一遍:
- 输入 x:要生成、要被去噪的对象。
- 输出:一批候选(注意是「一批」,扩散产的是分布上的样本)。
- 条件 y:约束生成方向的信息(口袋、序列、类别、mask 等)。
- 评估:怎么判断生成得好不好——这是生物任务里最容易翻车的一环(第 7 章专讲)。
四条轨道的上手难度恰好和上表的「等变性要求」正相关,这个排序值得记住。病理图像最容易上手——它本质就是自然图像,Stable Diffusion 那套(U-Net/DiT + LDM + ControlNet)可以近乎直接复用,你在前七章学的东西迁移成本最低。单细胞其次——不需要等变,但要换掉卷积主干、且评估思路和图像完全不同(看分布不看像素)。蛋白和小分子最难——它们活在 3D 几何空间里,对旋转平移有强等变性要求,网络架构、加噪方式、评估指标都要专门设计。所以如果你是生物背景第一次做扩散,建议从病理图像轨道起步,把「训练-采样-条件-评估」的完整闭环在最熟悉的图像上跑通,再迁移到几何约束更强的蛋白、小分子轨道。这也是本章把四轨道按「图像→组学→分子→蛋白」由易到难铺开、但把最能体现工程完整性的蛋白设计(RFdiffusion)留到 §7 做深案例的原因。
3. 轨道一:蛋白结构生成
Section titled “3. 轨道一:蛋白结构生成”3.1 四要素快照
Section titled “3.1 四要素快照”| 要素 | 内容 |
|---|---|
| 输入 x | 3D 结构(每个残基的 Cα / 全原子坐标;或旋转–平移变换 SE(3) frame) |
| 输出 | 一批候选结构(骨架,或 backbone + 侧链) |
| 条件 y | 可选:功能位点、目标口袋、对称性约束、二级结构提示、目标长度、参考骨架 |
| 评估 | 结构合理性(clash / bond length)+ 可折叠性(AF2 self-consistency)+ 目标满足度 |
一句话定位:蛋白结构生成是「在 3D 空间里去噪」,被去噪对象不是像素,而是每个残基的坐标 + 朝向。
3.2 为什么这里必须「等变」
Section titled “3.2 为什么这里必须「等变」”蛋白结构在 3D 空间里,旋转整个分子、平移整个分子,都不改变它的物理意义。但普通 U-Net 处理的是像素网格——一旦旋转输入,输出会完全变。
心智模型:如果你训练一个模型去看「这个蛋白哪个位置是活性口袋」,训练时它是站着的,测试时把它躺下来——一个没有「等变性」的网络就完全懵了。
解决办法:用等变网络(SE(3)-Equivariant Network)作为去噪骨干。核心保证是:旋转输入 时输出也跟着旋转 (旋转等变),平移输入 时输出也跟着平移 (平移等变)。代表结构有 EGNN、SE(3)-Transformer、IPA(Invariant Point Attention,AlphaFold2 里那一层)。这些名字不用背,只需知道它们的作用是让「物理上等价的输入」得到「物理上等价的输出」。
3.3 三种范式:从坐标扩散到 SE(3) 扩散
Section titled “3.3 三种范式:从坐标扩散到 SE(3) 扩散”| 范式 | 被去噪对象 | 代表工作 | 特点 |
|---|---|---|---|
| 坐标扩散 | Cα / 全原子坐标 | 早期结构扩散 | 直观;但坐标本身没物理约束,训练难 |
| SE(3) 扩散(当前主流) | 每个残基的旋转 + 平移 | RFdiffusion 及后代 | 直接在 SE(3) 流形上加噪去噪,结构更物理合理 |
| 联合扩散(结构+序列) | 结构 + 氨基酸类别 | AlphaFold3 风格 | 结构和序列同时生成,应用最广 |
为什么会朝 SE(3) 扩散演化:在坐标空间加高斯噪声,会拉长键、扭曲键角,网络得花大量能量学「回到合理化学」;而在 SE(3) 空间加噪,键长键角天然保持,只在「每个残基往哪转、往哪走一点」上做扰动——训练效率高得多,样本质量也更好。
只保留讲解用的公式(SE(3) 扩散最简版本,不要求手推)。对每个残基 ,平移部分像常规 DDPM 一样在欧氏空间加高斯噪声,旋转部分在 SO(3) 流形上加噪:
必记含义:平移那行和第 2 章的 DDPM 完全同构;旋转那行是「在旋转空间的常规扩散」——不是先转成欧拉角再加高斯(那会踩万向锁),而是直接在旋转矩阵的切空间上加高斯,再指数映射回去。两条独立,各有各的 调度。
3.4 关键步骤逐步拆开
Section titled “3.4 关键步骤逐步拆开”以「SE(3) 扩散生成蛋白骨架」为例:
flowchart TB
Cond["条件 y<br/>功能位点/长度/对称性"] --> Enc["条件编码"]
Noise["初始化 每残基旋转/平移各自的噪声"] --> Step
Enc --> Step
Step["等变去噪网络<br/>预测每步位姿更新"] --> Iter{"t 大于 0 ?"}
Iter -->|"是"| Step
Iter -->|"否"| Refine["侧链填充 / Rosetta 精修(可选)"]
Refine --> Eval["评估 AF2 重折叠 + clash + 目标满足"]
- 步骤 A · 骨架加噪/去噪(结构主循环):核心生成过程,从「完全随机的位姿」逐步去噪到「物理合理的骨架」。训练时步数通常 100–1000,采样时可用 DPM++ 加速到 20–50。旋转用 SO(3) 分布、平移用高斯,两者分别调度。新手不用碰这两个调度,用官方默认,只调采样步数——步数太少(< 10)结构乱七八糟,步数太多(> 200)完全不加速。
- 步骤 B · 条件注入:按第 6 章三大方式选。功能位点(「第 30–50 号残基必须构成某种口袋」)走模板式条件(类似 ControlNet,把目标位置的位姿约束作控制通道);参考骨架走 cross-attention(把参考骨架编码成 token);对称性走硬约束(数据对称化或采样时投影到对称流形)。
- 步骤 C · 侧链填充 + 精修(可选后处理):大多数结构扩散只生成骨架(Cα + N + C + O)。要用到实际功能,需侧链回填(Rosetta / 专门的侧链扩散模型)+ 物理精修(Rosetta relax / OpenMM 短 MD)。这一步严格说不是扩散的一部分,但生物落地几乎必需——单纯扩散结构常有小 clash。
- 步骤 D · 评估:AF2 self-consistency:这是金标准,下一节(§7 RFdiffusion 深案例)会完整展开。
3.5 预期结果与常见失败
Section titled “3.5 预期结果与常见失败”成功的样子:骨架的 AF2 self-consistency TM-score > 0.7(越高越好),无严重 clash(原子间距 < 2Å 的比例 < 1%),目标功能位点几何误差 < 1Å。
| 失败现象 | 可能原因 | 处理 |
|---|---|---|
| 结构像一团面条、缺二级结构 | 训练不充分 / 步数太少 | 增加训练轮数;采样步数 20 → 50 |
| self-consistency TM-score 长期 < 0.4 | 生成分布偏离真实蛋白分布 | 检查数据集;引入序列联合训练 |
| 有严重 clash | 缺少物理精修 | 加 OpenMM relax;训练时加 clash 惩罚 |
| 生成的「活性位点」不像功能位点 | 条件注入太弱 | 从 cross-attn 换成 ControlNet 风格模板控制 |
4. 轨道二:小分子与配体生成
Section titled “4. 轨道二:小分子与配体生成”4.1 四要素快照
Section titled “4.1 四要素快照”| 要素 | 内容 |
|---|---|
| 输入 x | 分子(原子集合 + 键;或原子 3D 坐标) |
| 输出 | 一批候选分子(2D 图 / 3D 构象 / SMILES) |
| 条件 y | 靶蛋白口袋、目标性质(logP / QED / SA)、参考分子、指定片段(scaffold) |
| 评估 | 有效性 + 独特性 + 新颖性 + 对接分数 + 物化性质 + 合成可及性 |
一句话定位:小分子扩散是「在分子空间里去噪」,可以是 2D 图(原子 + 键),也可以是 3D 坐标(配体在口袋里的构象)。选哪种,取决于你要不要空间信息。
4.2 三种表示,三条路线
Section titled “4.2 三种表示,三条路线”flowchart TB M["一个小分子"] --> R1["① SMILES 字符串"] M --> R2["② 2D 分子图 原子+键"] M --> R3["③ 3D 原子坐标"] R1 -->|"适合"| P1["文本序列扩散"] R2 -->|"适合"| P2["图扩散 节点/边同时扩散"] R3 -->|"适合"| P3["3D 等变扩散 需 E(3) 等变"]
| 你要做的事 | 选哪种表示 |
|---|---|
| 只要分子拓扑,不管构象(先验筛选、生成候选骨架) | 2D 图扩散或 SMILES 扩散 |
| 需要在口袋里的构象(口袋条件生成、对接评分) | 3D 坐标扩散 |
| 想复用 LLM 训练框架 | SMILES 扩散(当文本处理) |
主流走向:现在最热的「口袋条件配体生成」几乎都用 3D 扩散——因为口袋是 3D 的,配体必须在 3D 空间里和口袋咬合。
4.3 关键步骤(以 3D 口袋条件配体扩散为例)
Section titled “4.3 关键步骤(以 3D 口袋条件配体扩散为例)”flowchart TB
Pocket["蛋白口袋 y<br/>原子云+元素+电荷"] --> Enc["等变编码器<br/>EGNN/SE(3)-Transformer"]
N["初始化 随机原子云"] --> Step
Enc --> Step
Step["等变去噪网络<br/>联合更新 原子类型+坐标"] --> Iter{"t 大于 0?"}
Iter -->|"是"| Step
Iter -->|"否"| Post["有效性检查 化合价/环"]
Post --> Dock["对接验证 Vina"]
- 步骤 A · 分子加噪:原子类型(离散:C/N/O)用离散扩散或先 embed 成连续向量再高斯扩散;原子坐标(连续)走常规高斯扩散;键的存在/类型(离散)通常不显式扩散,采样后由化合价规则或专门的键预测头补上。心智模型是把分子想象成「一堆带颜色的小球 + 弹簧」,加噪时小球位置抖动、颜色以小概率随机换,直到变成一团白色泡沫;去噪就是从泡沫里回捞出一个合理分子。
- 步骤 B · 条件(口袋)注入:口袋原子云过等变编码器 → 每个口袋原子一个特征 → 主干里用 cross-attention(Q 来自被去噪的配体原子,K/V 来自口袋原子)。必须保证复合物的等变性:旋转/平移整个复合物,去噪结果也跟着转/移,否则网络学到「绝对朝向」信号就会崩。
- 步骤 C · 采样后处理:单靠扩散生成的分子常有小毛病——化合价违规(用 RDKit 修剪或丢弃)、无效 SMILES(语法检查丢弃)、巨环/无法合成(SA score 过滤)、与口袋 clash(Vina 快速对接过滤)。
- 步骤 D · 关键评估指标:Validity > 95%、Uniqueness > 95%、Novelty > 90%、QED > 0.5、SA score < 4、Vina 对接分数相对参考分子有优势。第 7 章有完整的分子评估菜单。
只保留讲解用的公式(联合扩散:原子类型 + 坐标)。一个训练步是两条损失加权相加——坐标那项是连续 MSE 去噪损失,原子类型那项是交叉熵(因为类型是离散类别):
4.4 两个典型任务与常见失败
Section titled “4.4 两个典型任务与常见失败”任务 A · 从头设计针对某激酶的配体:x = 3D 配体分子,y = 口袋原子云,注入方式 = cross-attn,评估 = Vina 对接 + QED + SA + 与已知抑制剂的 Tanimoto 相似度分布。
任务 B · Scaffold-hopping(固定骨架,替换外围基团):x = 分子中「未固定」的部分,y = 固定的 scaffold(作为模板条件注入,类似图像 inpainting——把 scaffold 原子直接作为「不加噪的区域」),评估 = 新分子的性质变化 + 保留 scaffold 的成功率。
| 失败现象 | 可能原因 | 处理 |
|---|---|---|
| Validity 只有 50–70% | 键预测头没训好 / 化合价约束缺失 | 加化合价惩罚;或改「先扩散 3D 再化合价预测」两阶段 |
| 生成分子巨大、SA 极高 | 训练集偏大分子 / 没有原子数控制 | 训练时加「原子数」作额外条件 |
| Docking 好但都是「金属钉子」 | 学到口袋几何但没学到药物形状先验 | 加强类药性过滤(QED / SA / Lipinski) |
| 生成分子和参考几乎一样 | Novelty 太差 | 加多样性正则;采样时提高温度 / 降低 CFG |
一个 RL 边界提醒(给刚学完强化学习的你):你会在文献里看到「用 RL 微调扩散策略」(DDPO、DPOK 之类)把分子生成往「打分更高」的方向偏。这是可行的,但要看清顺序——它是在一个已经会生成合理分子的扩散模型之上,再套一层 RL 微调:扩散负责建「合理分子长什么样」的分布,RL 负责在这个分布里往「对接分 / QED 更高」的方向挪。扩散在前、RL 在后,顺序不能反。如果一上来就想用 RL「从零优化出一个分子」,你会得到一堆对接分虚高、化学上却根本不合理的「金属钉子」——因为没有扩散先兜住「像药物分子」这个先验。这正是第 1 章金句的落地:扩散拟合分布,RL 优化奖励,两者串联但不互相替代。
5. 轨道三:单细胞与空间转录组
Section titled “5. 轨道三:单细胞与空间转录组”5.1 四要素快照
Section titled “5.1 四要素快照”| 要素 | 内容 |
|---|---|
| 输入 x | 表达向量(基因 × 1)或空间表达图(基因 × 空间位置) |
| 输出 | 一批合成细胞 / 合成组织切片的表达谱 |
| 条件 y | 细胞类型、批次、扰动(药物 / 敲除)、空间坐标、发育时间 |
| 评估 | 分布匹配(不是像素级)+ 下游任务保持(分类 / 聚类 / 轨迹) |
一句话定位:单细胞扩散是「在基因表达空间里去噪」,被去噪对象是高维、稀疏、非负的表达向量——和图像差别最大的一类。
5.2 和图像最不一样的三个点
Section titled “5.2 和图像最不一样的三个点”| 特性 | 图像 | 单细胞表达 |
|---|---|---|
| 维度 | 固定(H×W×3) | 高维(约 2 万基因),且稀疏(大量 0) |
| 数值 | [0,255] 有界 | 非负、长尾、technical dropout |
| 空间性 | 局部相关(卷积友好) | 基因间是调控网络,非空间邻接 |
关键含义:卷积那套「局部性先验」在这里不成立。所以单细胞扩散常用 MLP / Transformer 主干,不用 U-Net 的空间卷积。这是一个新手最容易踩的坑——直接把图像的 U-Net 搬过来,模型会因为「假设了不存在的空间邻接」而学不到基因间的真实调控关系。
5.3 关键步骤(差异点)
Section titled “5.3 关键步骤(差异点)”- 预处理:log1p 归一化、选高变基因(HVG)、可选 PCA 降维。
- 加噪空间:可以在原始表达空间,也可以先 VAE 压到 latent 再扩散(scVI 风格 + 扩散)。
- 条件注入:细胞类型 / 批次用加法或 cross-attn;扰动可以用「差值向量」。
- 评估:核心是分布匹配,不是单样本重建。
5.4 评估:为什么不能用「看起来像」
Section titled “5.4 评估:为什么不能用「看起来像」”单细胞生成没法肉眼看,评估完全依赖统计与下游任务:
| 评估维度 | 具体方法 |
|---|---|
| 分布匹配 | 生成 vs 真实的 UMAP 叠加;每个基因的边缘分布 KS 检验 |
| 细胞类型保持 | 用真实数据训的分类器给合成细胞打标,看分布对不对 |
| 基因-基因相关 | 比较生成 / 真实的基因共表达矩阵 |
| 下游任务(TSTR) | Train on Synthetic, Test on Real:用合成数据训模型,在真实数据上测 |
| 批次校正效果 | 生成「去批次」的数据,看跨批次混合程度(kBET / iLISI) |
一句话:单细胞生成的评估思想和图像完全不同——图像看「不像」,单细胞看「分布 / 关系 / 下游用不用得上」。这也是第 7 章反复强调的「scRNA 的 L2 结构层是命根子」——L1 完美但 gene-gene 相关塌了,生物学上一钱不值。
任务示例:你有 3 个批次的 PBMC 单细胞数据,想生成「去除批次效应」的合成数据用于下游。x = 单细胞表达向量,y = 批次 id + 细胞类型,注入方式 = 批次用加法 embedding(配合训练时随机置空 → 采样时可「抹掉批次」),评估 = kBET(批次混合度)+ 细胞类型分类保持 + marker 基因表达模式。
6. 轨道四:显微与病理图像
Section titled “6. 轨道四:显微与病理图像”6.1 四要素快照
Section titled “6.1 四要素快照”| 要素 | 内容 |
|---|---|
| 输入 x | 显微 / 病理图像(H&E、荧光、电镜等) |
| 输出 | 一批合成显微图 / 病理切片 |
| 条件 y | 染色类型、组织类别、疾病标签、mask(细胞 / 腺体轮廓)、低分辨率图(超分) |
| 评估 | FID / KID + 下游任务(分割 / 分类)+ 病理学家盲评 |
一句话定位:显微 / 病理图像扩散最接近自然图像扩散——可以直接复用 Stable Diffusion 那套,是四类里「入门最快」的。
6.2 和自然图像的三个关键差异
Section titled “6.2 和自然图像的三个关键差异”| 差异 | 说明 |
|---|---|
| 超高分辨率 | 全切片(WSI)可达 10 万 × 10 万像素 → 必须切 patch 或用 latent |
| 染色变异 | 同一组织不同医院染色差异大 → 常需染色归一化或用染色作条件 |
| 专家标注稀缺 | 病理标注贵 → 生成常用于「数据增强」补稀有类 |
6.3 关键步骤(差异点)
Section titled “6.3 关键步骤(差异点)”- 潜空间扩散优先:分辨率太高,几乎都用 LDM(latent diffusion)——先 VAE 压缩,再在 latent 上扩散。这正是隐空间扩散的典型用武之地(见 隐空间扩散深入)。
- 染色归一化:训练前把不同来源图像的染色统一(或反过来,把染色风格作为条件)。
- 条件注入:mask → ControlNet;类别 → 加法;文本描述 → cross-attn。
- inpainting:病理里常用「补全」——在已知组织背景上生成特定病变区域。
6.4 落地示例与合规红线
Section titled “6.4 落地示例与合规红线”任务:某罕见癌症亚型病理切片只有 200 张,想扩增用于训练分类器。x = 病理图像 patch,y = 癌症亚型标签(+ 可选 mask),注入方式 = 类别加法 +(可选)mask 走 ControlNet,评估 = FID + TSTR(合成数据训分类器在真实测试集上的表现)+ 病理学家盲评。
关键提醒:医学图像生成有合规和伦理红线——合成数据不能替代真实诊断依据;要防止「生成出训练集里的真实患者信息」(隐私泄漏,需做 membership inference 检查);染色不一致是最容易翻的车(模型学到了某台扫描仪的色调)。这些红线在第 7 章的病理评估菜单里有对应的硬指标。
7. 深度案例:RFdiffusion 蛋白设计流水线
Section titled “7. 深度案例:RFdiffusion 蛋白设计流水线”前面四条轨道给了「地图」。这一节挑最成熟、最能体现「扩散不是终点而是流水线一环」的蛋白设计,做一次完整拆解。它来自 Baker 实验室(Watson et al., Nature 2023)——当前 AI 蛋白设计最出名的工作。
7.1 一图看懂:三段式流水线
Section titled “7.1 一图看懂:三段式流水线”flowchart TB S["任务规格<br/>长度/motif/靶点hotspot/对称"] --> R["RFdiffusion<br/>SE(3) 骨架去噪采样"] R --> B["候选骨架池<br/>N 个 backbone"] B --> M["ProteinMPNN<br/>每骨架产多条序列"] M --> F["AF2/ESMFold<br/>折回结构 + pLDDT"] F --> SC["self-consistency<br/>scTM / scRMSD"] SC --> L4["硬过滤<br/>clash / 疏水核 / 可表达"] L4 --> W["湿实验 / 结合测定<br/>真正的终点"]
造车比喻(记住这一句):RFdiffusion 画车架三维草图;ProteinMPNN 按草图选钢材牌号与零件编号(氨基酸序列);AlphaFold 把装好的车再扫一遍 3D,看和原草图对不对得上。
7.2 先把边界钉死:谁产结构、谁产序列、谁做裁判
Section titled “7.2 先把边界钉死:谁产结构、谁产序列、谁做裁判”这是全章最重要的一段,请读到能默写。 生物同学接触 RFdiffusion 的第一句常见错误就是「用它生成一条序列」——把这条错误刨掉,就已经能避开一大批开题误区。
| 模块 | 角色 | 输入 | 输出 | 是扩散吗? | 训练目标 |
|---|---|---|---|---|---|
| RFdiffusion | 骨架/结构生成 | 任务规格(长度、motif、靶点、hotspot、对称) | 残基级 frame(位置 + 朝向),在 SE(3) 上 | ✅ 是 | 去噪:从含噪 frame 恢复干净 frame |
| ProteinMPNN | 反向折叠/序列设计 | 一个骨架 | 适配该骨架的氨基酸序列(可多条) | ❌ 不是 | 交叉熵:给定骨架下最大化真实序列似然 |
| AF2 / ESMFold | 结构预测/裁判 | 一条序列 | 预测的 3D 结构 + pLDDT | ❌ 不是 | 结构预测损失 |
三段口语纠错:
| 常说(误) | 更准确(对) |
|---|---|
| 「用 RFdiffusion 生成序列」 | 「用 RFdiffusion 生成骨架,再用 ProteinMPNN 设计序列」 |
| 「扩散直接设计出 binder 序列」 | 「扩散提出几何合理的结合骨架候选;序列与可折叠性还要后处理 + 过滤」 |
| 「和 ChatGPT 写蛋白一样」 | 「一个在 3D 几何流形(SE(3))上采样结构;一个在离散 token 上建模语言——任务空间不同」 |
一句总结:扩散产候选(骨架),MPNN 翻译成化学式(序列),预测器和实验做裁判——这是三种不同训练目标的模型协作,不要混用它们的成绩单。
7.3 原理深挖:五个「为什么」
Section titled “7.3 原理深挖:五个「为什么」”(1) 为什么建模空间是 SE(3) frame 而不是原子坐标? 蛋白骨架对整体旋转平移是等变的——把整个蛋白转一下、平移一下,还是同一个蛋白,模型不该学到「当分子恰好朝北时才认识它」这种伪先验。每个残基用一个刚体坐标系(frame:位置 + 朝向 )表示。平移部分像普通高斯扩散,旋转部分在 SO(3) 上做扩散——整个网络天然 SE(3)-等变,与蛋白的物理事实一致。
(2) 为什么用 RoseTTAFold 主干、且是「微调」而非从零训? 核心逻辑:结构预测器已经隐含学到了「什么是合法的蛋白几何」,把它反过来当去噪器,等于免费获得强大的物理先验。作者从 RoseTTAFold 的 pretrained checkpoint 出发,把它的 3D 结构模块微调成去噪网络。类比:你已有一个训练有素的老木匠,懂各种榫卯(蛋白几何),现在只教他一件新工作——在乱糟糟的半成品里判断「下一凿子该往哪劈」(去噪方向),不用从零培训学徒。
(3) 为什么必须有 self-consistency 闭环(不是可选步骤)? 核心问题:RFdiffusion 输出的骨架,长得像蛋白骨架,但不保证真的能被某条氨基酸序列折叠出来——它可能是「几何幻觉」,像 AI 图像模型画出的六指人手。
flowchart LR
A["RFdiffusion 产骨架 B"] --> C["ProteinMPNN 产序列 s"]
C --> D["AF2/ESMFold 折叠 s 得 B'"]
D --> E{"B 约等于 B' ?<br/>比较 scTM / scRMSD"}
E -->|"是 自洽"| Pass["候选可信 进硬过滤"]
E -->|"否 自欺"| Fail["丢弃 骨架是几何幻觉"]
这个闭环重要在三点:一是训练目标 ≠ 验收目标——RFdiffusion 训的是去噪损失,你真正想要的是「骨架可被某条序列稳定折叠」,两者不等价,self-consistency 补上这个 gap;二是独立裁判——AF2 和 RFdiffusion 任务不同、网络不同,AF2 认可的骨架比 RFdiffusion 自己认可的可信得多;三是过滤真实作用——原论文里大量生成骨架的 scTM < 0.5(不自洽),只有过阈值的才值得进湿实验。
(4) 三类经典条件的注入原理。 RFdiffusion 的强大不在「能画蛋白骨架」,而在「能按你指定的条件画」:
- Motif scaffolding(部分固定坐标扩散):给定一个已知功能片段(活性位点等),设计一个能承载它的新骨架。做法是扩散过程中把 motif 残基的 frame「冻结」(不加噪、不去噪,始终等于给定坐标),其余残基照常去噪。这是图像 inpainting 的蛋白版——把部分「像素」固定,让扩散围绕它补全。
- Binder design(靶点表面 + hotspot 条件):给定靶蛋白 T,设计能特异结合它某位点的 binder。靶蛋白骨架作上下文输入(不去噪),用户标注若干 hotspot 残基,扩散只对 binder 部分加噪去噪。经验教训:hotspot 宜少而准(3–5 个)——太多太散则条件矛盾、界面几何差,太粗则相当于无条件。
- Symmetric design(对称性约束):设计寡聚体(同源二/三聚体、纳米笼)。只对一个亚基去噪,通过对称操作复制成多份。对称必须硬约束、不能软鼓励——软 loss 鼓励对称会生成「近似对称但不严格对称」的东西,多亚基装配需要严格对称。
(5) 为什么「结构扩散 + 序列模型 + 折叠预测」这条三段式是共识? 不是历史偶然,而是任务本身要求「生成 - 翻译 - 验收」三环各司其职:结构扩散在连续几何流形上探索新拓扑(省掉就只能在已知 fold 邻域改序列);反向折叠把几何翻译成可合成序列(省掉就有骨架没序列,无法合成验证);折叠自洽做独立裁判(省掉大量几何幻觉会进入湿实验,浪费预算)。
7.4 ProteinMPNN:为什么「反向折叠」必须是非扩散的独立一段
Section titled “7.4 ProteinMPNN:为什么「反向折叠」必须是非扩散的独立一段”RFdiffusion 只画草图;把草图翻译成可合成的氨基酸序列,是 ProteinMPNN(Dauparas et al., Science 2022)的活。
反向折叠问题:正向折叠是「序列 → 结构」(AF2 干的),反向折叠是「结构 → 序列」——给一个骨架,问哪些序列能稳定折叠成它。这是个独立难题:一个骨架通常有很多条可能序列(蛋白序列-结构关系是「多对一」的),要挑出最有利折叠、表达、不破坏功能的;序列是离散的(20 种氨基酸),结构是连续的。
为什么不用扩散:序列离散有限(20 类),离散扩散虽可行但没明显优势——GNN 消息传递 + 自回归解码在这个任务上更简单、更快、精度更高;训练数据量大(整个 PDB 的序列-结构对)、监督信号明确(真实序列就是 label),监督学习就够;采样一次只需一次前向 + 逐残基解码,比扩散多步采样快几十上百倍。这正是第 7 章「什么时候不该用扩散」的一个具体范例:输出空间离散、监督信号明确、无需探索,就不需要扩散。
关键旋钮:采样温度 。每个位置的氨基酸从概率分布里采样,温度小(如 0.1)分布锐化、每条序列质量高但彼此几乎一样(多样性低),温度大(如 1.0)分布拉平、多样性高但个别序列可能不折叠。实践默认 0.1–0.3,先低温看能不能折出来,再拉高温找多样性。因为你在一个骨架上要跑几十条序列送去折叠看谁自洽,温度决定了这批序列的「探索/利用」平衡。
7.5 Self-consistency 与独立裁判:AF2/ESMFold 在守什么
Section titled “7.5 Self-consistency 与独立裁判:AF2/ESMFold 在守什么”两条常用指标(记牢):
- scTM(self-consistency TM-score): 和折回结构 之间的 TM-score,0–1,越高越自洽。scTM ≥ 0.5 是「折叠成同一 fold」的入门线;单体骨架设计常用 ≥ 0.7;binder 常要求 ≥ 0.8(界面几何对亲和力敏感,容错度低)。
- scRMSD(self-consistency RMSD):主链 RMSD,越低越好,binder 常用 ≤ 2 Å。
为什么必须是「独立」裁判:如果用同一个网络既生成又验证,它必然自证成功。RFdiffusion 由 RoseTTAFold 微调而来,若用 RoseTTAFold 自己评价就打折了(同源信息泄漏);用训练数据、架构、目标都不同的 AF2 做裁判,可信度高得多。实践策略是分级筛:ESMFold(单序列快版,秒级)粗筛所有候选,AF2(金标准,慢)精筛,最后对少量顶尖候选做硬过滤(clash、疏水核、表面性质)送湿实验。
一个隐藏陷阱:「能自洽」≠「能折叠」≠「有功能」。能自洽(scTM 高)只是 AF2 觉得序列能折成骨架,是模型层面的一致;能折叠(湿实验表达可溶)是真实细胞里能表达且不聚集,AF2 说能实际未必能;有功能(binder 真结合)即使折叠正确还要功能面几何对,只有湿实验能验。这三层递进正是第 7 章四层评估框架的蛋白版——过 scTM 只是第一关,湿实验才是真正的下游终点。
7.6 报告约定与反樱桃采摘
Section titled “7.6 报告约定与反樱桃采摘”蛋白生成论文的「黄金三件套」报告:scTM 分布直方图(不是只报均值)、通过阈值的比例(例:1000 骨架里多少% 过 scTM ≥ 0.5)、每骨架最优序列的 scTM。第 7 章讲的 cherry-picking 陷阱在这里的具体动作:只报「生成了 10 个漂亮骨架」而不报 scTM 分布 = 不可信;只报最好 1 条 = 樱桃采摘;用 AF2 既当骨架来源又当裁判 = 循环自证。应报整个候选池的分布 + 通过率 + 湿实验成功率。
8. 四轨道横向对照
Section titled “8. 四轨道横向对照”把四条轨道放在一起,你能看清「同一套扩散框架,落到不同数据要换什么」:
| 维度 | 蛋白 | 小分子 | 单细胞 | 病理图像 |
|---|---|---|---|---|
| 被去噪对象 | SE(3) frame | 原子类型+坐标 | 表达向量 | 像素/潜向量 |
| 主干网络 | 等变网络(IPA 等) | 等变 GNN | MLP/Transformer | U-Net/DiT |
| 等变性 | SE(3) 强 | E(3) 强 | 无 | 无 |
| 条件注入 | 模板/cross-attn/硬约束 | cross-attn(口袋) | 加法(类型/批次) | ControlNet/加法 |
| 最硬评估 | scTM + 湿实验 | 对接 + SA + 合成 | TSTR + gene-gene | 下游分割 + 医生盲评 |
| 隐藏杀手 | 几何幻觉(clash) | 不可合成 | 稀有类被平均 | 染色/隐私 |
| 成熟度 | 高(RFdiffusion 系) | 中高(口袋条件热) | 中 | 高(复用图像) |
读表心法:越靠近「有明确物理/化学约束」的轨道(蛋白、小分子),越需要等变网络和硬评估;越靠近「统计分布」的轨道(单细胞),越要盯联合关系和下游任务;病理图像技术上最简单(复用图像扩散),但合规和隐私的坑最深。
把这张表用起来的顺序:拿到一个自己的生物生成任务时,不要先想「用哪个模型」,而是照这张表从左往右过一遍——先定被去噪对象(你的数据是坐标、图、向量还是像素),它直接决定主干网络和是否需要等变;再定条件注入方式(回看第 6 章的三大方式);最后、也是最关键的,先把「最硬评估」和「隐藏杀手」两列想清楚再动手训练。四条轨道里翻车的项目,绝大多数不是模型选错,而是评估这一列在开工时就没想明白——生成出一堆「看起来对」的东西,却没有任何独立于生成模型的方式判断它们到底能不能用。这也是为什么本系列把整个第 7 章都留给了评估与选型。
换句话说,四条轨道虽然数据形态天差地别,但踩坑的位置惊人地一致:都在「生成容易、验收难」这一点上。记住这句总纲,你就能把本章任何一条轨道的经验迁移到没讲过的新场景(比如空间蛋白质组、代谢物、RNA 二级结构)——先填四要素,再死磕评估。
9. 本章 Checklist
Section titled “9. 本章 Checklist”- 能对四类任务各填出「输入 / 输出 / 条件 / 评估」四要素
- 能说清蛋白/小分子 3D 扩散为什么需要等变网络
- 知道单细胞扩散为什么不用 U-Net、评估为什么不能看「像不像」
- 能默写 RFdiffusion 三段式:扩散产骨架 → MPNN 产序列 → AF2 做裁判
- 能解释 self-consistency(scTM)是什么、为什么裁判必须独立
- 记得「能自洽 ≠ 能折叠 ≠ 有功能」三层递进
- 能说清 motif / binder / symmetric 三类条件的注入原理
- 明白 ProteinMPNN 为什么是非扩散的(离散、监督明确、无需探索)
10. 自测 4 问
Section titled “10. 自测 4 问”Q1. 有人说「我用 RFdiffusion 生成了一批能结合某靶点的蛋白序列」。这句话哪里错了?
参考要点
RFdiffusion 不生成序列,只生成骨架(frame)。序列是 ProteinMPNN 从骨架反推的,再用 AF2/ESMFold 折回来做 self-consistency 验证。正确说法是「RFdiffusion 生成结合骨架候选,ProteinMPNN 设计序列,AF2 做裁判」。
Q2. 为什么直接在欧拉角上加高斯噪声不是给蛋白骨架加噪的好主意?
参考要点
欧拉角有万向锁(gimbal lock)问题——某些朝向下三个角会退化耦合,加噪的几何意义被破坏。正确做法是直接在 SO(3) 流形(旋转矩阵的切空间)上加噪再指数映射回去,保证旋转扰动的各向同性和等变性。
Q3. 一个蛋白骨架的 self-consistency scTM = 0.8 但结构还有很多 clash,说明什么?
参考要点
说明「能自洽」不等于「物理完美」。scTM 高只说明 AF2 认为这个序列能折成这个 fold(拓扑一致),但局部原子堆积(clash)是另一回事,需要 L4 硬约束(clash rate)单独检查 + 物理精修(Rosetta relax / OpenMM)。这正是「能自洽 ≠ 能折叠 ≠ 有功能」的体现。
Q4. 你想做「口袋条件的配体生成」,为什么必须走 3D 扩散而不能只做 SMILES 扩散?
参考要点
因为口袋是 3D 的,配体要和口袋在空间上咬合——需要知道每个原子在口袋里的 3D 位置,才能算对接、判断几何互补。SMILES 只有拓扑没有构象,无法表达「配体在这个口袋里怎么摆」。而且口袋条件注入要求复合物的 E(3) 等变性,这只有在 3D 表示上才能保证。
11. 与其他章节的关系
Section titled “11. 与其他章节的关系”- 第 1 章 生成直觉:本章是第 1 章 §6「生物应用地图」四类落点的逐一深化。
- 第 6 章 训练与采样旋钮:本章大量用到第 6 章的条件注入三方式(cross-attn、ControlNet、加法)和 CFG。
- 第 7 章 按数据结构选型:本章每条轨道的评估都对应第 7 章的评估菜单;RFdiffusion 的 self-consistency 是第 7 章四层评估的蛋白版。
- ProteinMPNN / RFdiffusion 蛋白质设计:蛋白工具链的实操教程。
- 隐空间扩散深入:病理图像用的 LDM 原理。
12. 延伸阅读
Section titled “12. 延伸阅读”| 文献 / 资源 | 为什么看 | 阅读深度建议 |
|---|---|---|
| Watson et al., RFdiffusion, Nature 2023 | 蛋白骨架扩散设计的奠基工作 | 精读方法与 self-consistency 设计 |
| Dauparas et al., ProteinMPNN, Science 2022 | 反向折叠序列设计的标准工具 | 读方法与温度旋钮 |
| EDM / GeoDiff 等分子扩散工作 | 3D 等变分子生成的代表 | 对照 §4 的四要素 |
| scDiffusion 系单细胞扩散 | 高维稀疏表达生成 | 对照 §5 的评估差异 |
| 计算病理学中的 latent diffusion 综述 | 病理图像生成与合规 | 对照 §6 的红线 |
说明:本章以四轨道落地逻辑与 RFdiffusion 案例为主;具体工具的安装与参数随版本演进,以官方仓库为准。
主题色
字体
字号
视觉效果
即将离开本站
你将前往外部网站:
该网站与本站无关,本站不对其内容、安全性或可用性负责。确定后将在新标签页打开。