摘要:OpenMM 是斯坦福 Pande 组开源的 GPU 分子模拟引擎,Python API 驱动,兼顾应用层开箱即用与库层嵌入开发。本章从两层架构、三种使用方式、与其他引擎的关系讲起,给出这套 35 章大百科的阅读地图。
关键字:OpenMM、分子动力学、GPU加速、Python API、MD引擎、开源软件、Eastman、斯坦福
【官方来源】docs.openmm.org User Guide §1 Introduction
【Linux 实测】OpenMM 8.5.2 / conda-forge / Python 3.11 / Ubuntu 22.04 / 消费级 GPU(12 GB 显存)
1. 一句话定位
OpenMM 由两部分组成:
- 一组库(libraries):让程序员把分子模拟功能嵌进自己的程序
- 一个应用层(application layer):让只想跑模拟的终端用户直接用
【官方来源】官方 User Guide 原文就是这个二分法。它没有"一个叫 OpenMM 的可执行程序"——所谓应用层,本质是一堆 Python 库,你用 Python 脚本串起来跑模拟。官方原话:“there is no program called ‘OpenMM’ that you run”。
初学者翻译:AMBER 的用法是"写 mdin → 跑 pmemd";GROMACS 是"写 mdp → 跑 gmx mdrun"。OpenMM 没有这一步——你写的就是一个 Python 脚本本身。听起来吓人,但官方教程的完整脚本只有 13 行,逐行讲解在系列第 05 篇。
2. 该引用谁(写论文必备)
【官方来源】任何使用 OpenMM 的工作应引用:
P. Eastman, R. Galvelis, R. P. Peláez, C. R. A. Abreu, S. E. Farr, E. Gallicchio, A. Gorenko, M. M. Henry, F. Hu, J. Huang, A. Krämer, J. Michel, J. A. Mitchell, V. S. Pande, J. PGLM Rodrigues, J. Rodriguez-Guerra, A. C. Simmonett, S. Singh, J. Swails, P. Turner, Y. Wang, I. Zhang, J. D. Chodera, G. De Fabritiis, and T. E. Markland. "OpenMM 8: Molecular Dynamics Simulation with Machine Learning Potentials." J. Phys. Chem. B 128(1), pp. 109-116 (2023).【补充】官方明确说:OpenMM 靠科研经费维持,引用就是支持项目。
3. 五平台架构
【Linux 实测】Platform.getNumPlatforms()输出:
Platform speed Reference 1 # 纯 C++ 参考实现,最慢最准,用于验证 CPU 10 # 多线程 CPU CUDA 100 # NVIDIA GPU OpenCL 50 # 跨厂商 GPU(NVIDIA/AMD/Intel/Apple)【官方来源】User Guide §3.7.1 原文:“OpenMM includes five platforms: Reference, CPU, CUDA, OpenCL, and HIP.”
| 平台 | 硬件 | 谁该用 |
|---|---|---|
| Reference | 任意 CPU | 验证正确性(结果基准) |
| CPU | 多核 CPU | 无 GPU 机器;跑小体系 |
| CUDA | NVIDIA GPU | NVIDIA 用户首选(本机用的这个) |
| OpenCL | 多厂商 GPU | macOS(系统自带);NVIDIA/AMD/Intel |
| HIP | AMD GPU (ROCm) | AMD Linux/Windows 用户 |
【踩坑】macOS 没有 Metal 后端。8.5 官方 Platform-Specific 文档(Ch.11)只列 OpenCL/CUDA/HIP/CPU 四种 GPU/CPU 平台详情。Apple Silicon 用户走 OpenCL。
4. 许可证与资金模式
【官方来源】GitHub README “License Information”:
“OpenMM is free and open-source software. There are several licenses which cover different parts of OpenMM, but most of the source code is covered by the MIT license or the GNU Lesser General Public License (LGPL). Portions copyright © 2008-2025 Stanford University and the Authors.”
【Linux 实测】conda-meta 包元数据:license: LGPL-3.0-or-later(conda-forge 包整体标注)。
初学者翻译:商用友好。MIT/LGPL 都是宽松许可,可以闭源商用,LGPL 部分动态链接即可。
5. 项目历史速览(GitHub Releases 实测)
| 版本 | 发布 | 要点 |
|---|---|---|
| 5.2 | 2013-10-02 | 首个 GitHub release(仓库 2013-05-20 创建) |
| 6.0 | 2014-02-22 | — |
| 7.1 | 2017-02-03 | CustomForce 全局参数导数、Gay-Berne 势 |
| 7.5.0 | 2020-12-09 | Amber19/CHARMM36 力场 XML |
| 8.0.0 | 2023-01-31 | ML 势函数支持(OpenMM-Torch/ML 插件基础)、CPU 平台大优化 |
| 8.5.2 | 2026-06-08 | 当前版(Python 3.11 实测通过) |
6. OpenMM 的三个"反常"设计(为什么它值得学)
反常 1:力场是 XML,不是二进制表
AMBER 把参数编进 prmtop,GROMACS 用 itp。OpenMM 把力场写成明文 XML(amber19-all.xml),ForceField类解析。好处:力场模块化组合(蛋白 XML + 水 XML + 离子 XML 各自独立)、可手写扩展(Ch.7 教你写自己的 XML)。
反常 2:模拟逻辑全在 Python
从建体系到跑完,全部是一个 Python 脚本。没有"引擎"和"胶水脚本"的界限——这就是为什么它能和 PyTorch(ML 势函数)、主动学习循环、自定义分析无缝咬合。
反常 3:自定义力 = 写数学表达式
CustomBondForce('0.5*k*(r-r0)^2')——直接写字符串,引擎 JIT 编译成 GPU kernel。增强采样的 bias、容器约束、非标准势都不需要碰 C++。这是 AMBER/GROMACS 用户改 C 源码才能做的事。
7. 生态位:什么时候用 OpenMM
你的需求: ├─ 已有 AMBER prmtop,想用 Python 灵活控制 → OpenMM(原生读 prmtop) ├─ 增强采样(metadynamics/aMD/replica exchange)→ OpenMM 内置(§3.7.16) ├─ ML 势函数(ANI-2x/MACE/NequIP)→ OpenMM-Torch 插件 ├─ 自定义 bias potential → CustomForce(唯一这么方便的) ├─ TI/FEP/MMGBSA → AMBER 工具链更成熟 └─ 膜体系大生产跑 → GROMACS 性能强 + CHARMM-GUI 联动8. 学习资源(官方链接全录)
【官方来源】
- 官网:https://openmm.org/
- User Guide:https://docs.openmm.org/latest/userguide/
- Python API:https://docs.openmm.org/latest/api-python/
- C++ API:https://docs.openmm.org/latest/api-c++/
- FAQ:https://github.com/openmm/openmm/wiki/Frequently-Asked-Questions
- 讨论区:https://github.com/openmm/openmm/discussions
- Cookbook & Tutorials:https://openmm.github.io/openmm-cookbook/latest
下一篇:02 · 安装
系列导航:本专栏分子动力学模拟-OpenMM(35 章大百科:官方 User Guide / Tutorials / Cookbook / examples 全覆盖)
我的专栏
| 蛋白 / 抗体 / 多肽 / 核酸 | 分子模拟 / 动力学 / 对接 | 药物 / 设计 / 案例 | AI / Agent / 大模型 |
|---|---|---|---|
| 开源蛋白结构预测 | 分子模拟基础 | 小分子药物设计案例 | AI Agent系列 |
| 开源蛋白生成方法实践 | 分子动力学模拟-Amber | 蛋白药物设计案例 | 化学大模型 |
| 开源多肽设计模型 | 分子动力学模拟-Gromacs | 多肽药物设计案例 | 《AI Agent原理与实战》 |
| 开源多肽性质预测 | 分子动力学模拟-OpenMM | 开源小分子生成设计 | CADD中的机器学习模型 |
| DNA/RNA药物设计 | 結合自由能 | 开源药代动力学软件 | 高效计算配置 |
| siRNA药物设计模型 | UCSF DOCK系列 | 我胡师兄说药 | |
| ASO药物设计模型 | rDock系列 LeDock系列 gnina系列 |