一般来说,gromacs所用到的参数控制文件(mdp)基本上是大同小异的。仅需进行一些小小的更改即可。或者按照自己的体系进行微调。下面给大家提供了每个步骤模拟的mdp文件,以及每个关键字的解释。
title=TEST; 标题,可任意定义(最长64个字,简单点好)
cpp=/usr/bin/cpp ; 预处理器,与C/C++的预处理器一样,默认为(/lib/cpp)
define= -DFLEXIBLE ; 预定义。-DFLEXIBLE 会告诉grompp ,采用柔性的水代替刚性水到拓扑结构; -DPOSRES 会告诉grompp包括posre.itp到拓扑结构,用于位置限制动力学模拟。
integrator=steep ;使用最速下降法进行能量优化,能量优化最大位置移动用emstep[nm]设定,能量最大容忍度由emtol[kJ mol-1nm-1]决定。
nsteps=50000 ;最大模拟步数。默认为0。
nstlist=1; 邻区列表更新频率, 0: 用于真空模拟; -1: 自动
ns_type=grid; 邻区搜索算法, grid较快; simple仅与group联用
rlist=1 ; 邻区列表截断距离,单位为[nm]
coulombtype =PME ; 静电计算方法
rcoulomb =1; 静电截断半径,单位为[nm]
vdwtype=cut-off ; 范德华计算方法
rvdw=1; 范德华截断半径,单位为[nm]
emtol=500.0;力最大值小于此值认为优化收敛。默认为 10.0 ,单位为[kJ mol-1 nm-1]。
emstep=0.01;起始步长。默认为0.01,单位为[nm]。
pbc=xyz; 周期性边界条件, xyz; xy; no: 忽略盒子, 截断与nstlist置零
cutoff-scheme = Verlet ; 截断方式, Verlet: 粒子截断; Group: 电荷组
verlet-buffer-tolerance = 0.005 ; Verlet缓冲的能量误差(kJ/mol-ps-atom), -1表示使用rlist
include = ; 待引用文件的路径, 可多项
; 例: -I/home/joe/joy -I/home/tom/tim -IC:/GMX/top
define = ; 预定义, 默认无, 可多项, 区分大小写
; -DPOSRES: 使用位置限制文件进行位置限制动力学模拟
; -DFLEXIBLE: 启用柔性水, steep效果更好, cg或l-bfgs必须开启
integrator = md ; 积分方法, md: 蛙跳; sd: 随机
dt = 1E-3 ; 积分步长(ps), EM不用
nsteps = 1000 ; 最大积分步数, 默认0表示无限制
comm-mode = Linear ; 移除质心运动的方式, None: 无; Linear: 平动; Angular: 平动转动
nstcomm = 10 ; 移除质心运行的频率(步)
comm-grps = system ; 移除质心运动的组, 可多个, 默认整个体系
tinit = 0 ; 起始时间(ps), EM不用
init-step = 0 ; 起始步数, 对非平衡模拟, 精确重启或重做某部分模拟时, 设定为重启步编号
simulation-part = 1 ; 检查点时自动更新的部分编号(保持文件分开)
nstxout = 10 ; trr坐标的输出频率(步)
nstvout = 10 ; 速度的输出频率(步)
nstfout = 10 ; 力的输出频率(步)
nstxout-compressed = 10 ; xtc压缩坐标的输出频率(步)
nstlog = 10 ; 日志文件输出频率(步)
nstenergy = 10 ; 能量文件输出频率(步)
nstcalcenergy = 10 ; 计算能量的频率(步), 最好为 nstlist 倍数
energygrps = ; 输出到能量文件的组, 可使用多个, 默认所有
compressed-x-grps = ; 输出xtc压缩坐标的组, 可使用多个, 默认所有
compressed-x-precision = 1000 ; xtc坐标的精度(1000表示1/1000, 三位小数)
cutoff-scheme = Verlet ; 截断方式, Verlet: 粒子截断; Group: 电荷组
ns-type = Grid ; 邻区搜索算法, grid较快; simple仅与group联用
nstlist = 10 ; 邻区列表更新频率, 0: 用于真空模拟; -1: 自动
rlist = 1.0 ; 邻区列表截断距离(nm)
nstcalclr = -1 ; 长程邻区列表的计算频率
rlistlong = -1 ; 切换势能函数的长程邻区列表截断距离(nm)
verlet-buffer-tolerance = 0.005 ; Verlet缓冲的能量误差(kJ/mol-ps-atom), -1表示使用rlist
pbc = xyz ; 周期性边界条件, xyz; xy; no: 忽略盒子, 截断与nstlist置零
periodic-molecules = no ; 周期性分子: no, yes
rvdw = 1.0 ; 范德华截断半径
rcoulomb = 1.0 ; 静电截断半径
vdwtype = Cut-off ; 范德华计算方法
coulombtype = PME ; 静电计算方法
DispCorr = No ; 长程色散校正, no: 无; Ener: 能量; EnerPres: 能量和压力
rvdw-switch = 0 ; 范德华切换距离
rcoulomb-switch = 0 ;库伦切换距离
vdw-modifier = Potential-shift-Verlet ; 修正方法
coulomb-modifier = Potential-shift-Verlet
epsilon-r = 1 ; 介质的相对介电常数, 0: 无穷大
epsilon-rf = 0 ; 反应场的相对介电常数, 0: 无穷大
gen-vel = Yes ; no: 使用gro文件的值; yes: 随机产生
gen-temp = 298.15 ; 随机速度对应的温度
gen-seed = -1 ; 随机数种子; -1: 自动确定
tcoupl = v-rescale ; 耦合方法, no: 无; v-rescale: 快速; nose-hoover: 精确
tc-grps = system ; 温度耦合组, 可多个
tau-t = 2 ; 时间常数(ps)
ref-t = 298.15 ; 参考温度(K)
大家可以看出,minim.mdp和nvt.mdp主要变化在于积分算法(integrator)改成了md。Integrator* dt就是模拟的总时间。对于蛋白模拟这个总模拟时间一般要达到上百ns,对于小分子溶液体系,几十个ns就足够了。而且由于体系处于初始状态,nvt这一步才使体系运动起来,所以nvt这一步会给体系一个初始速度(gen-vel= Yes),后面的就没有这个关键字,或者是gen-vel= no。这一步最重要的就是设定温度(ref-t = 298.15),温度的算法(tcoupl)一般来说是用nose-hoover比较精确,但是有时候体系会崩溃掉,所以最保险是最初始用v-rescale平衡一段时间,之后数据产出时候用nose-hoover。
include = ; 待引用文件的路径, 可多项
; 例: -I/home/joe/joy -I/home/tom/tim -IC:/GMX/top
define = ; 预定义, 默认无, 可多项, 区分大小写
; -DPOSRES: 使用位置限制文件进行位置限制动力学模拟
; -DFLEXIBLE: 启用柔性水, steep效果更好, cg或l-bfgs必须开启
integrator = md ; 积分方法, md: 蛙跳; sd: 随机
dt = 1E-3 ; 积分步长(ps), EM不用
nsteps = 1000 ; 最大积分步数, 默认0表示无限制
comm-mode = Linear ; 移除质心运动的方式, None: 无; Linear: 平动; Angular: 平动转动
nstcomm = 10 ; 移除质心运行的频率(步)
comm-grps = system ; 移除质心运动的组, 可多个, 默认整个体系
tinit = 0 ; 起始时间(ps), EM不用
init-step = 0 ; 起始步数, 对非平衡模拟, 精确重启或重做某部分模拟时, 设定为重启步编号
simulation-part = 1 ; 检查点时自动更新的部分编号(保持文件分开)
nstxout = 10 ; trr坐标的输出频率(步)
nstvout = 10 ; 速度的输出频率(步)
nstfout = 10 ; 力的输出频率(步)
nstxout-compressed = 10 ; xtc压缩坐标的输出频率(步)
nstlog = 10 ; 日志文件输出频率(步)
nstenergy = 10 ; 能量文件输出频率(步)
nstcalcenergy = 10 ; 计算能量的频率(步), 最好为 nstlist 倍数
energygrps = ; 输出到能量文件的组, 可使用多个, 默认所有
compressed-x-grps = ; 输出xtc压缩坐标的组, 可使用多个, 默认所有
compressed-x-precision = 1000 ; xtc坐标的精度(1000表示1/1000, 三位小数)
cutoff-scheme = Verlet ; 截断方式, Verlet: 粒子截断; Group: 电荷组
ns-type = Grid ; 邻区搜索算法, grid较快; simple仅与group联用
nstlist = 10 ; 邻区列表更新频率, 0: 用于真空模拟; -1: 自动
rlist = 1.0 ; 邻区列表截断距离(nm)
nstcalclr = -1 ; 长程邻区列表的计算频率
rlistlong = -1 ; 切换势能函数的长程邻区列表截断距离(nm)
verlet-buffer-tolerance = 0.005 ; Verlet缓冲的能量误差(kJ/mol-ps-atom), -1表示使用rlist
pbc = xyz ; 周期性边界条件, xyz; xy; no: 忽略盒子, 截断与nstlist置零
periodic-molecules = no ; 周期性分子: no, yes
rvdw = 1.0 ; 范德华截断半径
rcoulomb = 1.0 ; 静电截断半径
vdwtype = Cut-off ; 范德华计算方法
coulombtype = PME ; 静电计算方法
DispCorr = No ; 长程色散校正, no: 无; Ener: 能量; EnerPres: 能量和压力
rvdw-switch = 0 ; 范德华切换距离
rcoulomb-switch = 0 ;库伦切换距离
vdw-modifier = Potential-shift-Verlet ; 修正方法
coulomb-modifier = Potential-shift-Verlet
epsilon-r = 1 ; 介质的相对介电常数, 0: 无穷大
epsilon-rf = 0 ; 反应场的相对介电常数, 0: 无穷大
tcoupl = v-rescale ; 耦合方法, no: 无; v-rescale: 快速; nose-hoover: 精确
tc-grps = system ; 温度耦合组, 可多个
tau-t = 2 ; 时间常数(ps)
ref-t = 298.15 ; 参考温度(K)
pcoupl = berendsen ; 耦合方法, no: 无, 盒子大小不变; berendsen: 快速; Parrinello-Rahman: 精确
pcoupltype = Isotropic ; 耦合类型, isotropic: 各向同性;
; semiisotropic: x/y方向各向同性, 与z方向不同, 膜模拟
; anisotropic: 各向异性, 盒子可能剧烈变形
; surface-tension: 表面张力
tau-p = 1 ; 时间常数(ps)
compressibility = 4.5E-5 ; 压缩率(1/bar)
ref-p = 1 ; 参考压力(bar)
nstpcouple = -1 ; 耦合频率, -1: 同nstlist
refcoord-scaling = No ; 缩放参考坐标: no: 无; all: 所有粒子; com: 质心
include = ; 待引用文件的路径, 可多项
; 例: -I/home/joe/joy -I/home/tom/tim -IC:/GMX/top
define = ; 预定义, 默认无, 可多项, 区分大小写
; -DPOSRES: 使用位置限制文件进行位置限制动力学模拟
; -DFLEXIBLE: 启用柔性水, steep效果更好, cg或l-bfgs必须开启
integrator = md ; 积分方法, md: 蛙跳; sd: 随机
dt = 1E-3 ; 积分步长(ps), EM不用
nsteps = 1000000 ; 最大积分步数, 默认0表示无限制
comm-mode = Linear ; 移除质心运动的方式, None: 无; Linear: 平动; Angular: 平动转动
nstcomm = 10 ; 移除质心运行的频率(步)
comm-grps = system ; 移除质心运动的组, 可多个, 默认整个体系
tinit = 0 ; 起始时间(ps), EM不用
init-step = 0 ; 起始步数, 对非平衡模拟, 精确重启或重做某部分模拟时, 设定为重启步编号
simulation-part = 1 ; 检查点时自动更新的部分编号(保持文件分开)
nstxout = 10 ; trr坐标的输出频率(步)
nstvout = 10 ; 速度的输出频率(步)
nstfout = 10 ; 力的输出频率(步)
nstxout-compressed = 10 ; xtc压缩坐标的输出频率(步)
nstlog = 10 ; 日志文件输出频率(步)
nstenergy = 10 ; 能量文件输出频率(步)
nstcalcenergy = 10 ; 计算能量的频率(步), 最好为 nstlist 倍数
energygrps = ; 输出到能量文件的组, 可使用多个, 默认所有
compressed-x-grps = ; 输出xtc压缩坐标的组, 可使用多个, 默认所有
compressed-x-precision = 1000 ; xtc坐标的精度(1000表示1/1000, 三位小数)
cutoff-scheme = Verlet ; 截断方式, Verlet: 粒子截断; Group: 电荷组
ns-type = Grid ; 邻区搜索算法, grid较快; simple仅与group联用
nstlist = 10 ; 邻区列表更新频率, 0: 用于真空模拟; -1: 自动
rlist = 1.0 ; 邻区列表截断距离(nm)
nstcalclr = -1 ; 长程邻区列表的计算频率
rlistlong = -1 ; 切换势能函数的长程邻区列表截断距离(nm)
verlet-buffer-tolerance = 0.005 ; Verlet缓冲的能量误差(kJ/mol-ps-atom), -1表示使用rlist
pbc = xyz ; 周期性边界条件, xyz; xy; no: 忽略盒子, 截断与nstlist置零
periodic-molecules = no ; 周期性分子: no, yes
rvdw = 1.0 ; 范德华截断半径
rcoulomb = 1.0 ; 静电截断半径
vdwtype = Cut-off ; 范德华计算方法
coulombtype = PME ; 静电计算方法
DispCorr = No ; 长程色散校正, no: 无; Ener: 能量; EnerPres: 能量和压力
rvdw-switch = 0 ; 范德华切换距离
rcoulomb-switch = 0 ;库伦切换距离
vdw-modifier = Potential-shift-Verlet ; 修正方法
coulomb-modifier = Potential-shift-Verlet
epsilon-r = 1 ; 介质的相对介电常数, 0: 无穷大
epsilon-rf = 0 ; 反应场的相对介电常数, 0: 无穷大
tcoupl = v-rescale ; 耦合方法, no: 无; v-rescale: 快速; nose-hoover: 精确
tc-grps = system ; 温度耦合组, 可多个
tau-t = 2 ; 时间常数(ps)
ref-t = 298.15 ; 参考温度(K)
pcoupl = berendsen ; 耦合方法, no: 无, 盒子大小不变; berendsen: 快速; Parrinello-Rahman: 精确
pcoupltype = Isotropic ; 耦合类型, isotropic: 各向同性;
; semiisotropic: x/y方向各向同性, 与z方向不同, 膜模拟
; anisotropic: 各向异性, 盒子可能剧烈变形
; surface-tension: 表面张力
tau-p = 1 ; 时间常数(ps)
compressibility = 4.5E-5 ; 压缩率(1/bar)
ref-p = 1 ; 参考压力(bar)
nstpcouple = -1 ; 耦合频率, -1: 同nstlist
refcoord-scaling = No ; 缩放参考坐标: no: 无; all: 所有粒子; com: 质心
此文件和npt.mdp文件几乎一样,若没有特别的模拟要求,只需更改关键字nsteps,使得总的模拟时间是我们需要的模拟时间。且温度和压力采用的算法最好的组合为:tcoupl = nose-hoover;pcoupl = Parrinello-Rahman。