GROMACS 命令核心特点
- 命名规范:所有 GROMACS 命令都以
gmx开头,后跟具体的操作指令,gmx mdrun。 - 交互式提示:许多 GROMACS 命令(尤其是设置和分析命令)是交互式的,当你运行命令时,它会通过命令行提示你选择选项或输入参数,这些提示通常包含默认值(用方括号
[]标出),直接按回车键即可使用默认值。 - 索引文件 (
.ndx):在进行选择性分析(如计算特定残基的距离、RMSF 等)时,通常需要先创建一个索引文件来定义原子组。
GROMACS 模拟完整流程及对应命令
一个标准的 MD 模拟流程通常包括以下几个步骤:

准备阶段
这一步的目标是准备好模拟所需的拓扑结构和坐标文件。
pdb2gmx: 将 PDB 文件转换为 GROMACS 格式的拓扑和坐标文件。- 功能:根据力场选择,为分子(通常是蛋白质)添加原子名称、电荷和键角等拓扑信息,并生成
.gro(坐标) 和.top(拓扑) 文件。 - 交互式选择:它会提示你选择力场、水模型等。
- 示例:
gmx pdb2gmx -f protein.pdb -o processed.gro -water spc
- 功能:根据力场选择,为分子(通常是蛋白质)添加原子名称、电荷和键角等拓扑信息,并生成
定义模拟盒子
这一步将单个分子放入一个充满溶剂的盒子中。
editconf: 编辑坐标文件,如调整盒子大小、形状等。- 功能:可以设置盒子类型(立方体、截角八面体、正交)、盒子边长、将分子置于盒子中心等。
- 示例:
gmx editconf -f processed.gro -o boxed.gro -c -d 1.0 -bt cubic
-c: 将分子置于盒子中心。-d 1.0: 分子与盒子边界的最小距离为 1.0 纳米。-bt cubic: 定义盒子为立方体。
溶剂化与添加离子
-
solvate: 在盒子中添加溶剂分子(通常是水)。- 功能:根据盒子大小自动添加水分子,生成
solvated.gro。 - 示例:
gmx solvate -cp boxed.gro -cs spc216.gro -o solvated.gro -p topol.top
-cp: 溶质坐标文件。-cs: 溶剂模型文件(如spc216.gro是预先生成的 SPC/E 水盒子)。-p: 更新拓扑文件,加入溶剂分子的拓扑信息。
- 功能:根据盒子大小自动添加水分子,生成
-
genion: 添加离子以中和系统电荷并达到所需的离子强度。
(图片来源网络,侵删)- 功能:替换水分子中的氢原子,添加 Na+ 或 Cl- 离子。
- 示例:
gmx genion -s solvated.tpr -o ionized.gro -p topol.top -pname NA+ -nname CL- -neutral
-s: 输入tpr文件(由gmx grompp生成,见下一步)。-pname NA+: 正离子名称为 NA+。-nname CL-: 负离子名称为 CL-。-neutral: 系统总电荷设为 0。
能量最小化
-
grompp(GROMACS Preprocessor): 编译.top和.gro文件,生成.tpr(Portable XDR Run Input) 二进制文件。- 功能:这是运行任何模拟前的必要步骤,用于检查输入文件的完整性和正确性。
- 示例:
gmx grompp -f em.mdp -c ionized.gro -p topol.top -o em.tpr
-f: MD 参数文件 (.mdp)。-c: 初始坐标文件。-p: 拓扑文件。-o: 输出的tpr文件。
-
mdrun: 运行模拟。- 功能:这是执行 MD 模拟的核心命令。
- 示例(能量最小化):
gmx mdrun -v -deffnm em
-v: 详细输出,显示进度。-deffnm em: 使用em作为输入/输出文件的前缀(即读取em.tpr,输出em.trr,em.log,em.edr等)。
平衡阶段
包括 NVT 系综(恒定粒子数、体积、温度)和 NPT 系综(恒定粒子数、压力、温度)的平衡。
-
gmx grompp: 同上,使用不同的.mdp参数文件(如nvt.mdp,npt.mdp)编译tpr文件。
(图片来源网络,侵删) -
gmx mdrun: 运行平衡模拟。-
示例:
# NVT 平衡 gmx grompp -f nvt.mdp -c em.gro -p topol.top -o nvt.tpr gmx mdrun -deffnm nvt # NPT 平衡 gmx grompp -f npt.mdp -c nvt.gro -p topol.top -o npt.tpr gmx mdrun -deffnm npt
-
生产阶段
gmx grompp: 使用生产模拟的.mdp文件(如md.mdp)编译tpr文件。gmx mdrun: 运行生产模拟,产生轨迹文件(.xtc或.trr)和能量文件(.edr)。- 示例:
gmx grompp -f md.mdp -c npt.gro -p topol.top -o md.tpr gmx mdrun -deffnm md -v
- 示例:
GROMACS 分析核心命令
模拟完成后,使用 gmx 命令套件对轨迹进行分析。绝大多数分析命令都需要先使用 gmx make_ndx 创建索引文件。
创建索引文件
make_ndx: 创建或编辑索引文件 (.ndx)。- 功能:让你选择原子,给它们命名,并定义原子组,这些组名可以在后续分析中使用。
- 交互式操作:
- 输入
q退出。 - 输入
a+残基号+原子名来选择原子,a 1 3选择残基1的原子3。 - 输入
r+残基号选择整个残基,r 1选择残基1。 - 输入
name+组名来给当前选中的原子组命名,name 1 Protein。 - 重复步骤 2-4 定义其他组(如
SOL,LIG)。
- 输入
- 示例:
gmx make_ndx -f md.tpr -o index.ndx
常用分析命令
-
energy: 提取能量信息。- 功能:从
.edr文件中读取并绘制能量随时间的变化,如动能、势能、温度、压力等。 - 示例:
gmx energy -f md.edr -o energy.xvg
- 交互式提示:它会列出所有可用的能量项,让你选择要绘制的项(通常使用
0选择全部)。
- 交互式提示:它会列出所有可用的能量项,让你选择要绘制的项(通常使用
- 功能:从
-
rmsd: 计算均方根偏差。- 功能:计算原子或骨架相对于参考结构的位移。
- 示例:
gmx rmsd -s md.tpr -f md.xtc -o rmsd.xvg -tu ns
-tu ns: 将 x 轴单位设置为纳秒。- 交互式提示:它会让你选择一个参考结构(通常选第一个),然后选择要计算的原子组(如 Backbone)。
-
rmsf: 计算均方根涨落。- 功能:计算每个残基(或原子)的平均位移,用于评估柔性区域。
- 示例:
gmx rmsf -s md.tpr -f md.xtc -o rmsf.xvg -res
-res: 按残基输出结果。
-
gyrate: 计算回转半径。- 功能:衡量分子的紧凑程度。
- 示例:
gmx gyrate -s md.tpr -f md.xtc -o gyrate.xvg
-
hbond: 分析氢键。- 功能:计算氢键的数量、存在时间等。
- 示例:
gmx hbond -s md.tpr -f md.xtc -num hbond.xvg
-
mindist: 计算最小距离。- 功能:计算两个原子组之间的最小距离。
- 示例:
gmx mindist -s md.tpr -f md.xtc -n index.ndx -o mindist.xvg
- 交互式提示:它会让你选择第一个原子组(如
Protein),然后选择第二个原子组(如LIG)。
- 交互式提示:它会让你选择第一个原子组(如
-
sasa: 计算溶剂可及表面积。- 功能:衡量分子暴露在溶剂中的表面积。
- 示例:
gmx sasa -s md.tpr -f md.xtc -o sasa.xvg -n index.ndx
交互式提示:让你选择要计算的原子组。
-
density: 计算密度。- 功能:计算沿 Z 轴的密度分布。
- 示例:
gmx density -s md.tpr -f md.xtc -o density.xvg -d Z -sl 30
-d Z: 沿 Z 轴计算。-sl 30: 将 Z 轴分成30个薄片。
-
angle/dihedral: 计算键角或二面角。- 功能:分析特定键角或二面角的变化。
- 示例:
gmx angle -s md.tpr -f md.xtc -n index.ndx -o angle.xvg
交互式提示:让你选择要分析的键角。
-
trjconv: 轨迹文件转换和编辑。- 功能:非常强大的工具,用于转换轨迹格式(
.xtc->.pdb)、裁剪轨迹、旋转/平移分子、仅输出特定帧等。 - 示例(将最后一帧保存为 PDB 文件):
gmx trjconv -s md.tpr -f md.xtc -o last_frame.pdb -dump 0
-dump 0: 输出第0帧(即最后一帧)。-dump 100则输出第100帧。
- 功能:非常强大的工具,用于转换轨迹格式(
完整工作流示例
# 1. 准备拓扑和坐标 gmx pdb2gmx -f 1AKI.pdb -o processed.gro -water spce # 2. 定义盒子 gmx editconf -f processed.gro -o boxed.gro -c -d 1.0 -bt cubic # 3. 溶剂化 gmx solvate -cp boxed.gro -cs spc216.gro -o solvated.gro -p topol.top # 4. 添加离子 (需要先生成一个 tpr 文件) gmx grompp -f ions.mdp -c solvated.gro -p topol.top -o ions.tpr gmx genion -s ions.tpr -o ionized.gro -p topol.top -pname NA+ -nname CL- -neutral # 5. 能量最小化 gmx grompp -f em.mdp -c ionized.gro -p topol.top -o em.tpr gmx mdrun -deffnm em # 6. NVT 平衡 gmx grompp -f nvt.mdp -c em.gro -p topol.top -o nvt.tpr gmx mdrun -deffnm nvt # 7. NPT 平衡 gmx grompp -f npt.mdp -c nvt.gro -p topol.top -o npt.tpr gmx mdrun -deffnm npt # 8. 生产模拟 gmx grompp -f md.mdp -c npt.gro -p topol.top -o md.tpr gmx mdrun -deffnm md -v # 9. 分析 # 9.1 创建索引文件 gmx make_ndx -f md.tpr -o index.ndx # (在交互模式下选择蛋白质残基,输入 'name 1 Protein',选择配体残基,输入 'name 2 LIG',输入 'q' 退出) # 9.2 计算蛋白质骨架的 RMSD gmx rmsd -s md.tpr -f md.xtc -o rmsd.xvg -tu ns -n index.ndx # (交互式提示:选择 'Backbone' 或 'Protein') # 9.3 计算蛋白质和配体之间的最小距离 gmx mindist -s md.tpr -f md.xtc -n index.ndx -o mindist.xvg # (交互式提示:先选择 'Protein',再选择 'LIG') # 9.4 提取能量 gmx energy -f md.edr -o energy.xvg # (交互式提示:选择 'Bonded', 'Nonbonded', 'Coulomb', 'LJ', 'Temperature', 'Pressure' 等)
GROMACS 的命令行操作虽然初看复杂,但一旦掌握了其流程和核心命令,就会变得非常高效和强大,关键在于:
- 理解流程:从准备到分析,每一步的目的和输入输出是什么。
- 善用
.mdp文件:.mdp文件是模拟的“灵魂”,决定了模拟的物理参数。 - 掌握
make_ndx:这是进行选择性分析的“钥匙”。 - 查阅官方文档:GROMACS 官方文档 (
https://manual.gromacs.org/current/) 是最权威、最详细的参考资料,每个命令都有详尽的说明和示例。
希望这份详细的梳理对您有帮助!
