一般来说,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/topdefine = ; 预定义, 默认无, 可多项, 区分大小写; -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表示使用rlistpbc = xyz ; 周期性边界条件, xyz; xy; no: 忽略盒子, 截断与nstlist置零periodic-molecules = no ; 周期性分子: no, yesrvdw = 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-Verletepsilon-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/topdefine = ; 预定义, 默认无, 可多项, 区分大小写; -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表示使用rlistpbc = xyz ; 周期性边界条件, xyz; xy; no: 忽略盒子, 截断与nstlist置零periodic-molecules = no ; 周期性分子: no, yesrvdw = 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-Verletepsilon-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: 同nstlistrefcoord-scaling = No ; 缩放参考坐标: no: 无; all: 所有粒子; com: 质心
include = ; 待引用文件的路径, 可多项; 例: -I/home/joe/joy -I/home/tom/tim -IC:/GMX/topdefine = ; 预定义, 默认无, 可多项, 区分大小写; -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表示使用rlistpbc = xyz ; 周期性边界条件, xyz; xy; no: 忽略盒子, 截断与nstlist置零periodic-molecules = no ; 周期性分子: no, yesrvdw = 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-Verletepsilon-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: 同nstlistrefcoord-scaling = No ; 缩放参考坐标: no: 无; all: 所有粒子; com: 质心
此文件和npt.mdp文件几乎一样,若没有特别的模拟要求,只需更改关键字nsteps,使得总的模拟时间是我们需要的模拟时间。且温度和压力采用的算法最好的组合为:tcoupl = nose-hoover;pcoupl = Parrinello-Rahman。
