分子动力学(MD)模拟通过积分牛顿运动方程,在计算机上模拟分子体系随时间的演化。该技能覆盖两个互补工具:OpenMM(https://openmm.org/)是支持 GPU 的高性能 MD 模拟引擎,提供 Python API 与灵活的力场支持;MDAnalysis(https://mdanalysis.org/)是用于读写和分析主流模拟软件轨迹的 Python 库。
安装方式: conda install -c conda-forge openmm mdanalysis nglview
或
uv pip install openmm mdanalysis
适用场景 当需要进行以下工作时可使用本技能:蛋白质稳定性分析(如突变对蛋白动力学的影响)、药物结合模拟(表征配体结合模式与停留时间)、构象采样(探索蛋白柔性与构象变化)、蛋白-蛋白相互作用(界面动力学与结合能量学)、RMSD/RMSF 分析(量化相对参考结构的涨落)、自由能估计(结合自由能或构象自由能)、膜模拟(脂双层中的蛋白)、内在无序蛋白(IDR 构象系综)研究。
核心工作流(OpenMM 模拟)
- 系统准备:从 PDB 文件加载结构,加载力场(如 amber14-all.xml 与 amber14/tip3pfb.xml),通过 Modeller 加氢并加溶剂(10 Å 边距、150 mM NaCl),创建 System 时使用 PME 长程静电、1.0 nm 非键截断、HBonds 约束、刚性水模型。
- 能量最小化:使用 LangevinMiddleIntegrator,优先 CUDA,其次 OpenCL,最后 CPU;调用 minimizeEnergy 去除立体冲突并保存最小化结构。
- NVT 平衡:设定温度(如 300 K),添加 StateDataReporter 与 DCDReporter,运行指定步数(如 50000 步 × 2 fs = 100 ps)。
- NPT 平衡与生产:添加 MonteCarloBarostat 控制压力,更新报告器(含密度),添加 CheckpointReporter 保存检查点,运行生产模拟(如 500000 步 × 2 fs = 1 ns)。
轨迹分析(MDAnalysis)
- 加载轨迹:使用 mda.Universe 读取拓扑与轨迹文件,输出原子数、帧数与时间范围。
- RMSD 分析:先用 align.AlignTraj 对齐,再用 rms.RMSD 计算,并可绘制 RMSD 随时间变化图。
- RMSF 分析:计算每个残基的柔性,按残基平均后返回残基编号与 RMSF 值。
- 蛋白-配体接触:按距离截断(如 4.5 Å)逐帧统计接触残基。
力场选择指南 标准蛋白:AMBER14(amber14-all.xml),水模型 TIP3P-FB;蛋白+小分子:AMBER14 + GAFF2,TIP3P-FB;膜蛋白:CHARMM36m,TIP3P;核酸:AMBER99-bsc1 或 AMBER14,TIP3P;无序蛋白:ff19SB 或 CHARMM36m,TIP3P。
系统准备工具 PDBFixer 用于修复原始 PDB 的常见问题(缺失残基、原子、加氢、标准化)。小分子参数化可通过 OpenFF Toolkit 或 ACPYPE 生成 GAFF2/OpenFF 参数。
最佳实践 MD 前务必最小化;生产前先平衡(NVT 50–100 ps → NPT 100–500 ps → 生产);使用 GPU(CUDA/OpenCL)可提速 10–100 倍;HBonds 约束下用 2 fs 时间步,HMR 下可用 4 fs;仅分析平衡后的轨迹(丢弃前 20–50%);保存检查点以便重启;溶剂化体系需周期性边界条件;带电体系静电用 PME 更准确。
智能体操作流程 检查环境(确认工具版本与输入格式,计算前先 sanitize 分子);明确输入(格式、标识符与参数,不确定时询问而非猜测);先跑小规模版本并检查输出;按上述说明执行完整任务;验证结果(无效结构、单位一致性、预测模型适用域);报告运行内容(版本、命令、参数)、已检查项与仍不确定项。
异常处理 分子解析或 sanitize 失败:报告并跳过,说明原因,绝不静默丢弃或修改结构;指令中的函数、标志或端点在当前安装版本中缺失:查阅已安装版本文档(help()、--help、官方文档)后调整并告知用户,绝不臆造 API;必需输入、标识符或参数不明确:询问用户,或在运行前明确说明假设。
完整性规则 绝不编造结果、参数、标识符、引用或统计;无法运行或验证时如实说明;计算预测是假设而非实验结果,需明确标注;版本相关细节可能过时,应以已安装版本的官方文档为准;涉及花钱、占用共享 GPU 或云配额、触碰个人或患者数据、不可撤销的操作前需先询问。
相关技能 rowan:云端分子建模与药物化学工作流平台,提供 Python API。