参考:https://github.com/Tangcyu/Gen-COMPAS
文献:https://www.nature.com/articles/s41586-026-11025-1
核心:扩散模型 + 迭代增强采样(committor 引导)找 A↔B 过渡态 / 反应路径
背景:体系两个稳定态 A、B(两个复合物结构)。
A、B 是势能面上两个极小点,中间过渡态 TS 是鞍点,属于稀有事件;
普通 MD 甚至常规增强采样很难直接采到,因为势垒高,自发穿越概率极低。
这套方法核心思路:扩散模型用来生成候选中间构象(猜测路径),再用 MD+committor 函数筛选、修正、更新模型,迭代收敛到真实反应通道和自由能面 FEL
Gen-COMPAS 简要解析
定位:面向蛋白质稀有事件(构象转变、折叠等)的生成式提交概率(committor)引导路径采样模块化管线,把扩散模型 + VCN变分提交网络 + MD模拟 + RiteWeight重加权整合在一起,用于采样跃迁路径、计算自由能面FEL。
用途:蛋白质稀有构象转变路径采样工具,用来解决分子动力学(MD)很难采样到的蛋白构象跃迁(A 态↔B 态),用扩散模型生成蛋白中间构象 + VCN 变分承诺网络学习反应坐标,迭代生成过渡路径、做分子模拟、计算自由能面。
核心思想
稀有事件模拟难点:直接MD很难采样两个稳态A↔B之间的过渡态区域。
- 扩散模型:生成大量蛋白质中间构象候选;
- VCN(Variational Committor Network):学习反应坐标,预测每个构象的提交概率committor q(从该结构最终流向状态B的概率,q≈0.5就是过渡区);
- 迭代闭环:用VCN筛选靠近q=0.5过渡区的生成构象,作为TMD(靶向分子动力学)的目标;跑TMD+无偏MD得到新轨迹;用RiteWeight对轨迹做统计重加权,得到可靠自由能景观;新数据回流,下一轮训练扩散和VCN,迭代提升采样。
两轮迭代流程(关键区别)
- Iteration 0(bootstrap启动轮,无VCN)
训练扩散 → 采样构象 → kmeans聚类选代表结构 → PDB加氢/设置占有率 → NAMD跑TMD+无偏MD → RiteWeight权重计算 → FEL自由能估计
只用初始A/B盆地的无偏MD轨迹训练扩散,做第一轮采样。
- Iteration ≥1(committor引导轮,核心)
训练扩散 →训练VCN→ 采样构象 →committor_slice:只保留q在0.5±VCN.q_variance附近的过渡区构象作为候选 → PDB处理 → NAMD模拟 → RiteWeight → FEL
用上一轮RiteWeight输出的数据训练VCN;只筛选过渡态附近结构,聚焦稀有跃迁路径。
主要模块(YAML统一配置管理)
- Generative:扩散模型,SchNet+注意力,生成蛋白构象;可逐轮调整噪声scale、训练epoch,前期高噪声提升构象多样性,后期降低噪声。
- VCN:学习committor概率;
q_variance控制过渡区筛选窗口;tau滞后时间在较宽范围结果稳健。 - Clustering:仅第0轮使用,对生成构象聚类提取代表结构。
- Occupancy:给PDB补氢、设置原子占有率,适配后续TMD可视化/模拟。
- NAMD:调用NAMD+Colvars,执行靶向MD(TMD)后接无偏MD;TMD力常数是重点调参项,不能过大造成结构畸变。
- RiteWeight:核心重加权算法(PNAS配套方法),计算轨迹统计权重,输出VCN训练数据;区分
transition_weight(VCN训练)与fel_weight(自由能面,时间对称)。 - FEL_estimate:由RiteWeight权重投影得到一维/二维加权自由能景观。
运行控制特点
- 主命令:
gen-compas,基于yaml配置;支持--dry-run预校验、--resume断点续跑、--stepwise分步暂停人工检查、单独执行/重跑单个步骤。 - 迭代由用户指定轮次,代码没有自动收敛判据,需要人工检查committor切片、TMD轨迹、FEL判断是否停止。
- 输出目录按迭代组织;
workflow_manifest.json记录各步骤状态,作为断点恢复依据;附带GUI工具gen-compas-config辅助编写/校验yaml配置。
依赖与环境
- Python/PyTorch做AI模型;MDTraj/MDAnalysis处理轨迹;
- 外部依赖NAMD(≥3.0.2,内置Colvars),NAMD不通过pip安装,需要单独部署。
- 提供Trp-cage蛋白demo,可复现论文算例。
核心调参要点
- TMD力常数:平衡RMSD收敛和结构稳定性;
- 扩散采样噪声:迭代早期大噪声扩构象多样性,后期小噪声精细化采样;
- VCN的τ滞后时间:不要极端过小/过大,中间区间结果不敏感;
评估指标不能只看生成模型loss,必须看下游MD诊断:TMD收敛性、committor双向一致性、多次独立运行可复现性。
迭代闭环在哪?
一句话总结:Gen-COMPAS构建迭代自增强闭环,用扩散模型生成候选构象,VCN锁定过渡态区域,结合NAMD分子动力学+RiteWeight统计重加权,高效采样蛋白构象跃迁稀有事件并估计自由能面。
A,B稳态初始MD轨迹 ↓ 【Iter0 Bootstrap】 train_diffusion → sample_diffusion → clustering → occupancy → NAMD(TMD+MD) → RiteWeight → FEL ↓(RiteWeight输出新轨迹,进入闭环) 【Iter≥1 Committor闭环】 train_diffusion → train_committor(VCN) → sample_diffusion → committor_slice(筛选q≈0.5) → occupancy → NAMD → RiteWeight → FEL ↑───────────────────────────────────────────────────────────────┘ (RiteWeight输出回流,开启新一轮迭代)这里有一个非常有意思的概念以及idea:committor函数,0.5概率值与鞍点区域 有某种对应
这个idea可以借鉴,比如说同样是蛋白质互作,可以用commitor去生成一个位于两个状态之间的过渡态构象(条件生成,至于两个状态如何设置看你自己定义,你自己定义状态A和B,数据如何获取)