大家好,我是刘建川,14 年深耕 GROMACS 分子模拟领域,始终专注分子模拟实战。在开展分子动力学模拟时,我们常常需要固定原子、基团或分子的空间位置,也需要约束分子内部的键长、键角、二面角等结构参数。本文将全面讲解 GROMACS 中冻结、成键项限制、位置限制等常用参数的配置方法、使用规则与实操注意事项。
冻结功能用于将指定原子组完全固定,无法产生位移,相关参数直接在mdp文件中配置。freezegrps用于指定冻结基团,freezedim用于设置 x、y、z 三个维度的冻结状态,Y代表冻结该方向,N代表放开该方向。
freezegrps = proteinfreezedim = Y Y Yfreezegrps = proteinfreezedim = Y Y Nfreezegrps = protein SOLfreezedim = Y Y Y Y Y Y若需要冻结自定义原子组,可先通过 gmx make_ndx 命令创建索引文件,执行 gmx grompp 时添加 -n index.ndx 读取索引。假设自定义索引组名为 r_1,对应配置如下:
freezegrps = r_1freezedim = Y Y Y注意事项:直接冻结基团容易造成体系能量过高,进而导致模拟崩溃。建议先完成能量最小化再执行冻结操作,若仍报错,可适当减小成键参数的力常数。
成键类限制需要写入对应分子的itp文件内,或紧跟该分子的include语句后方,主要分为距离限制、角度限制、二面角限制三类。
用于约束两个原子间的距离,格式及示例如下:
[ distance_restraints ]; ai aj type index type' low up1 up2 fac10 16 1 0 1 0.0 0.3 0.4 1.010 28 1 1 1 0.0 0.3 0.4 1.010 46 1 1 1 0.0 0.3 0.4 1.0参数说明:ai和aj为分子内原子编号,type固定填写1;low、up1、up2对应限制势公式中的特征距离;fac为权重系数,最终力常数会与该数值相乘。多组同索引的距离限制需连续排布,中间不可插入其他限制项。 补充方案:也可在[ bonds ]区块中将原子对的type改为6,等效添加谐振子势,实现无化学键连接的原子距离约束。

用于固定三个原子形成的夹角,示例配置如下:
[ angle_restraints ]; i j k l type theta0 fc multiplicity23 677 34 677 1 112.0 3000 1该示例表示约束原子23-677-34形成的夹角稳定在112.0°,力常数为3000;type字段暂无实际作用,multiplicity为多重性,默认填写1即可。
用于约束四个原子构成的二面角,itp文件配置示例:
[ dihedral_restraints ]; i j k l type label phi dphi kfac power4 12 8 11 1 1 180 0 1 2参数说明:type仅支持填写1;phi为目标参考二面角,dphi为偏离参考角的阈值;kfac为权重系数。
同时需要在mdp文件中配套设置二面角限制的全局参数:
dihre = simpledihre_fc = 1000dihre_tau = 0.0nstdihreout = 100参数释义:dihre_fc为二面角基础力常数,最终力常数由其与kfac相乘得到;dihre_tau为时间常数,设为0则关闭时间平均;nstdihreout为能量文件的数据输出步长。
位置限制会将原子约束在初始位置附近小幅运动,一般单独生成posre.itp文件,通过[ position_restraints ]区块定义约束规则。
[ position_restraints ]; ai funct fcx fcy fcz1 1 1000 1000 10002 1 1000 0 10002 1 1000 0 0示例解读:第一行将1号原子在x/y/z三维全约束;第二行约束2号原子在x、z方向,放开y方向;第三行仅约束x方向,将原子限制在y-z平面。
位置限制文件必须紧跟对应分子拓扑文件后引用,错误写法:
#include "topol_A.itp"#include "topol_B.itp"#include "ligand.itp"#ifdef POSRES#include "posre_A.itp"#include "posre_B.itp"#include "ligand_posre.itp"#endif正确写法(一一对应引用):
#include "topol_A.itp"#ifdef POSRES#include "posre_A.itp"#endif#include "topol_B.itp"#ifdef POSRES#include "posre_B.itp"#endif#include "ligand.itp"#ifdef POSRES#include "ligand_posre.itp"#endif若需要单独约束某一类分子,可自定义宏名称。例如仅配体生效:
#ifdef POSRES_LIG#include "ligand_posre.itp"#endif随后在mdp文件中启用对应宏,多个限制规则可叠加:
define = -DPOSRES_LIG -DPOSRES -DPOSRES_A使用gmx genrestr命令可基于gro/pdb文件一键生成posre.itp,执行前需保证结构文件与拓扑文件的原子数量、顺序完全一致:
gmx genrestr -f **.gro -o posre.itp -fc 1000 1000 1000高版本GROMACS执行gmx grompp时,若启用位置限制,必须通过-r指定参考结构文件:
gmx grompp -f nvt.mdp -c em.gro -p top.top -o nvt.tpr -r em.gro冻结与位置限制存在本质区别:冻结会让原子完全无法运动;位置限制允许原子在初始位置附近小幅振动,若将位置限制的力常数设置极大,效果会近似于冻结。
掌握以上各类冻结与限制参数的搭配用法,就能根据能量最小化、平衡模拟、生产模拟等不同阶段的需求灵活约束体系结构,有效规避体系结构畸变、原子漂移等问题,保障模拟流程平稳推进。