1.3 GROMACS 定位与第一个命令 本节摘要:GROMACS 是以性能见长的开源分子动力学引擎:一切代价都为"每秒多推几步"而付,代价是把工作流拆成结构、拓扑、参数三种文件,运行前先编译成 tpr。本节讲清它的设计哲学与生态位,给出三条安装路线的选择依据,用 gmx --version 做安装体检,并把"文件如何变成轨迹"的管线走通——这是第2章搭台与第4章开演之间必须打通的一条暗线。 1.2 拆完了力场骨架,物理部分暂告一段落。接下来是排练场地:软件本身。选 GROMACS 还是别的引擎(AMBER、NAMD、OpenMM、LAMMPS),对课题的影响远比想象中小——力场与分析方法大多可迁移,真正被绑定的是工作流习惯。
本节摘要:GROMACS 是以性能见长的开源分子动力学引擎:一切代价都为"每秒多推几步"而付,代价是把工作流拆成结构、拓扑、参数三种文件,运行前先编译成 tpr。本节讲清它的设计哲学与生态位,给出三条安装路线的选择依据,用 gmx --version 做安装体检,并把"文件如何变成轨迹"的管线走通——这是第2章搭台与第4章开演之间必须打通的一条暗线。
1.2 拆完了力场骨架,物理部分暂告一段落。接下来是排练场地:软件本身。选 GROMACS 还是别的引擎(AMBER、NAMD、OpenMM、LAMMPS),对课题的影响远比想象中小——力场与分析方法大多可迁移,真正被绑定的是工作流习惯。而 GROMACS 的工作流恰好把"一次模拟"切成了边界清晰的几步,这既解释了它为什么快,也解释了为什么初学者容易被它的文件系统劝退。本节末尾的文件管线图,会贯穿全书每个实操章节。
GROMACS 起源于格罗宁根大学(Herman Berendsen 组),从 1990 年代初发布至今一直是学术 MD 的主力引擎之一,现为自由软件(LGPL,核心库另有例外条款),由社区基金会维护年度大版本。它的历史包袱比很多商业软件少,工程上的激进却更多:率先把内层循环按 CPU 缓存重排,率先把非键计算整体搬到 GPU,率先做域分解并行。
"快"的来源可以概括为三层,正好对应 6.3 的三个调优旋钮:
对使用者的含义很实际:同样的机时,GROMACS 通常能买到更长的模拟时间;但代价是它假设你按它的方式组织文件。理解这个假设,比背命令更重要。
| 路线 | 适用场景 | 优点 | 代价 |
|---|---|---|---|
| conda-forge | 个人工作站、课堂、快速试错 | 一条命令装好,版本新 | GPU 版本依赖环境变量配置 |
| 发行版包(apt 等) | Linux 集群管理员预装 | 省心、与模块系统集成 | 版本往往偏旧 |
| 源码编译 | 集群上压性能、要定制插件 | 可开 GPU、MPI、SIMD 全套优化 | 编译链门槛,半小时起步 |
动手建议:个人机器走 conda,集群上有管理员装的就用管理员装的;只有当你发现版本太旧缺关键功能(比如某年新增的 C-rescale 恒压器)时再自己编。以下会话假设已可用 gmx 命令。安装体检三连:
# 1) 版本与编译选项:看 GPU 支持与 SIMD 指令集 $ gmx --version GROMACS version: 2024.2 Precision: mixed # 常见默认:混合精度,够用且快 Memory model: 64 bit MPI library: thread_mpi # 单机多线程够用;跨节点需 MPI 版本 OpenMP support: enabled GPU support: enabled SIMD instructions: AVX2_256 # 越新越快,但要求 CPU 支持 # 2) 看 demo 与工具是否齐全 $ echo "pdb2gmx" | gmx -h 2>/dev/null | head -n 8 # 3) 官方自带教程数据也可以借此确认安装完整 $ gmx --version | grep -i data Data prefix: /opt/conda/share/gromacs
三行输出各查一件事:版本与精度(写论文要报)、GPU 与 MPI 支持(决定 6.3 的跑法)、数据目录(力场都在里面,2.2 会去那里翻参数)。
GROMACS 的核心习惯是"先编译、后运行"。grompp(GRoningen Molecular Processing)把三样输入——坐标文件(gro/pdb)、拓扑(top/itp)、运行参数(mdp)——编译成单一的二进制 tpr(run input file),mdrun 只吃 tpr。好处是运行时无歧义:tpr 里冻结构造、参数与拓扑的完整快照,一年后重跑仍分毫不差;坏处是新手常在三样输入的一致性上栽跟头(原子数对不上是第一大崩溃源,见 4.3)。

一条最小的管线会话(第2章才会真正构建体系,这里先看骨架)。用系统自带的演示结构即可:
# grompp 三件套齐活后的编译;-f 读 mdp,-c 读坐标,-p 读拓扑 $ gmx grompp -f em.mdp -c solv_ions.gro -p topol.top -o em.tpr :-) GROMACS - gmx grompp, 2024.2 (-: ... NOTE 1 [file topol.top]: 体系净电荷为 -4.000e+00,已按你的设置处理 There was 1 NOTE ← NOTE 可留意,WARNING 必须处理(见 4.1) # mdrun 吃 tpr;-deffnm 统一输出文件名前缀 $ gmx mdrun -deffnm em Steepest Descents: Tolerance (Fmax) = 1.00000e+03 Number of steps = 50000 Potential Energy = -3.12345e+05 Maximum force = 7.89012e+02 on atom 1234
看到 "Maximum force" 低于 1000 kJ/mol/nm,就是 3.5 的收敛判据达标——这里提前亮相,让你对后面每一章的数字都有个照面。
GROMACS 的几十个子命令可以按管线位置记,不必背:
| 阶段 | 命令 | 读什么 → 吐什么 |
|---|---|---|
| 搭台 | pdb2gmx | 结构 → 拓扑 + 处理后结构 |
| 搭台 | editconf / solvate / genion | 结构 → 新结构(盒子/溶剂/离子) |
| 走台 | grompp | mdp + 结构 + 拓扑 → tpr |
| 走台 | mdrun | tpr → 轨迹与能量 |
| 复盘 | trjconv | 轨迹 → 预处理后轨迹 |
| 复盘 | rms / rmsf / rdf / hbond | tpr + 轨迹 → xvg 数据 |
| 复盘 | energy | edr → xvg 能量曲线 |
| 加演 | wham / bar | 直方图或 dhdl → PMF / 自由能 |
有个对新手特别友好的设计:所有子命令都接受管道参数,交互时会打印可选项目让你挑——比如 gmx energy 运行后会列出全部能量项让你勾选。本册的原则是脚本化:加 -b/-e 与具体项名,把交互变成可复现的命令行。
装不上或装了找不到 GPU 怎么办? 先分清三件事:conda 装的 CPU 版没有 GPU 支持(换 gpu 分支的包名重装);有 GPU 支持但 mdrun 没用上,多半是驱动版本与包不匹配,跑一次 gmx --version 看_GPU support 与 CUDA 版本行;集群上装好的 GROMACS 找不到,通常是没加载模块(module load 一类命令),问管理员要加载脚本。
版本重要吗? 力场文件与 mdp 参数语法跨版本高度稳定,教学与常规课题不必追新;但两类场景必须看版本——要用某年新增的算法(如 C-rescale 恒压器进主线较晚),或论文复现要求版本一致。写论文时把版本号与精度(mixed/double)一起报,是审稿人常查的细节。
mixed 精度够吗? 绝大多数经典模拟够用,且比双精度快得多;自由能微扰、长程耦合敏感的体系、或跨皮秒的能量守恒检验,才值得换 double 编译版本。初学者不必纠结,mixed 是全行业默认。
速记:这一节你拿到了三样东西——对性能哲学的理解(快来自算法、实现、并行三层)、安装体检的方法、以及"三进一编一运行"的文件管线。第2章就从管线的第一环开始:给 PEO 链或 DPPC 脂膜这种 pdb2gmx 不直接认识的分子,把拓扑这个"户口本"办下来。