本文档用以说明 .mdp 文件各选项的释义,相应选项名称为粗体(其后的粗体括号中为默认值,单位用方括号括起来,破折号和下划线之间的差值会被忽略)。解释部分标蓝文字说明在其他条目中存在,标红文字为示例代码,每个大条目后会贴出其在 mdout.mdp 中对应部分,有关算法将会附出其在手册中的相关信息。

本文所展示的选项为 GROMACS 2022.2 版本所通用,可能与先前版本中部分选项的内容有所不同,因此如果报出 .mdp 文件中某指令不存在,最好查看一下你的版本的 release note(我也会在有变动的地方补充一些较早的 5.x 版本 的内容)。这里有一个示例 .mdp 文件(for 2022.2),你可以更改其中的参数来满足相应的模拟需求。

本人学疏才浅,翻译、个人理解等有误还请不吝指正。

Content(未完待续)

  • Preprocessing (include, define)(已完成)
  • Run control (integrator, tinit, dt, nsteps, init-step,mts, comm-mode, nstcomm, comm-grps)(已完成)
  • Langevin dynamics (bd-fric, ld-seed)(已完成)
  • Energy minimization (emtol, emstep, nstcgsteep, nbfgscorr)(已完成)
  • Shell molecular dynamics(emtol,niter,fcstep)(已完成)
  • Test particle insertion(rtpi)(已完成)
  • Output control (nstxout, nstvout, nstfout, nstlog, nstcalcenergy, nstenergy, nstxout-compressed, compressed-x-precision, compressed-x-grps, energygrps)(已完成)
  • Neighbor searching (cutoff-scheme, nstlist, pbc, periodic-molecules, verlet-buffer-tolerance, rlist, stcalclr, ns-type, rlistlongn)(已完成)
  • Electrostatics (coulombtype, coulomb-modifier, rcoulomb-switch, rcoulomb, epsilon-r, epsilon-rf)(已完成)
  • VdW (vdwtype, vdw-modifier, rvdw-switch, rvdw, DispCorr)(已完成)
  • Tables (table-extension, energygrp-table)(已完成)
  • Ewald (fourierspacing, fourier-nx, fourier-ny, fourier-nz, pme-order, ewald-rtol, ewald-geometry, epsilon-surface)(已完成)
  • Temperature coupling (tcoupl, nsttcouple, tc-grps, tau-t, ref-t)(已完成)
  • Pressure coupling (pcoupl, pcoupltype, nstpcouple, tau-p, compressibility, ref-p, refcoord-scaling)(已完成)
  • Simulated annealing (annealing, annealing-npoints, annealing-time, annealing-temp)(已完成)
  • velocity generation (gen-vel, gen-temp, gen-seed)(已完成)
  • bonds (constraints, constraint-algorithm, continuation, shake-tol, lincs-order, lincs-iter, lincs-warnangle, morse)(已完成)
  • Energy group exclusions (energygrp-excl)(已完成)
  • Walls (nwall, wall-type, wall-r-linpot, wall-atomtype, wall-density, wall-ewald-zfac)(已完成)
  • COM pulling (pull, ...)(已完成)
  • AWH adaptive biasing (awh, … )(待完善)
  • Enforced rotation (rotation, …)(待完善)
  • NMR refinement (disre, disre-weighting, disre-mixed, disre-fc, disre-tau, nstdisreout, orire, orire-fc, orire-tau, orire-fitgrp, nstorireout)(已完成)
  • Free energy calculations (free-energy, nstdhdl, dhdl-print-energy, init-lambda, delta-lambda, fep-lambdas, coul-lambdas, vdw-lambdas, bonded-lambdas, restraint-lambdas, mass-lambdas, temperature-lambdas, sc-alpha, sc-coul, sc-power, sc-r-power, sc-sigma, couple-moltype, couple-lambda0, couple-lambda1, couple-intramol)(已完成)
  • Expanded ensemble simulation (lmc-stats, lmc-mc-move, lmc-seed, lmc-gibbsdelta, mc-temperature, nst-transition-matrix, init-lambda-weights, initial-wl-delta, wl-scale, wl-ratio, symmetrized-transition-matrix, lmc-forced-nstart, mininum-var-min, lmc-weights-equil, weight-equil-wl-delta, weight-equil-number-all-lambda, weight-equil-number-steps, weight-equil-number-samples, weight-equil-count-ratio, simulated-tempering, simulated-tempering-scaling, sim-temp-low, sim-temp-high)(已完成)
  • Non-equilibrium MD (acc-grps, accelerate, freezegrps, freezedim, cos-acceleration, deform)(已完成)
  • Electric fields (E-x, E-xt, E-y, E-yt, E-z, E-zt )(已完成)
  • Mixed quantum/classical dynamics (QMMM, QMMM-grps, QMMMscheme, QMmethod, QMbasis, QMcharge, Qmmult, CASorbitals, CASelectrons, SH)(已完成?)
  • Computational Electrophysiology (swapcoords, swap-frequency, split-group0, massw-split0, solvent-group, coupl-steps, iontypes, iontype0-name, iontype0-in-A, bulk-offsetA, threshold, cyl0-r, cyl0-up, cyl0-down)(待完善)
  • Density-guided simulations(已完成)
  • Implicit solvent (implicit-solvent, gb-algorithm, nstgbradii, rgbradii, gb-epsilon-solvent, gb-saltconc, gb-obc-alpha, gb-obc-beta, gb-obc-gamma, gb-dielectric-offset, sa-algorithm, sa-surface-tension)
  • AdResS settings (adress, adress_type, adress_const_wf, adress_ex_width, adress_hy_width, adress_ex_forcecap, adress_interface_correction, adress_site, adress_reference_coords, adress_tf_grp_names, adress_cg_grp_names)
  • User defined thingies (user1-grps, user2-grps, userint1, userint2, userint3, userint4, userreal1, userreal2, userreal3, userreal4)(已完成)
  • Index

Preprocessing (include, define)(已完成)

title: 名称,随便什么都可以,不会对后面的选项造成影响。

cpp: 预处理器cpp路径,该选项可有可无(如果你的cpp路径并非默认,那么你就需要设置该选项)。

include: 接包含 .top 文件的文件夹路径,格式为:-I/home/john/mylib 或 -I../otherlib,该选项可有可无(可以在grompp中使用-p topol.top完成)。

define: 传递给预处理器的定义,默认为无定义。可以借助该选项来调用拓扑文件中相应的设置。现可用选项有:

-DFLEXIBLE:告诉 grompp 在拓扑结构中包括柔性水而不是刚性水,这对简正模态分析很有用。
-DPOSRES:用于位置限制,告诉 grompp 启用 .top 文件中定义并引入的 posre.itp。此项应与 。top 文件中所定义位置限制的名称一致,例如 .top 文件中有 #ifdef POSRES_B 语句并引用了相应 posre.itp 文件,则若要启用该位置限制设置需要有 define = -DPOSRES_B
; VARIOUS PREPROCESSING OPTIONS =
title                    = Protein in water
cpp                      = /lib/cpp
include                  = -I../top
define                   = -DPOSRES  ; position restrain the protein

Run control (integrator, tinit, dt, nsteps, init-step,mts, comm-mode, nstcomm, comm-grps)(已完成)

integrator: (尽管他叫这个名字,但接下来的这一类包含的算法实际上并不全是积分器。最速下降法和所有紧随其后的操作都属于这个类别)

md: 蛙跳法,对符合牛顿公式的运动进行积分。
md-vv: 速度Verlet算法。其原理及优缺点请见手册。注意,对于几乎所有的生产模拟,md 积分器都足够精确。
md-vv-avek: 与 md-vv 相同的 速度Verlet算法,不同之处在于动能被确定为 md 积分器中两个半步动能的平均值,因此更精确。使用 Nose-Hoover 和/或 Parrinello-Rahman 耦合,计算成本略有增加。
sd: 一种精确有效的蛙跳随机动力学积分器。使用约束时,每个积分步骤需要约束坐标两次。根据力计算的成本,该法可能会耗费大量模拟时间。一组或多组原子(tc-grps)的温度用 ref-t [K] 设定,每组的逆摩擦常数用 tau-t [ps] 设定,忽略参数 tcoull,使用 ld 种子初始化随机生成器。当用作恒温器时, tau-t 最好设置为 2 ps,因为这样摩擦力较水的内摩擦低,而恰足以去除多余的热量。注意:该法温度偏差的衰减速度是具有相同 tau-t 的 Berendsen 恒温器的两倍,也即温度回原更快。
sd2: 这曾经是默认的sd方法,但现在已被弃用。该法需要每一步每个坐标分配四个高斯随机数。施加约束后温度会稍高。(2022.2版本已经不再支持该选项)
bd: 作为布朗或位置郎之万动力学(position Langevin dynamics)的 Euler 积分器,速度是力除以摩擦系数(bd-fric [amu ps-1])加上随机热噪声(ref-t)。当 bd fric = 0 时,每个粒子的摩擦系数计算为 mass/tau-t,与sd一样使用ld种子初始化随机生成器。
steep: 能量最小化的最速下降算法。最大步长为 emstep [nm],容差为 emtol [kJ mol-1 nm-1]。
cg: 能量最小化的共轭梯度算法,容差为 emtol [kJ mol-1 nm-1]。当每隔一段时间执行一次最陡下降步骤时,cg 效率更高,这取决于 nstcgsteep。该法需要非常高的精度,为了在正常动力学模拟之前实现最小化,GROMACS应以双精度编译(单精度编译使用 steep 即可)。
l-bfgs: 基于低内存 Broyden-Fletcher-Goldfarb-Shanno 方法的能量最小化准牛顿算法。在实践中似乎比 cg 收敛更快,但由于必要的校正步骤,它还没有(尚未)并行化。
nm: Normal mode analysis。在tpr文件中的结构上执行简正模式分析,仅双精度编译GROMACS可用。
tpi: Test particle insertion,插入测试粒子。拓扑结构中的最后一个分子是测试粒子。使用该法时应当在 mdrun 处借助 -rerun 选项提供一个轨迹文件,该轨迹不应包含要插入的分子。分子的插入将在在每帧中的随机位置以随机指向执行 nsteps 次。当 nstlist 大于1时,使用相同的邻域列表(以及相同的长程能量(当 rvdw 或 rcoulomb > rlist 时),仅用于单原子分子)在半径为 rtpi 的球体中围绕相同的随机位置执行 nstlist 插入。由于 neighborlist 构建的成本很高,因此这样对同一个列表执行多个额外的插入几乎不再消耗额外算力。随机种子用 ld 种子设置。玻尔兹曼加权的温度用 ref-t 设置,这应该与原始轨迹模拟的温度相匹配。tpi 正确实现了色散校正。所有相关量都会写入 mdrun -tpi 选项指定的文件。插入能量的分布被写入 mdrun -tpid 选项指定的文件。不会输出轨迹或能量文件。并行 tpi 给出了与单节点 tpi 相同的结果。对于带电分子,使用具有精细网格的PME是最准确也是最有效的,因为系统中的电势每帧只需计算一次。
tpic: Test particle insertion into a predefined cavity location,测试粒子插入预定义空腔位置。该程序与 tpi 相同,只是从轨迹中读取一个额外的坐标,作为插入位置。要插入的分子应该居中于 (0,0,0) 。GROMACS 不会替你完成居中,因为对于各个模拟,使用不同的居中方式可能会更好。同样 rtpi 设置该位置周围球体的半径。每帧仅执行一次邻近搜索,不使用 nstlist。并行 tpic 给出了与单节点 tpic 相同的结果。
mimic: 启用 MiMiC QM/MM 以运行混合分子动力学模拟。记住使用该选项还需要启动用 MiMiC 编译的CPMD。在这种模式下,所有关于积分的选项(T耦合、P耦合、步长和步数等)都被忽略,因为相应积分将CPMD完成。与力计算相关的选项(截止值、PME参数等)正常工作。QMMM-grps 读取对 QM 原子的选择(该选项为2022.2版本新增,不适用于部分老旧版本)。

tinit (0) [ps]: 模拟起始时间(仅对基于时间的积分器有意义,如md/sd/bd)。

dt (0.001) [ps]: 积分的步长(仅对基于时间的积分器有意义,如md/sd/bd)。

nsteps (0): 积分或最小化的最大步数,设 -1 则为无限大。

init-step (0): 设置起始步。第 i 步的时间由:t=tinit+dt*(init-step+i) 计算得。自由能 lambda 计算为:lambda=init-lambda+delta-lambda*(init-step+i)。非平衡MD参数也可能取决于步长。因此,为了精确地重新启动或重跑部分,可能需要将 init-step 设置为重新启动帧的步数。gmx convert-tpr会自动执行此操作。

simulation-part (0): 模拟可由多个组分组成,每个组分都有相应序号。此选项指定一个用于帮助跟踪逻辑上为相同模拟的组分的数字。此选项通常仅在处理文件丢失的崩溃模拟时有用(5.x无此功能)。

mts: (multiple timing-stepping,2022.2 新增)

no: 估算每个积分步骤的所有力。
yes: 按照 mts-level2-forces 的规定,每 mts-level2-factor 个积分步使用 multiple timing-stepping integrator 估算相应力。其他所有力在每一步均被估算。MTS目前仅支持 integrator=md。

mts-levels (2): mts 方案的级别数。目前只支持2个。

mts-level2-forces (longrange-nonbonded): 仅在每个 mts-level2-factor 步骤中评估的一个或多个力组列表。支持的条目有:远程非键、非键、配对、二面体、角度、牵引(longrange-nonbonded, nonbonded, pair, dihedral, angle, pull)和 awh。选择 pair 则使用 mts 估算列出的配对力(例如1-4)。使用 dihedral 时,将选择所有二面体,包括cmap。其他所有力,包括所有约束,都将在每一步都进行评估和整合。当 PME 或 Ewald 用于静电和/或 LJ 相互作用时,此处不能忽略长程非键(longrange-nonbonded)。

mts-level2-factor (2) [steps]: 计算 mts-level2-forces 的间隔。

comm-mode:

Linear: 移除质心平动速度。
Angular: 移除质心平动及转动速度。
Linear-acceleration-correction: 移除质心平动速度。假设在 nstcomm 步长上使用线性加速度以校正质心位置。这对于我们希望模拟质心上有(在 nstcomm 步长上几乎恒定的)加速度的情况非常有用,例如使用绝对参考系进行牵引模拟时。
None: 质心运动不受限制。

nstcomm (100) [steps]: 质心运动移除频率。

comm-grps: 用于移除质心运动的组,默认为整个系统。

; RUN CONTROL PARAMETERS
integrator               = md
; Start time and timestep in ps
tinit                    = 0
dt                       = 0.002
nsteps                   = 500000
; For exact run continuation or redoing part of a run
init-step                = 0
; Part index is updated automatically on checkpointing (keeps files separate)
simulation-part          = 1
; Multiple time-stepping
mts                      = no
; mode for center of mass motion removal
comm-mode                = Linear
; number of steps for center of mass motion removal
nstcomm                  = 10
; group(s) for center of mass motion removal
comm-grps                =

Langevin dynamics (bd-fric, ld-seed)(已完成)

bd-temp [K]: (2022.2版本已无此选项)

bd-fric (0) [amu ps-1]: 布朗动力学的摩擦系数。当 bd-fric 为 0 时,每个颗粒的摩擦系数计算为 mass/tau-t。

ld-seed (-1) [integer]: 用于初始化随机和布朗动力学热噪声的随机生成器。当 ld-seed 设置为 -1 时,使用伪随机种子。在多个处理器上运行 bd 或 sd 时,每个处理器使用一个等于 ld-seed 加上处理器编号的种子。

; LANGEVIN DYNAMICS OPTIONS =
; Temperature, friction coefficient (amu/ps) and random seed =
bd-temp                  = 300
bd-fric                  = 0
ld-seed                  = 1993

Energy minimization (emtol, emstep, nstcgsteep, nbfgscorr)(已完成)

emtol (10.0) [kJ mol-1 nm-1]: 当最大力小于该值时,表明最小化收敛(shell MD 中最小化过程 emtol 较普通模拟有所区别,请见下一条目)。

emstep (0.01) [nm]: 初始步长。

nstcgsteep (1000) [steps]: 使用共轭梯度能量最小化(cg)时执行1个最陡下降步骤的频率。

nbfgscorr (10): 用于 l-bfgs 最小化的校正步骤数。更高的数字(至少在理论上)更准确,但速度较慢(没有在 5.x 版本中发现该选项)。

(示例见下一条目)

Shell molecular dynamics(emtol,niter,fcstep)(已完成)

当系统中存在壳或柔性约束时,在每个时间步优化壳的位置和柔性约束的长度,直到壳和约束上的均方根力(RMS)小于 emtol ,或者达到最大迭代次数 niter。

emtol (10.0) [kJ mol-1 nm-1]: 当最大力小于 emtol 时,最小化收敛。对于shell MD,该值最多应为1.0(默认值为10.0是由于该变量也(且主要)用于能量最小化)。

niter (20): 优化壳位置和柔性约束的最大迭代次数。

fcstep (0) [ps2]: 用于优化柔性约束的步长。设置时应当使 fcstep=mu/(d2V/dq2),其中mu是柔性约束中两个粒子的缩减质量,d2V/dq2 是约束方向上电势的二阶导数。幸运的是这一数字在不同柔性约束之间不会发生太大变动,尽管迭代次数和运行时长对 fcstep 非常敏感。所以你还是得换几个值多试试!

; ENERGY MINIMIZATION OPTIONS
; Force tolerance and initial step-size
emtol                    = 10
emstep                   = 0.01
; Max number of iterations in relax-shells
niter                    = 20
; Step size (ps^2) for minimization of flexible constraints
fcstep                   = 0
; Frequency of steepest descents steps when doing CG
nstcgsteep               = 1000
nbfgscorr                = 10

Test particle insertion(rtpi)(已完成)

rtpi (0.05) [nm]: 测试粒子插入半径,请参见 integrator=tpi 及 integrator=tpic。

; TEST PARTICLE INSERTION OPTIONS
rtpi                     = 0.05

Output control (nstxout, nstvout, nstfout, nstlog, nstcalcenergy, nstenergy, nstxout-compressed, compressed-x-precision, compressed-x-grps, energygrps)(已完成)

nstxout (0) [steps]: 将坐标写入输出轨迹文件(trr)的间隔步数,最后一个坐标始终写入,除非为0,当然这意味着坐标未写入轨迹文件。

nstvout (0) [steps]: 将速度写入输出轨迹文件(trr)的间隔步数,其余同上。

nstfout (0) [steps]: 将力写入输出轨迹文件(trr)的间隔步数,其余同上。

nstlog (100) [steps]: 将能量写入日志文件的间隔步数,始终写入最后的能量。

nstcalcenergy (100): 计算能量的间隔步数,0代表不计算。此选项仅与动力学相关。此选项会影响并行模拟的性能,因为计算能量需要所有进程之间的全局通信,这可能成为高并行化的瓶颈。

nstenergy (1000) [steps]: 将能量写入能量文件的间隔步数,始终写入的最后一个能量。该值应为 nstcalcenergy 的倍数。请注意,每一步 MD step 的精确和(sums)以及波动(fluctuations)模 nstcalcenergy 的值都存储在能量文件中,因此当 nstenergy>1 时,gmx energy 也可以报告精确的能量平均值和波动。

nstxout-compressed (0) [steps]: 使用有损压缩(xtc)写入位置坐标的间隔步数步数,0表示不写入压缩坐标输出。

compressed-x-precision (1000) [real]: 写入压缩轨迹文件(xtc)的精度。

compressed-x-grps 写入压缩轨迹文件的索引组,默认情况下写入整个系统(如果 nstxout compressed>0)。

energygrps 将该组的短程非键合势能写入能量文件(不支持GPU)(5.0.4版本说明中该条为:写入能量文件的索引组)。

; OUTPUT CONTROL OPTIONS
; Output frequency for coords (x), velocities (v) and forces (f)
nstxout                  = 0
nstvout                  = 5000
nstfout                  = 5000
; Output frequency for energies to log file and energy file
nstlog                   = 1000
nstcalcenergy            = 100
nstenergy                = 5000
; Output frequency and precision for .xtc file
nstxout-compressed       = 5000
compressed-x-precision   = 1000
; This selects the subset of atoms for the compressed
; trajectory file. You can select multiple groups. By
; default, all atoms will be written.
compressed-x-grps        =
; Selection of energy groups
energygrps               =

Neighbor searching (cutoff-scheme, nstlist, pbc, periodic-molecules, verlet-buffer-tolerance, rlist, stcalclr, ns-type, rlistlongn)(已完成)

由于 group 类型的截断方案已经被弃用(在较高版本中),该条目中有部分选项已不再使用,这些选项大多服务于 group 类型。

cutoff-scheme:

Verlet: 基于粒子的截止方案,生成带有缓冲的配对列表。缓冲区大小根据 verlet-buffer-tolerance 自动设置(除非该值设置为 -1,在这种情况下将使用 rlist)。
group: 生成与拓扑中的电荷组相对应的原子组配对的列表。这些组对应于拓扑中的电荷组。这是版本4.6之前的唯一截止处理方案。没有对配对列表进行显式缓冲。这使得能够对水进行有效的力计算,但能量只有在明确添加缓冲液时才能守恒。2022.2 不再支持此选项。

nstlist (10) [steps]:

>0 更新邻近列表的频率。当设置 dynamics 和 verlet-buffer-tolerance 时,nstlist 实际上是一个最小值,gmx mdrun 可能自动增加,除非将其设置为1。对于GPU上的并行模拟和/或 non-bonded force 计算,设置为 20 或 40 通常可以得到最佳性能。在能量最小化的情况下,当至少一个原子移动了配对列表缓冲区大小的一半以上时,不使用该参数来更新对列表。
=0: 邻近列表只构造一次,从不更新。这主要适用于所有粒子彼此可见的真空模拟。但真空模拟(暂时)不受支持(5.0.4 版本没有提到真空模拟不可用一事)。
<0: 不使用 neighbor searching。(在 5.0.4版本 中该值被明确为 -1(不清楚其他 <0 的值是否可行),且被描述为:自动更新频率,仅限 cutoff-scheme=group。这仅适用于截止值小于 rlist 的 switched, shifted or user potentials。然后有一个大小为 rlist 减去最长截止值的缓冲区。仅当一个或多个粒子从其电荷组的几何中心移动超过缓冲区大小(由上一次邻近搜索确定)的一半时,邻近列表才会更新。该选项已将压力耦合或变形选项导致的坐标缩放考虑在内。此选项可确保没有截止伪影(cut-off artifacts),但对于较大的系统,这可能会带来较高的计算成本,因为邻近列表更新频率将由一个或两个稍微超过半缓冲区长度的粒子(尽管99.99%的粒子是正常的)决定(这并不一定意味着邻近列表无效)。高阶版本随着 cutoff-scheme=group 的弃用而不再支持原功能,转为不使用临近列表)

pbc:

xyz: 在所有方向上使用周期性边界条件。
no: 不使用周期性边界条件,忽略 box。若要模拟无截止,请将所有 cut-offs 相关选项和 nstlist 设置为 0。若要在单个 MPI rank 上实现无截止的最佳性能,请将 nstlist 设置为 0,ns-type=simple。
xy: 仅在x和y方向使用周期性边界条件。这仅适用于 ns-type=grid,并可与墙(walls)结合使用。如果没有墙或只有一面墙,系统在z方向上的大小是无限的,因此不能使用压力耦合或 Ewald 求和方法。当使用两个墙时,这些缺点不存在。

periodic-molecules:

no: 分子是有限的,可以使用 fast molecular PBC。
yes: 用于分子需要跨过周期性边界条件来相互耦合的系统,该选项需要较慢的 PBC 算法,并且分子在输出中不是完整的

verlet-buffer-tolerance (0.005) [kJ mol-1 ps-1]: 使用 dynamics 运行模拟时启用(2022.2 原话。应当就是指 cutoff-scheme=Verlet 的情况,这一点在 5.0.4 中指出)。这将设置 由Verlet 缓冲区(Verlet buffer)引起的每个粒子对相互作用(pair interactions)的最大允许误差,从而间接设置 rlist。由于 nstlist 和 Verlet 缓冲区大小都是固定的(出于性能原因),因此在第 nstlist-1 步中,不在对列表中的粒子对小概率会处于截止距离内,这导致能量非常小的跳跃。在恒温系综中,这些非常小的能量跳跃可由给定的 cut-offs 和 rlist 估算。该估计假设颗粒分布均匀,因此,对于多相系统,误差可能被稍微低估(有关详细信息,请参阅参考手册)。由于忽略了粒子之间的相互作用,对于较长的对列表寿命(nstlist-1)*dt,缓冲区将被高估。结合误差抵消,总能量的实际漂移通常要小一到两个数量级。相较于基于简单粒子对的列表,该选项生成缓冲区大小考虑到了 GROMACS 对列表设置会导致漂移减少了10倍的事实。如果没有使用 dynamics(能量最小化等),缓冲区为截止值的 5%。对于NVE模拟,使用初始温度(除非该温度为零),在这种情况下缓冲区为截止值的 10%。对于NVE模拟,通常需要降低该值以在纳秒时间尺度上实现适当的能量守恒。要覆盖自动缓冲区设置,请使用 verlet buffer tolerance=-1 并手动设置 rlist。

rlist (1) [nm]: 短距离邻近列表的截止距离。对于 dynamics,这在默认情况下由 verlet-buffer-tolerance 选项设置,并且忽略 rlist 的值。在没有 dynamics 的情况下,默认设置为最大截止值加上5%缓冲区,但测试粒子插入(tpi/tpic)除外,此时缓冲区将被精确自动地管理。对于不可能自动设置的 NVE 模拟,建议使用具有预期温度的 NVT 设置运行 gmx grompp,并将 rlist 的结果值复制到 NVE 设置。

以下选项已在高阶版本中不再出现

nstcalclr (-1) [steps]: 用于控制使用 group 截止方案时计算远程力之间的时间间隔。

>1: 计算每个nstcalclr步的远程力,并使用多时间步积分器组合力。由于列表已存储,因此现在可以比nstlist更频繁地执行此操作,例如,对于变化慢于静电的范德华相互作用,这可能是一个好主意。
=1: 计算每一步的远程力。这对于具有静电和 Van der Waals 相互作用缓冲区的独立邻近列表非常有用,特别是它可以使 Van der Waals 截止时间比静电更长(例如对PME有用)。然而没有必要为这两种相互作用类型设置完全相同的长程截止值并在每一步更新它们,这样将更快地将所有内容放入短程列表。
=-1: 计算每一个执行邻近搜索的 step 的远程力。虽然这是默认值,但您可能需要考虑更频繁地更新远程力。

请注意,PP-PME 负载平衡可能会自动启用双程力评估(twin-range force evaluation)。这样做是为了保持选定的范德华相互作用半径,即使负载平衡改变静电截止。如果 .mdp 文件已经指定了双程相互作用(例如,以比PME静电更长的截止每2-3步评估 Lennard-Jones 相互作用),则负载平衡对 Lennard Jones 的影响也很小,因为短程截止时间(每一步评估力的范围内)发生了变化。

ns-type:

grid: 在 box 中创建一个网格,并在每一步构建一个新的邻近列表时仅检查相邻网格单元中的原子。在大型系统中,网格搜索比简单搜索快得多。
simple: 在每个 nstlist 步骤构造新的邻近列表时选中 box 中的每个原子(仅用于 cutoff-scheme=group 的情况)。

rlistlong (-1) [nm]: 远程邻近列表截止的距离。该参数仅适用于具有 switched potentials 的双量程截止(twin-range cut-off)设置。在这种情况下,需要缓冲区来考虑电荷组的大小。在所有其他情况下,此参数自动设置为最长截止距离。

; NEIGHBORSEARCHING PARAMETERS 2021.2
; cut-off scheme (Verlet: particle based cut-offs)
cutoff-scheme            = Verlet
; nblist update frequency
nstlist                  = 20
; Periodic boundary conditions: xyz, no, xy
pbc                      = xyz
periodic-molecules       = no
; Allowed energy error due to the Verlet buffer in kJ/mol/ps per atom,
; a value of -1 means: use rlist
verlet-buffer-tolerance  = 0.005
; nblist cut-off
rlist                    = 1.4
; long-range cut-off for switched potentials
; NEIGHBORSEARCHING PARAMETERS 5.0.7
; cut-off scheme (Verlet: particle based cut-offs, group: using charge groups)
cutoff-scheme            = Verlet
; nblist update frequency
nstlist                  = 20
; ns algorithm (simple or grid)
ns_type                  = grid
; Periodic boundary conditions: xyz, no, xy
pbc                      = xyz
periodic-molecules       = no
; Allowed energy error due to the Verlet buffer in kJ/mol/ps per atom,
; a value of -1 means: use rlist
verlet-buffer-tolerance  = 0.005
; nblist cut-off
rlist                    = 1.4
; long-range cut-off for switched potentials
rlistlong                = -1
nstcalclr                = -1

Electrostatics (coulombtype, coulomb-modifier, rcoulomb-switch, rcoulomb, epsilon-r, epsilon-rf)(已完成)

coulombtype:

Cut-off: 具有对列表半径 rlist 和库仑截止 rcoulomb 的平面截止,其中 rlist>=rcoulumb。
Ewald: 经典的 Ewald sum 静电学。实空间截止 rcoulomb 应等于 rlist。使用例如 rlist=0.9,rcoulomb=0.9。在 reciprocal space 中使用的波矢量的最高幅度由 fourierspacing 控制。direct/reciprocal space 的相对精度由 ewald rtol 控制。注:Ewald 扩展为 O(N3/2),因此对于大型系统来说速度非常慢。它主要用于参考,在大多数情况下,PME将表现得更好。
PME: 用于 electrostatics(具体指静电相互作用或库仑力)的 Fast smooth Particle-Mesh Ewald (SPME) 。 Direct space 类似于Ewald sum,而 reciprocal space 使用 FFT 执行。网格尺寸由 fourierspacing 控制,插值顺序由 pme-order 控制。在网格间距为 0.1 nm 和三次插值的情况下,静电力的精度为 2-3*10-4。由于 vdw 截止的误差大于此值,您可以尝试 0.15 nm。当并行运行时,插值的并行性优于FFT,因此尝试在增加插值的同时减少网格维数。
P3M-AD: 带用于长程静电相互作用的解析导数(analytical derivative, AD)的 Particle-Particle Particle-Mesh(P3M)算法。该方法及其代码与 SPME 相同,只是影响函数(influence function)针对网格进行了优化,使精度略有提高。
Reaction-Field: 具有库仑截止 rcoulomb 的反应场处理方法,且 rlist>=rvdw。超过截止值的介电常数为 epsilon-rf。介电常数可以通过设置 epsilon-rf=0 而设置为无穷大。
User: 当前不支持。gmx mdrun 现在希望找到一个文件表,其具有用户定义的排斥、色散和库仑势函数的 xvg。当存在对相互作用时,gmx mdrun 还希望找到一个文件 tablep.xvg 用于对相互作用。当相同的相互作用应用于 non-bonded 及 pair interactions时,用户可以为这两个选项指定相同的文件。这些文件应包含7列:x值, f(x), -f'(x), g(x), -g'(x), h(x), -h'(x),其中 f(x) 是库仑函数,g(x) 色散函数(dispersion function),h(x) 排斥函数(repulsion function)。如果未将 vdwtype 设置为 User,则忽略 g、-g',h 和 -h' 的值。对于非键相互作用,x值应从0到最大截止距离 + table-extension,且应间隔均匀。对于配对相互作用,将使用文件中的表长度。用于非用户表格的最佳间距在混合精度下运行时为 0.002 nm,在双精度下运行后为 0.0005 nm。x=0 时的函数值不重要。更多信息见手册。
PME-Switch: 当前不支持。Direct space 部分的切换函数(switch function)(见上文)同 PME 的组合,rcoulomb 可以小于 rlist。
PME-User: 当前不支持。PME 同用户表的组合(见上文),rcoulomb 可以小于 rlist。通过gmx mdrun 从用户表中减去 PME 栅格贡献,这使得用户表应该包含大约10位小数。
PME-User-Switch: 当前不支持。PME-User 和 Switch 功能的组合(见上文)。切换函数应用于终末粒子-粒子相互作用,例如同时用于用户提供的函数和 PME 栅格校正部分。
Generalized-Reaction-Field: 2022.2中已弃用。库仑截止为 rcoulomb 的广义反应场,其中 rcoulumb≥rlist。超过截止值的介电常数为 epsilon-rf。离子强度由带电(即非零电荷)电荷基团的数量计算。GRF 电势的温度用 ref-t[K] 设定。
Reaction-Field-zero: 2022.2中已弃用。在GROMACS中,cutoff-scheme=group 的正常反应场静电导致较差的能量守恒。Reaction-Field-zero 通过使电势零点超过截止值来解决这个问题。它只能用于无限介电常数(epsilon-rf=0),因为只有该值的力在截止处消失。rlist 应比 rcoulomb 大 0.1 至 0.3 nm,以适应电荷组的大小和相邻列表更新间的扩散。这一现象以及使用表查找代替分析函数的事实,使得 Reaction-Field-zero 在计算上比正常反应场更耗费算力。
Shift: 2022.2已弃用。类似于 vdwtype 中的 Shift。你可能想用 Reaction-Field-zero 来代替,它具有相似的势形状,且有物理解释,并且由于排除校正项,它具有更好的能量。
Encad-Shift: 2022.2不再支持。使用 Encad 模拟软件包中的定义,库仑电势在整个范围内被降低。
Switch: 2022.2已弃用。类似于 vdwtype 中的 Switch。切换库仑电势可能会导致严重的伪影,建议使用 Reaction-Field-zero。

coulomb-modifier:

Potential-shift: 将库仑电势增减一个常数,使其在截止点处为零。这使得势成为力的积分。请注意,这不会影响力或采样过程。
None: 使用未修改的库仑势。这在将能量与用其他软件计算的能量进行比较时非常有用。
Potential-shift-Verlet: 2022.2中已弃用。cutoff-scheme=Verlet 时启用 Potential-shift,因为它(几乎)是无限制的;cutoff-scheme=group 时启用 None。

rcoulomb-switch (0) [nm]: 设置从何处开始切换库仑电势,仅在使用力或电势切换时有意义。

rcoulomb (1) [nm]: 库仑截止距离。请注意,对于PME,此值可以通过 gmx mdrun 中的 PME 调优以及 PME 栅格间距来增加。

epsilon-r (1): 相对介电常数,0表示无穷大。

epsilon-rf (0): 反应场的相对介电常数。这仅用于 reaction-field,0表示无穷大。

示例见下一条目

VdW (vdwtype, vdw-modifier, rvdw-switch, rvdw, DispCorr)(已完成)

vdwtype:

Cut-off: 具有成对列表半径 rlist 和 VdW 截止 rvdw 的平面截止,其中 rlist>=rvdw。
PME: 用于 VdW 相互作用的快速平滑粒子网格 Ewald(SPME)。网格尺寸以与静电相同的方式用 fourierspacing 控制,插值顺序用 pme-order 控制。direct/reciprocal space 的相对精度由 ewald-rtol-lj 控制,reciprocal routine 使用的特定组合规则由 lj-pme-comb-rule 设置。
Shift: 2022.2中已被弃用,并被使用 vdw modifier=Force-switch 的 vdwtype=Cut-off 替代。LJ(非 Buckingham)电势在全范围内被降低,并且力在 rvdw-switch 与 rvdw 之间平滑衰减至零。
Switch: 2022.2中已被弃用,并被使用 vdw-modifier=Potential-switch 的 vdwtype=Cut-off 所取代。LJ(非 Buckingham)电势正常输出至 rvdw-switch,之后在 rvdw 处切换至零。势函数和力函数都是连续平滑的,但请注意,所有 switch 函数都会导致力的膨胀(增加)(因为我们正在切换势)。
User: 当前不支持,参见 coulombtype = user 的情况。零处的函数值并不重要。如果要使用LJ校正,请确保 rvdw 对应于用户定义函数中的截止值。当 coulombtype 未设置为 User 时,f 和 -f' 列的值将被忽略。

vdw-modifier:

Potential-shift: 将范德华势移动一个常数,使其在截止点为零,这使得势成为力的积分。请注意,此举不会影响力或采样。
None: 使用未修改的范德华势。这在将能量与用其他软件计算的能量进行比较时非常有用。
Force-switch: 在 rvdw-switch 和 rvdw 之间平滑地将力切换至零。这将在整个范围内移动势偏移,并在截止时将其切换为零。请注意,计算该值比计算普通截止值更为昂贵,并且不需要进行能量守恒,因为 Potential-shift 也能使能量守恒。
Potential-switch: 在 rvdw-switch 和 rvdw 之间平滑地将势能切换到零。请注意,这在切换区域中引入了相当大的力,计算起来要昂贵得多。仅当您使用的力场需要此选项时,才应使用此选项。

rvdw-switch (0) [nm]: 在何处开始切换LJ力和可能的势,仅在使用力或势切换时有意义。

rvdw (1) [nm]: LJ 或 Buckingham 截止距离。

DispCorr:

no: 不采用任何校正。
EnerPres: 对能量和压力应用长程色散校正。
Potential-shift-Verlet:仅对能量应用长程色散校正。

示例见下一条目

Tables (table-extension, energygrp-table)(已完成)

table-extension (1) [nm]: 将非键合势能查找表扩展到最大截止距离之外。对于实际的非键相互作用,在截止点之外永远不会访问表。但是对于 1-4 相互作用,可能需要更长的表距,此表无论是否使用非键相互作用总会列出。

energygrp-table: 当前不支持。当 user table 用于 静电 和/或 VdW 时,这里可以给出应使用单独用户表的成对能量组。这两个能量组将按照它们在 energygrps 中的定义顺序附加到表文件名,并用下划线分隔。例如,如果 energygrps = Na Cl Sol,energygrp-table = Na Na Na Cl,gmx mdrun 将读取table_Na_Na.xvg 和 table_Na_Cl.xvg 以及将用于所有其他能量组对的 table.xvg。

示例见下一条目

Ewald (fourierspacing, fourier-nx, fourier-ny, fourier-nz, pme-order, ewald-rtol, ewald-geometry, epsilon-surface)(已完成)

fourierspacing (0.12) [nm]: 对于普通的 Ewald,box 尺寸和间距的比率决定了每个(有符号)方向上使用的波矢量数量的下限。对于 PME 和 P3M,该比率确定了沿该轴使用的傅立叶空间网格点数量的下限。在所有情况下,每个方向的数字都可以通过输入该 fourier-nx 方向的非零值来覆盖。为了优化粒子-粒子相互作用的相对载荷和 PME 的网格部分,当库仑截止值和 PME 网格间距按相同因子缩放时,静电的精度几乎保持不变。请注意,此间距可以通过 gmx mdrun 中的 PME tuning 将其与 rcoulomb 一起放大。

fourier-nx/fourier-ny/fourier-nz: 使用 Ewald 时 reciprocal space 中波矢量的最大幅值,或使用 PME 或 P3M 时的网格大小。这些值覆盖每个方向的 fourierspacing。最好的选择是 2、3、5和7 的幂。避免使用大素数。请注意,通过 gmx mdrun 中的 PME tuning,这些网格大小可以随着 rcoulomb 的扩展而减小。

pme-order (4): PME的插值顺序。4 等于三次插值。当并行运行时,您可以尝试 6/8/10,同时减少网格尺寸。

ewald-rtol (10-5): ewald-rtol 给出了 rcoulomb 处 Ewald-shifted direct potential 的相对强度。减少该值将得到更精确的 direct sum,但需要更多的波向量来求倒数和(reciprocal sum)。

ewald-rtol-lj (10-3): 当对 VdW 相互作用进行 PME 时,ewald-rtol-lj 用于控制 rvdw 处 dispersion potential 的相对强度,与 ewald-rtol 控制静电势的方式相同。

lj-pme-comb-rule (Geometric): 用于组合 LJ-PME 倒数部分中的 VdW 参数的组合规则。Geometric 规则比 Lorentz-Berthelot 洛规则快得多,而且通常是推荐的选择,即使力场的其余部分使用 Lorentz-Berthelot 规则。

Geometric: 使用 Geometric 规则。
Lorentz-Berthelot:使用 Lorentz-Berthelot 规则。

ewald-geometry:

3d: 在所有三个维度中执行Ewald求和。
3dc:倒数和仍然在3D中执行,但在 z 维度中应用力和电势校正以产生伪 2D 和。如果系统在 x-y 平面中具有 slab geometry,则可以尝试增加 box 的 z 尺寸(box 高度通常为 slab 高度的3倍),并使用此选项。

epsilon-surface (0): 这控制了对三维 Ewald 求和的偶极子校正。默认值为0意味着它已关闭。通过将其设置为无限系统周围假想表面的相对介电常数值来打开它。如果您的系统中有自由移动电荷,则不应使用此功能。该值不影响长程修正的 slab 3DC变量。

; OPTIONS FOR ELECTROSTATICS AND VDW 2021.2
; Method for doing electrostatics
coulombtype              = PME
coulomb-modifier         = Potential-shift-Verlet
rcoulomb-switch          = 0
rcoulomb                 = 1.4
; Relative dielectric constant for the medium and the reaction field
epsilon-r                = 1
epsilon-rf               = 0
; Method for doing Van der Waals
vdw-type                 = Cut-off
vdw-modifier             = Potential-shift-Verlet
; cut-off lengths
rvdw-switch              = 0
rvdw                     = 1.4
; Apply long range dispersion corrections for Energy and Pressure
DispCorr                 = EnerPres
; Extension of the potential lookup tables beyond the cut-off
table-extension          = 1
; Separate tables between energy group pairs
energygrp-table          =
; Spacing for the PME/PPPM FFT grid
fourierspacing           = 0.12
; FFT grid size, when a value is 0 fourierspacing will be used
fourier_nx               = 0
fourier_ny               = 0
fourier_nz               = 0
; EWALD/PME/PPPM parameters
pme_order                = 4
ewald_rtol               = 1e-5
ewald-rtol-lj            = 0.001
lj-pme-comb-rule         = Geometric
ewald-geometry           = 3d
epsilon-surface          = 0
implicit-solvent         = no

Temperature coupling (tcoupl, nsttcouple, tc-grps, tau-t, ref-t)(已完成)

tcoupl:

no: 不使用温度耦合。
berendsen: 使用 Berendsen 恒温器的温度耦合,bath 温度为 ref-t、时间常数为 tau-t。可以单独耦合多个组,这些组在由空格分隔的 tc-grps 字段中指定。这是一个有年头的方法,包含它只是为了能够重现以前的运行,我们强烈建议不要将其用于新的模拟运行。有关详细信息,请参阅手册。
nose-hoover: 使用 Nose-Hoover 扩展系综的温度耦合。参考温度和耦合基团如上一选项,但在这种情况下,tau-t 控制平衡时的温度波动周期,这与松弛时间略有不同。对于 NVT 模拟,守恒能量将写入能量和日志文件。
andersen: 通过在每个时间步随机化一部分粒子速度来实现温度耦合。参考温度和耦合组如上一选项。tau-t 是每个分子随机化之间的平均时间。在某种程度上抑制了粒子动力学特征,但很少或没有遍历性问题。目前仅使用 velocity Verlet 实现,未使用约束实现。
andersen-massive: 通过在不频繁的时间步长上随机化所有粒子的速度进行温度耦合。参考温度和耦合组如上一选项。tau-t 是所有分子随机化之间的时间。在某种程度上抑制粒子动力学,但很少或没有遍历性问题。目前仅使用 velocity Verlet 实现。
3dc:倒数和仍然在3D中执行,但在 z 维度中应用力和电势校正以产生伪 2D 和。如果系统在 x-y 平面中具有 slab geometry,则可以尝试增加 box 的 z 尺寸(box 高度通常为 slab 高度的3倍),并使用此选项。
v-rescale: 使用具有随机项的速度重标度的温度耦合(JCP 126, 014101)。这个恒温器类似于 Berendsen 耦合,使用 tau-t 进行相同的缩放,但随机项确保生成适当的正则系综。用 ld-seed 设置随机种子。即使 tau-t=0,该恒温器也能正常工作。对于NVT模拟,守恒的能量量会写入能量和日志文件。

nsttcouple (-1): 耦合温度的频率。默认值 -1 将 nsttcouple 设置为 10,如果需要精确积分,则设置为更少的步长。请注意,默认值不是1,因为获得动能需要额外的计算和通信。对于 velocity Verlet 积分器,nsttcouple 设置为 1。

nh-chain-length (10): 对于 velocity Verlet 积分器,integrator=md 仅支持 1。默认情况下,NH(Nose-Hoover)链变量的数据不会输入到 edr 文件,但可以使用 print-nose-hoover-chain-variables 选项打开。

print-nose-hoover-chain-variables:

no: 不在能量文件中存储Nose-Hoover链变量。
yes: 将 Nose-Hoover 链的所有位置和速度存储在能量文件中。

tc-grps: 用于耦合到单独的温度浴的组别,各组间以空格间隔

tau-t [ps]: 耦合时间常数(tc-grps中每一个均应有对应),-1 表示无温度耦合。

ref-t [K]: 耦合参考温度(tc-grps中每一个均应有对应)。

Pressure coupling (pcoupl, pcoupltype, nstpcouple, tau-p, compressibility, ref-p, refcoord-scaling)(已完成)

pcoupl:

no: 无压力耦合,这意味着固定的盒子大小。
Berendsen: 具有时间常数 tau-p 的指数松弛压力耦合。每个 nstpcouple 步骤都会缩放 box。这个恒压器不能产生正确的热力学系综;包含它只是为了能够重现以前的运行,我们强烈建议不要将其用于新的模拟。有关详细信息,请参阅手册。
C-rescale: 具有时间常数 tau-p 的指数松弛压力耦合,包括一个随机项以强制执行正确的体积波动。每个 nstpcouple 步骤都会缩放 box。它可以用于平衡和最终模拟,但目前不能用于完全各向异性的耦合。
Parrinello-Rahman: 扩展系综压力耦合,其中 box 向量服从运动方程。原子的运动方程与此耦合。不会发生瞬时缩放。对于 Nose-Hoover 温度耦合,时间常数 tau-p 是平衡时压力波动的周期。当您希望在数据采集期间应用压力缩放时,这可能是一种更好的方法,但请注意,如果您换到了不同的压力,可能会出现非常大的振荡。对于需要精确涨落的NPT系综的模拟,或者如果压力耦合时间非常短,该方法可能不合适,因为在GROMACS实施的某些步骤中,使用了前一个时间步的压力来计算当前时间步压力。
MTTK: Martyna-Tuckerman-Tobias-Klein 实现,仅适用于 integrator=md-vv 或 integrator=md-vv-avek,与 Parrinello Rahman 非常相似。对于 Nose-Hoover 温度耦合,时间常数 tau-p 是平衡时压力波动的周期。当您希望在数据采集期间应用压力缩放时,这可能是一种更好的方法,但请注意,如果您从不同的压力开始,可能会出现非常大的振荡。目前(从版本5.1开始),它只支持各向同性缩放,并且只在没有约束的情况下工作。

pcoupltype: 指定所用压力耦合的各向同性类型。每种类型取一个或多个 compressibility(可压缩性)和 ref-p 。tau-p 仅允许一个值。

isotropic: 时间常数为 tau-p 的各向同性压力耦合。compressibility 和 ref-p 各需要一个值。
semiisotropic: 在 x 和 y 方向上各向同性但在 z 方向上不同的压力耦合。这对于膜模拟是有用的。对于 x/y 和 z 方向,分别需要 compressibility 和 ref-p 的两个值。
anisotropic: 与之前相同,但 xx、yy、zz、xy/yx、xz/zx 和 yz/zy 组件分别需要6个值。当非对角压缩性设置为零时,矩形 box 将保持矩形。请注意,各向异性缩放可能会导致模拟 box 发生极端变形。
surface-tension: 平行于 xy 平面的表面的表面张力耦合。对 z 方向使用法向压力耦合,而表面张力耦合到盒子的 x/y 尺度。第一个 ref-p 值是参考表面张力乘以表面数 [bar*nm],第二个值是参考 z-pressure [bar]。这两个 compressibility 分别是 x/y 和 z 方向上的压缩率。z-compressibility 的值应该相当精确,因为它会影响表面张力的收敛,也可以将其设置为零,使 box 具有恒定的高度。

nstpcouple (-1): 耦合压力的频率。默认值 -1 将 nstpcouple 设置为 10,如果需要精确积分,则设置为更小的步长间隔。请注意,默认值不是 1,因为获得 virial 需要额外的计算和通信。对于 velocity Verlet 积分器,nstpcouple 设置为1。

tau-p (1) [ps]: 压力耦合的时间常数(所有方向一个值)。

compressibility [bar-1]: 可压缩性(注:现在实际上是 bar-1)。例如在 1 atm 和 300 K 条件下,水的可压缩性为 4.5e-5 bar-1。所需值的数量由 pcoupltype 指明。

ref-p [bar]: 耦合的参考压力,所需值的数量由 pcoupltype 指明。

refcoord-scaling:

no: 不修改位置约束的参考坐标。请注意,使用此选项,virial 和压力可能定义不清,请参阅[此处](https://manual.gromacs.org/current/reference-manual/functions/restraints.html#reference-manual-position-restraints)了解更多详细信息。
all: 参考坐标用压力耦合的缩放矩阵进行缩放。
com: 使用压力耦合的缩放矩阵缩放参考坐标的质心。每个参考坐标到质心的矢量不按比例缩放,即使存在多个具有位置约束的分子,也只使用一个COM。为了计算起始配置中参考坐标的COM,不考虑周期性边界条件。请注意,使用此选项,virial 和压力可能定义不清,请参阅[此处](https://manual.gromacs.org/current/reference-manual/functions/restraints.html#reference-manual-position-restraints)了解更多详细信息。
; OPTIONS FOR WEAK COUPLING ALGORITHMS
; Temperature coupling
Tcoupl                   = Berendsen
nsttcouple               = -1
nh-chain-length          = 10
print-nose-hoover-chain-variables = no
; Groups to couple separately
tc_grps                  = Protein_MOL Water_and_ions
; Time constant (ps) and reference temperature (K)
tau_t                    = 0.5       0.5
ref_t                    = 310       310
; pressure coupling
Pcoupl                   = Berendsen
pcoupltype               = isotropic
nstpcouple               = -1
; Time constant (ps), compressibility (1/bar) and reference P (bar)
tau_p                    = 1.0
compressibility          = 4.5e-5
ref_p                    = 1.0
; Scaling of reference coordinates, No, All or COM
refcoord_scaling         = com

Simulated annealing (annealing, annealing-npoints, annealing-time, annealing-temp)(已完成)

对GROMACS中的每个温度组分别控制模拟退火。参考温度是一个分段线性函数,但您可以为每个组使用任意数量的点,并为每个组选择单个序列或周期行为。实际退火是通过动态改变所选恒温器算法中使用的参考温度来执行的,因此请记住,系统通常不会立即达到参考温度!

annealing: 每个温度组的退火类型。

no: 无模拟退火,仅耦合到参考温度值。
single: 单个退火点序列。如果模拟时间长于最后一个时间点,则在退火顺序达到最后一个时刻后,温度将耦合到此恒定值。
periodic: 一旦达到最后一个参考时间,退火将在第一个参考点重新开始。重复此操作,直到模拟结束。

annealing-npoints: 每个温度组使用的退火参考/控制点数量列表。未退火的组使用0。其数量应等于温度组的数量。

annealing-time: 每组退火参考/控制点的时间列表。如果您使用的是周期性退火,则将使用时间对最后一个值进行取模,即如果值为0、5、10和15,则耦合将在 15ps、30ps、45ps 等之后以 0ps 值重新开始。其数量应等于 annealing-npoints 中给出的数字之和。

annealing-temp: 每组退火参考/控制点的温度列表。其数量应等于 annealing-npoints 中给定的数量之和。

看不明白? 行,让我们举个例子。假设您有两个温度组,将两组设置为 annealing = single periodic,每组退火的点数 annealing-npoints = 3 4,退火时间 annealing-time = 0 3 6 0 2 4 6,最后将温度设置为 annealing-temp = 298 280 270 298 320 320 298。第一组将在 0ps 时耦合到 298K,但参考温度将在 3ps 时线性下降到 280K,然后从 3ps 到 6ps 在 280K 和 270K 之间线性变化。在 270K 下保持恒定。第二组在 0ps 时耦合到 298K,在 2ps 时线性增加到 320K,在 4ps 之前保持不变。在 4ps 和 6ps 之间,它下降到 298K,然后又以相同的模式重新开始,即在 6ps 和 8ps 之间从 298K 线性上升到 320K。如果您不确定,请检查 gmx grompp 打印的摘要!

; SIMULATED ANNEALING  2021.2
; Type of annealing for each temperature group (no/single/periodic)
annealing                =
; Number of time points to use for specifying annealing in each group
annealing-npoints        =
; List of times at the annealing points for each group
annealing-time           =
; Temp. at each annealing point, for each group.
annealing-temp           =

velocity generation (gen-vel, gen-temp, gen-seed)(已完成)

gen-vel:

no: 不生成速度。当输入结构文件中没有速度时,速度设置为零。
yes: 根据温度 gen-temp 下的麦克斯韦分布,使用随机种子生成 gmx grompp 中的速度。这仅在 integrator=md 时才有意义。

gen-temp (300) [K]: Maxwell 分布所用温度。

gen-seed (-1) [integer]: 用于初始化随机速度的随机生成器,当 gen-seed 设置为 -1 时,使用伪随机种子。

; GENERATE VELOCITIES FOR STARTUP RUN 2021.2
gen_vel                  = yes
gen_temp                 = 310
gen-seed                 = -1

bonds (constraints, constraint-algorithm, continuation, shake-tol, lincs-order, lincs-iter, lincs-warnangle, morse)(已完成)

constraints: 控制拓扑中的哪些键(bonds)将转换为刚性完整约束(constraints)。请注意,典型的刚性水模型没有键,而是一个专门的 [settles] 指令,因此不受此选项的影响。

none: 不将键转化为约束。
h-bonds: 将与H原子的键合转换为约束。
all-bonds: 将所有键转换为约束。
h-angles: 将所有键转换为约束,并将涉及H原子的角度(angles)转换为键约束(bond-constraints)。
all-angles: 将所有结合转换为约束,将所有角度转换为结合约束。

constraint-algorithm: 能够满足所有非 SETTLE 完整约束的求解算法。

LINCS: 线性约束求解器(LINear Constraint Solver)。通过区域分解,使用并行版本的 P-LINCS。精度由 lincs-order 设置,该值设置了矩阵逆展开中的矩阵数。在矩阵求逆校正之后,该算法进行迭代校正,以补偿由于旋转引起的延长。这种迭代的次数可以用 lincs-iter 控制。每 nstlog 步都会将均方根相对约束偏差输出到日志文件中。如果一个键在一个步骤中旋转超过 lincs-warnangle,则会在日志文件和 stderr 中输出一条警告。LINC 不应与耦合角度约束一起使用。
SHAKE: SHAKE 比 LINC 稍慢且不太稳定,但可用于角度约束。相对公差用 shake-tol 设置,0.0001 适用于一般 MD。SHAKE 不支持不同分解域上原子之间的约束,因此只有在使用所谓的更新组(update-groups)时,它才能用于区域分解,这通常是仅约束涉及氢的键的情况。SHAKE 不能与能量最小化一起使用。

continuation: 此选项以前称为 unconstrained-start。

no: 将约束应用于启动配置并重置 shell。
yes: 不要将约束应用于开始配置,也不要重置 shell,这对于精确的二分法和重新运行非常有用。

shake-tol (0.0001): SHAKE 的相对公差

lincs-order (4): 约束耦合矩阵展开中的最高阶。当约束形成三角形时,相同阶次的附加展开仅应用于此类三角形内的耦合的法向展开之上。对于一般MD模拟,4阶通常就够了,对于具有虚拟位点或 BD 的大时间步长,需要6阶。对于双精度的精确能量最小化,可能需要8阶或更多。请注意,在单精度中,由于舍入误差的放大,高于6的阶数通常会导致精度降低。通过区域分解,单元大小受到 lincs-order+1 个约束的跨越距离限制。如果想要扩展到这个极限之外,可以降低 lincs-order 并增加 lincs-iter,因为当 (1+lincs-iter)*lincs-order 保持不变时,精度不会下降。

lincs-iter (1): 在 LINC 中校正旋转延长的迭代次数。对于正常运行,一次就够了,但是对于想要精确节约能量的 NVE 模拟,或者对于双精度下的精确能量最小化,您可能希望将其增加到2。请注意,在单精度下,使用多于1次迭代通常会因舍入误差的放大而导致更差的精度。

lincs-warnangle (30) [deg]: 键在 LINC 发出警告之前可以旋转的最大角度。

morse:

no: 键由谐波势表示。
yes: 键由 Mores 势表示。

Shake-SOR: yes or no.(不)使用使用连续超松弛减少抖动迭代次数。

; OPTIONS FOR BONDS    2021.2
constraints              = all-bonds
; Type of constraint algorithm
constraint_algorithm     = lincs
; Do not constrain the start configuration
continuation             = no
; Use successive overrelaxation to reduce the number of shake iterations
Shake-SOR                = no
; Relative tolerance of shake
shake-tol                = 0.0001
; Highest order in the expansion of the constraint coupling matrix
lincs-order              = 4
; Number of iterations in the final step of LINCS. 1 is fine for
; normal simulations, but use 2 to conserve energy in NVE runs.
; For energy minimization with constraints it should be 4 to 8.
lincs-iter               = 1
; Lincs will write a warning to the stderr if in one step a bond
; rotates over more degrees than
lincs-warnangle          = 30
; Convert harmonic bonds to morse potentials
morse                    = no

Energy group exclusions (energygrp-excl)(已完成)

energygrp-excl: 排除所有非键相互作用的能量基团对。例如:如果您有两个能量组Protein 和 SOL,指定 energygrp-excl = Protein Protein SOL SOL 将仅给出蛋白质和溶剂之间的非键相互作用。这对于使用 mdrun-rerun 加速能量计算以及排除冻结组内的相互作用特别有用。

; ENERGY GROUP EXCLUSIONS
; Pairs of energy groups for which all non-bonded interactions are excluded
energygrp-excl           =

Walls (nwall, wall-type, wall-r-linpot, wall-atomtype, wall-density, wall-ewald-zfac)(已完成)

nwall (0): 设置为1时,z=0 处有一面墙,设置为2时,z=z-box 处也有一面墙。墙只能与 pbc=xy 一起使用。当设置为2时,可以使用压力耦合和 Ewald 求和(通常最好使用 x/y 可压缩性设置为 0 的半各向同性压力耦合,否则表面积将发生变化)。墙通过可选的 wall-atomtype 与系统的其余部分交互。自动添加能量组 wall0 和 wall1(对于 nwall=2),以监控能量组与每个墙的相互作用。将禁用z方向上的质心运动移除。

wall-atomtype: 每个墙在力场中的原子类型名称。例如通过在拓扑中定义一种特殊的墙原子类型及其自身的组合规则,将允许独立调整每个原子类型与墙的交互。

wall-type:

9-3: 墙后体积上的LJ积分:9-3 势。
10-4: 墙表面上的LJ积分:10-4 势。
12-6: 与墙在 z 距上的直接LJ势。

table: 用户定义以离墙距离 z 为索引的电势,表格的读取方式类似于 energygrp-table 选项,其中第一个名称代表一般能量组,第二个名称为 wall0 或 wall1,仅使用色散和排斥列。

wall-r-linpot (-1) [nm]: 在离壁的这一距离以下,电势线性持续,因此力是恒定的。将此选项设置为正值对于某些原子超出壁时的平衡特别有用。当该值<=0时(<0 对于 wall-type =table 而言),当原子越过墙时会产生致命错误。

wall-density [nm-3] / [nm-2]: 对于 wall-type = 9-3和10-4,每个壁的原子数密度。

wall-ewald-zfac (3): 第三个盒向量的比例因子仅适用于 Ewald 求和,最小值为2。Ewald 求和只能在 nwall=2 的情况下使用,其中应使用 Ewald-geometry=3dc。box 中的空层用于减少周期图像之间的非物理库仑相互作用。

; WALLS
; Number of walls, type, atom types, densities and box-z scale factor for Ewald
nwall                    = 0
wall-type                = 9-3
wall-r-linpot            = -1
wall-atomtype            =
wall-density             =
wall-ewald-zfac          = 3

COM pulling (pull, …)(已完成)

设置是否激活对相应变量的牵引。请注意,在应用牵引坐标的情况下,可以有多个(使用 pull-ncoords 设置),因此将存在多个相关的 mdp。对应于 pull-coord1-vec 之类的参考文档应理解为应用于特定的牵引坐标,例如,第二个牵引坐标由 pull-coord2-vec、pull-coord2-k 等描述。

以下选项适用于2018以后的版本,5.x 及先前的版本在部分选项上有所不同,但基本设置类似,在此不再赘述,可以参考此处。

pull:

no: 不使用质心牵引。以下所有牵引选项都将被忽略(如果存在于 mdp 文件中,则会生成警告)。
yes: 质心牵引将使用 1 或多个牵引坐标应用于 1 或更多组。

pull-cylinder-r (1.5) [nm]: pull-coord1-geometry=cylinder 中圆柱半径。

pull-constr-tol (10-6): 约束牵引的相对约束公差。

pull-print-com:

no: 所有组的 COM 均不输出。
yes: 输出所有质心牵引坐标中所有组的 COM 信息。

pull-print-ref-value:

no: 不输出每个牵引坐标的参考值。
yes: 输出。

pull-print-components:

no: 仅打印每个牵引坐标的距离信息。
yes: 打印在 pull-coord1-dim 中选择的距离和笛卡尔分量。

pull-nstxout (50): 写入所有牵引组 COM 的频率(0为从不)。

pull-nstfout (50): 写入所有牵引组力的频率(0为从不)。

pull-pbc-ref-prev-step-com:

no: 使用参考原子( pull-group1-pbcatom )处理周期性边界条件。
yes: 使用上一步的 COM 作为处理周期性边界条件的参考。使用参考原子(pull-group1-pbcatom)初始化使该原子应位于组的中心。如果一个或多个牵引组较大,则使用该方法可能会更好。

pull-xout-average:

no: 写出所有牵引组的瞬时坐标。
yes: 写出所有牵引组的平均坐标(自上次输出以来)。请注意,一些分析工具可能需要瞬时坐标的输出。

pull-fout-average:

no: 写出所有牵引组的瞬时力。
yes: 写出所有牵引组的平均力(自上次输出以来)。请注意,一些分析工具可能需要瞬时力的输出。

pull-ngroups (1): 牵引组的数量,不包括绝对参考组。牵引组可以在多个牵引坐标中重用。下面只给出了 组1 的牵引选项,其他组只需增加 组索引号 即可。

pull-ncoords (1): 牵引坐标的数量。下面只给出了 坐标1 的牵引选项,进一步的坐标只需增加 坐标索引号 即可。

pull-group1-name: 在索引文件或默认组中查找 牵引组1 的名称以获得所涵盖的原子。

pull-group1-weights: 可选,相对质量(与原子质量相乘得 COM 的总重量)。该数字应为0(表示全部相对质量为1)或为牵引基团中的原子数。

pull-group1-pbcatom (0): 用于处理牵引组内周期性边界条件的参考原子(这对组间 pbc 的处理没有影响)。仅当牵引组的直径大于最短 box 矢量的一半时,此选项才有必要。为了确定 COM,将组中的所有原子置于其最接近pull-group1-pbcatom的周期图像处。值为 0 表示使用中间原子(按数字),这仅对小基团安全。gmx-grompp 检查从参考原子(特别选择或不选择)到牵引组中其他原子的最大距离是否过大。此参数不适用于 pull-coord1-geometry=cylinder。值 -1 将启用余弦加权,这对于周期系统中的一组分子非常有用,例如 water slab(参见Engin et al.J.Chem.Phys.B 2010)。

pull-coord1-type:

umbrella: 使用参考组和一个或多个组之间的伞形势来拉动质心。
constraint: 使用参考组和一个或多个组之间的约束进行质心牵引。设置与 umbrella 相同,只是应用了刚性约束而不是简谐势。请注意,此类型不支持与多时间步进(mts)相结合。
constant-force: 使用线性势和恒定力的质心拉力。对于该选项,没有参考位置,因此不使用参数 pull-coord1-init 和 pull-coord1-rate。
flat-bottom: 在 pull-coord1-init 以上的距离施加简谐势,否则不施加。
flat-bottom-high: 在低于 pull-coord1-init 的距离处施加简谐势,否则不施加。
external-potential: 需要由另一个模块提供的外部势。

pull-coord1-potential-provider: 为 pull-coord1-type=external-potential 提供势的外部模块的名称,如 awh,见 AWH adaptive biasing 条目。

pull-coord1-geometry:

distance: 沿着连接两组的向量拉动。可以使用 pull-coord1-dim 选择方向组合。
direction: 按 pull-coord1-vec 的方向拉动。
direction-periodic: 与 pull-coord1-geometry=direction 相似,但不应用周期性的盒向量校正以将距离保持在盒长度的一半以内。这(仅)适用于通过使用一定牵引速率连续改变参考位置将组推离 box 长度的一半以上的情况。使用这种几何结构,box 在拉力尺寸上不应是动态的(例如,无压力缩放),拉力不应添加到 virial。
direction-relative: 与 pull-coord1-geometry=direction 相似,但牵引向量是指从第三个牵引组的 COM 指向第四个牵引组 COM 的向量。这意味着需要在 pull-coord1-groups 提供4组。请注意,拉力将在拉力矢量上产生扭矩,这反过来会在定义矢量的两组上产生垂直于拉力矢量的力。如果希望牵引组在由两个组决定的向量之间移动,只需使用这两个组的并集作为参考组。
cylinder: 用于相对于参考 COM(由参考组的局部圆柱形部分给出)的层牵引。牵引方向为 pull-coord1-vec。从 pull-coord1-groups 中的两组中的第一组中,围绕穿过第二组 COM 的轴选择一个圆柱体,方向为 pull-coord1-vec,半径为 pull-cylinder-r。当径向距离从 0 到 pull-cylinder-r时,原子的重量不断减小到零(也使用质量加权)。径向相关性在两个牵引组上产生径向力。请注意,半径应小于 box 大小的一半。对于倾斜圆柱体,它们应该比 box 大小的一半更小,因为参考基团中的原子与牵引基团的 COM 之间的距离既有径向分量,也有轴向分量。约束牵引不支持此几何图形。
angle: 沿着由四组值所定义的角度拉动。该定义为两个向量之间的角度:将第一组 COM 连接到第二组 COM 的向量,以及将第三组 COM 连接至第四组 COM 的矢量。
angle-axis: 与 pull-coord1-geometry=angle 相似,但第二个向量由 pull-coord1-vec 给出,因此只需要给出定义第一个向量的两个组。
dihedral: 沿六个组定义的二面角拉动。这些两两定义了三个矢量:将 组1的COM 连接到 组2的COM 的矢量,将 组3的COM 连接至 组4的COM,将 组5的COM 连接于 组6的COM。然后,将二面角定义为两个平面之间的角度:由前两个矢量所在的平面和后两个矢量所在的平面。
transformation: 使用 pull-coord1-expression 定义的数学表达式变换其他牵引坐标。较低索引的牵引坐标可以用作该牵引坐标的变量。因此,牵引变换坐标应具有比其变换的所有牵引坐标更高的牵引坐标索引。

pull-coord1-expression: 将较低索引的牵引坐标转换为新坐标的数学表达式。牵引坐标在方程中被称为变量,因此pull-coord1的值变为“x1”,pull-coord2的值变为了“x2”等。使用 muParser 对数学表达式进行求值。仅当 pull-coord1-geometry 设置为 transformation 时有意义。

pull-coord1-dx (1e-9): 相对于其他牵引坐标,在牵引坐标的数值推导中使用的有限差分大小。当前的实现使用简单的一阶有限差分法进行推导,使得 f’(x)=(f(x+dx)-f(x))/dx 仅在 pull-coord1-geometry 设置为 transformation 时相关。

pull-coord1-groups: 与此牵引坐标将对应的组索引。所需的组索引数取决于 pull-coord1-geometry。第一个索引可以是0,在这种情况下,使用 pull-coord1-origin 的绝对基准。对于绝对基准,系统不再是平移不变的,人们应该考虑如何处理质心运动。

pull-coord1-dim (Y Y Y): 与此牵引坐标将对应的牵引维度,并在 pull-print-components = pull-coord1-start=yes 打印到输出文件。当 pull-coord1-geometry = distance 时,只有设置为Y的笛卡尔坐标分量对距离有贡献。因此,将其设置为 (Y Y N) 会导致 x/y 平面中的距离改变。对于其他geometry,pull-coord1-vec 中所有具有非零值的维度应设置为Y,其他维度的值仅影响输出。

pull-coord1-origin (0.0 0.0 0.0): 与绝对基准一起使用的牵引参考位置。

pull-coord1-vec (0.0 0.0 0.0): 牵引方向。gmx-grompp 会对向量进行归一化

pull-coord1-start:

no: 不修改 pull-coord1-init。
yes: 将起始构象的 COM 距离添加到 pull-coord1-init。

pull-coord1-init (0.0) [nm] or [deg]: t=0时的基准距离或基准角。

pull-coord1-rate (0) [nm/ps] or [deg/ps]: 参考位置或参考角的变化率。

pull-coord1-k (0) [kJ mol-1nm-2] or [kJ mol-1nm-1] or [kJ mol-1rad-2] or [kJ mol-1rad-1]: 力常数。对于 umbrella 是简谐力常数,单位为 kJ mol-1nm-2(或角度为 kJ mol-1rad-2)。对于恒力牵引,这是线性势的力常数,因此为负,恒定力的单位为 kJ mol-1nm-1(或角度为 kJ mol-1rad-1)。请注意,对于角度,力常数以弧度表示(而 pull-coord1-init 和 pull-coord1-rate 以度表示)。

pull-coord1-kB (pull-k1) [kJ mol-1nm-2] or [kJ mol-1nm-1] or [kJ mol-1rad-2] or [kJ mol-1rad-1]: 类似于 pull-coord1-k,但对应于状态B。这仅在 free-energy 开启时使用。力常数为 (1-λ)pull-coord1-k+lambdapull-coord1-kB。

; COM PULLING    2021.2
pull                     = yes
; Cylinder radius for dynamic reaction force groups (nm)
pull-cylinder-r          = 1.5
pull-constr-tol          = 1e-06
pull-print-com           = no
pull-print-ref-value     = no
pull-print-components    = no
pull-nstxout             = 50
pull-nstfout             = 50
pull-pbc-ref-prev-step-com = yes
pull-xout-average        = no
pull-fout-average        = no
; Number of pull groups
pull_ngroups             = 2
; Number of pull coordinates
pull_ncoords             = 1
; Group and coordinate parameters
pull_group1_name         = MOL
pull-group1-weights      =
pull-group1-pbcatom      = 0
pull_group2_name         = Protein
pull-group2-weights      =
pull_group2_pbcatom      = 2491
pull_coord1_type         = umbrella
pull-coord1-potential-provider =
pull_coord1_geometry     = distance
pull_coord1_groups       = 1 2
pull_coord1_dim          = N Y N
pull-coord1-origin       = 0.0 0.0 0.0
pull-coord1-vec          = 0.0 0.0 0.0
pull_coord1_start        = yes
pull-coord1-init         = 0
pull_coord1_rate         = 0.0
pull_coord1_k            = 1000
pull-coord1-kB           = 1000
; COM PULLING   5.0.7
; Pull type: no, umbrella, constraint or constant-force
pull                     = umbrella
; Pull geometry: distance, direction, direction-periodic or cylinder
pull_geometry            = distance
; Select components for the pull vector. default: Y Y Y
pull_dim                 = N Y N
; Cylinder radius for dynamic reaction force groups (nm)
pull-r1                  = 1
; Switch from r1 to r0 in case of dynamic reaction force
pull-r0                  = 1.5
pull-constr-tol          = 1e-06
pull_start               = yes
pull-print-reference     = no
pull-nstxout             = 10
pull-nstfout             = 1
; Number of pull groups
pull_ngroups             = 2
; Number of pull coordinates
pull_ncoords             = 1
; Group name, weight (default all 1), vector, init, rate (nm/ps), kJ/(mol*nm^2)
pull_group1_name         = MOL
pull-group1-weights      =
pull-group1-pbcatom      = 0
pull_group2_name         = Protein
pull-group2-weights      =
pull-group2-pbcatom      = 0
pull_coord1_groups       = 1 2
pull-coord1-origin       = 0.0 0.0 0.0
pull-coord1-vec          = 0.0 0.0 0.0
pull-coord1-init         = 0
pull_coord1_rate         = 0.005
pull_coord1_k            = 1000
pull-coord1-kB           = 1000

AWH adaptive biasing (awh, … )(待完善)

awh:

no: 无偏置。
yes: 使用 AWH 方法自适应偏置反应坐标并估计相应的 PMF。PMF 和其他 AWH 数据以 awh-nstout 设置的间隔写入能量文件,并可使用 gmx awh 工具提取。AWH坐标可以是多维的,并且通过将每个维度映射到拉坐标索引来定义。仅当相关拉动坐标索引的 pull-coord1-type=external-potential 且 pull-coord1-potential-provider=awh 时,才允许这样做。AWH不支持拉动几何图形“方向周期”。

awh-potential:

convolved: 施加的偏置势是偏置函数和一组谐波伞型位的卷积(见下文 awh-potential=umbrella ),由此产生平滑的势函数和力。势的分辨率由每个伞形采样的力常数设置,见 awh1-dim1-force-constant。此选项与使用自由能 lambda 状态作为 AWH 反应坐标不兼容。
yes: 通过使用 Monte-Carlo 采样控制简谐势的位置来施加偏置势。力常数设置为 awh1-dim1-force-constant。每个 awh 采样步骤使用 Monte-Carlo 对 umbrella 进行采样。当使用自由能 lambda 状态作为 AWH 反应坐标时,需要此选项。除此之外,此选项主要用于比较和测试目的,因为使用 umbrella 没有任何优势。

awh-share-multisim:

no: AWH 不会在使用 gmx mdrun 选项 -multidir 启动的模拟中共享偏置,偏置将是独立的。
yes: 使用 gmx mdrun -multidir,对于 awh1-share-group>0 的偏置和 PMF 估计值,其将在具有相同 awh1-share-group 值的偏置模拟中共享。这些模拟应具有相同的 AWH 设置以便于共享。gmx mdrun 将检查模拟在技术上是否与共享兼容,但用户应检查偏差共享在实际上是否合理。

awh-seed (-1): Monte Carlo 抽样窗口位置的随机种子,其中-1表示生成种子。仅与 awh-potential=umbrella 一起使用。

awh-nstout (100000): 将AWH数据打印到能量文件之间的步数,应为 nstenergy 的倍数。

awh-nstsample (10): 坐标值采样之间的步数。该采样是更新偏置和估计 PMF 及其他 AWH 观测值的基础。

awh-nsamples-update (10): 每次 AWH 更新所用的坐标采样数。以步长为单位的更新间隔是 awh-nstsample 乘以该值。

awh-nbias (1): 偏置的数量,每个偏置作用于自己的坐标。应为每个偏置指定以下选项,尽管下面仅显示了偏置编号1的选项。通过将“1”替换为其他偏置组的代号,可以获得相应选项。

awh1-error-init (10.0) [kJ mol-1]: 估计的该偏置下 PMF 的初始平均误差。该值与给定扩散常数 awh1-dim1-diffusion 一起确定初始偏置速率。这种误差显然是先验未知的,然而这种粗略的估计仍然是有必要的。一般来说,在启动新模拟时,将 awh1-error-init 保留为其默认值。另一方面,当存在 PMF 的先验数据时(例如,当已知初始PMF估计值时,请参见 awh1-user-data 选项),则 awh1-error-init 应反映该数据。

awh1-growth:

exp-linear: 每个偏置保持坐标样本的参考权重直方图。其大小设置了偏置函数和自由能估计更新的大小(少量样本对应于大更新,反之亦然)。因此,其增长率决定了最大收敛速度。默认情况下,有一个初始阶段,直方图接近指数增长(但低于采样率)。在接下来的最后一个阶段,增长率是线性的,等于采样率(由 awh-nstsample 设置)。在高自由能势垒尚未被偏置平坦化的新模拟开始时,初始阶段通常是有效收敛所必需的。
linear: 类似 awh1-growth=exp-linear,但跳过初始阶段。如果存在先验数据(请参阅 awh1-error-init),这可能非常有用,从而消除了对初始阶段的需要。这也是与 awh1-target=local-boltzmann 兼容的设置。

awh1-equilibrate-histogram:

no: 不平衡直方图。
yes: 在进入初始阶段之前(请参见 awh1-growth=exp-linear),确保采样权重的直方图足够接近目标分布(具体而言,至少80%的目标区域需要具有小于20%的局部相对误差)。此选项通常仅在 awh1-share-group>0 且初始配置不能很好地代表目标分布时使用。

awh1-target:

constant: 在定义的采样间隔内(由 [awh1-dim1-start,awh1-dim1-end] 定义),将偏置调整为恒定(均匀)坐标分布。
cutoff: 类似于 awh1-target=constant,但目标分布与 1/(1+exp(F - awh1-target=cutoff)) 成比例,其中 F 是相对于估计的全局最小值的自由能,这提供了在自由能低于截止值的区域中平坦目标分布到自由能高于截止值区域中的玻耳兹曼分布的平滑切换。
boltzmann: 目标分布是 Boltzmann 分布,具有由 awh1-target-beta-scaling 给出的标度β(逆温度)因子,例如值为 0.1 将给出与模拟温度缩放 10 的相同采样的坐标分布。
local-boltzmann: 与 boltzmann 相同的目标分布和 awh1-target-beta-scaling 缩放的使用,但朝向目标分布的收敛本质上是局部的,即偏置的变化率仅取决于局部采样。这种局部收敛特性仅与 awh1-growth=linear 兼容,因为对于 awh1-growth=exp-linear,线性直方图在初始阶段被全局重新缩放。

awh1-target-beta-scaling (0): 对于 awh1-target=boltzmann 和 awh1-target=local-boltzmann,它是取自 (0,1) 中值的无单位β比例因子。

awh1-target-cutoff (0) [kJ mol-1]: awh1-target=cutoff 的截止值,应大于0。

awh1-user-data:

no: 使用默认值初始化PMF和目标分布。
yes: 使用用户提供的数据初始化 PMF 和目标分布。对于 awh-nbias=1,gmx mdrun 将需要一个运行目录中运行目录中的文件 awhinit.xvg。对于多个偏置,gmx mdrun 需要文件 awhinit1.xvg、awhinit2.xvg 等。可以使用 -awh 选项更改文件名。每个输入文件的第一个 awh1-ndim 列应包含坐标值,以便每行定义坐标空间中的一个点。列 awh1-ndim+1 应包含每个点的 PMF 值(单位:kT)。目标分布列可以在 PMF之后(列 awh1-ndim+2 ),也可以由 gmx awh 编写入同一列中。

awh1-share-group:

0: 不共享。
positive: 在模拟之间共享偏置和PMF估计。这目前仅适用于具有相同索引的偏置。请注意,当前不支持在单个模拟中共享。偏置将在为 awh1-share-group 指定相同值的模拟中共享。要启用此功能,请使用 awh-share-multisim=yes 和 gmx mdrun 选项 -multidir。共享可能会在最初增加收敛性,尽管启动配置可能很关键,尤其是在多个偏差之间共享时。

awh1-ndim (1) [integer]: 坐标的维度数,每个维度映射到一个牵引坐标。应为每个此类维度指定以下选项。下面仅显示维度1的选项。通过将“1”替换为维度索引,可以获得其他维度索引的选项。

awh1-dim1-coord-provider:

pull: 牵引模块为该维度提供反作用力坐标。对于多时间步进,AWH 和 pull 应处于相同的 MTS 级别。
fep-lambda: 自由能 λ 态是这个维度的反应坐标。要使用的 lambda 状态由 fe-lambdas、vdw-lambdas 和 coul-lambdas 等指定,但与 delta-lambda 不兼容,且还需 calc-lambda-neighbors 为 -1。对于多时间步进,AWH 应处于慢水平。此选项需要 awh-potential=umbrella。

awh1-dim1-coord-index (1): 此坐标维度的牵引坐标的索引。

awh1-dim1-force-constant (0) [kJ mol-1 nm-2] or [kJ mol-1 rad-2]: 沿着该坐标维度的(卷积的)伞形势的力常数。

awh1-dim1-start (0.0) [nm] or [deg]: 沿该维度的采样区间的起始值。允许值的范围取决于相关的牵引形(请参见 pull-coord1-geometry)。对于 dihedral,允许 awh1-dim1-start 大于awh1-dim1-end。然后,间隔将从 +period/2 环绕到 -period/2。对于 direction,当方向沿长方体向量且覆盖了长方体长度的 95% 以上时,维度将成为周期性的。请注意,不应沿周期维度施加压力耦合。

awh1-dim1-end (0.0) [nm] or [deg]: 结束值,与 awh1-dim1-start 一起定义采样区间。

awh1-dim1-diffusion (10-5) [nm2/ps], [rad2/ps] or [ps-1]: 确定决定该坐标维度初始偏置率的估计扩散常数。这只需要一个粗略的估计,不会严重影响结果,除非它被设置为非常低的值,导致缓慢收敛,或者非常高,迫使系统远离平衡。不标明此值将生成警告。

awh1-dim1-cover-diameter (0.0) [nm] or [deg]: 直径,需要通过单个模拟围绕坐标值进行采样,然后才认为该点在初始阶段被覆盖(参见 awh1-growth=exp-linear)。值>0 可确保每个覆盖的直径在每个坐标值上连续过渡。对于独立模拟,这一点很对,但对于多偏置共享模拟(awh1-share-group>0)则不然。对于 直径=0 的情况,一旦模拟对整个区间进行了采样,就会发生覆盖,这对于许多共享模拟来说并不保证跨越自由能垒的跃迁。另一方面,当 直径>=采样间隔长度 时,单个模拟独立采样整个间隔会发生覆盖。

Enforced rotation (rotation, …)(待完善)

这些 mdp 参数可用于强制一组原子的旋转,例如蛋白质亚基。参考手册详细描述了可用于实现这种旋转的13种不同势。

rotation:

no: 不应用强制旋转。所有强制旋转选项都将被忽略(如果存在于 mdp 文件中,则会生成警告)。
yes: 将 rot-type0 指定的旋转势应用于 rot-group0 选项下给定的原子组。

rot-ngroups (1): 旋转组的数量。

rot-group0: 索引文件中旋转组0的名称。

rot-type0 (iso): 应用于旋转组0的旋转电势类型。可以是以下类型:iso、iso-pf、pm、pm-pf、rm、rm-pf、rm2、rm2-pf、flex、flex-t、flex2 或 flex2-t。

rot-massw0 (no): 使用质量加权旋转分组位置。

rot-vec0 (1.0 0.0 0.0): 旋转向量,将被归一化。

rot-pivot0 (0.0 0.0 0.0) [nm]: iso、pm、rm 和 rm2的支点。

rot-rate0 (0) [degree ps-1]: 组0的参考旋转速率。

rot-k0 (0) [kJ mol-1 nm-2]: 组0的力常数。

rot-slab-dist0 (1.5) [nm]: slab距离,在选择柔性轴旋转类型时有效。

rot-min-gauss0 (0.001): 待评估力(柔性轴类型)的高斯函数最小值(截止值)。

rot-eps0 (0.0001) [nm2]: rm2* 和 flex2* 电势的加性常数 ε 值。

rot-fit-method0 (rmsd): 确定旋转组的实际角度时的拟合方法(可以是rmsd、norm 或 potential)。

rot-potfit-nsteps0 (21): 对于拟合类型,指在评估旋转势的参考角周围角位置的数量。

rot-potfit-step0 (0.25): 对于拟合类型,两个角位置之间的距离,单位为度。

rot-nstrout (100): 旋转组的角度以及扭矩和旋转势能的输出频率(以步为单位)。

rot-nstsout (1000): 柔性轴类型的每块 slab 数据的输出频率,即角度、扭矩和 slab 中心。

NMR refinement (disre, disre-weighting, disre-mixed, disre-fc, disre-tau, nstdisreout, orire, orire-fc, orire-tau, orire-fitgrp, nstorireout)(已完成)

该部分主要用于帮助 NMR 数据完善蛋白质结构,更多讨论可见此处(似乎一般用不太到)。

disre:

no: 忽略拓扑文件中的距离约束信息。
yes: 对每个分子应用简单的距离限制。
ensemble: 在一个模拟 box 中对系综内分子应用距离约束。通常可以使用 mdrun -multidir 在多个模拟中执行系综平均。环境变量 GMX_DISRE_ENSEMBLE_SIZE 设置每个系综中的系统数(通常等于提供给 mdrun -multidir 的目录数)。

disre-weighting:

equal: 将约束力平均分配给约束中的所有原子对。
conservative: 力是约束势的导数,这导致原子对的权重为位移的倒数七次方。当 disre-tau 为零时,力是保守的。

disre-mixed:

no: 约束力计算中使用的 violation 是 time-averaged violation 和 instantaneous violation。
yes: 计算约束力时使用的 violation 是 time-averaged violation 和 instantaneous violation 乘积的平方根

disre-fc (1000) [kJ mol-1 nm-2]: 距离约束的力常数,乘以拓扑文件中交互作用的 fac 列中给出的每个约束的不同(可能是)因子。

disre-tau (0) [ps]: 控制距离约束运行间隔的平均值的时间常数,值为零将关闭时间平均。

nstdisreout (100) [steps]: 将约束中涉及的所有原子对的运行时间平均距离和瞬时距离写入能量文件时的步数间隔(可能使能量文件非常大)。

orire:

no: 忽略拓扑文件中的方向约束信息。
yes:使用方向约束,可以使用 mdrun -multidir 执行系综平均。

orire-fc (0) [kJ mol-1]: 方向约束的力常数乘以每个约束的(可能)不同权重因子,可以设置为零,以从无约束模拟中获得方向。

orire-tau (0) [ps]: 控制方向约束运行间隔的平均值的时间常数,值为零将关闭时间平均。

orire-fitgrp: 用于方向约束的拟合组。这组原子用于确定系统相对于参考方向的旋转半径,参考方向是第一个子系统的起始构造。对于蛋白质来说,backbone 是一个合理的选择。

nstorireout (100) [steps]: 将约束中所有运行时间平均的方向和瞬时方向以及分子序张量写入能量文件时的步数间隔(可能使能量文件非常大)。

; NMR refinement stuff    2021.2
; Distance restraints type: No, Simple or Ensemble
disre                    = No
; Force weighting of pairs in one distance restraint: Conservative or Equal
disre-weighting          = Conservative
; Use sqrt of the time averaged times the instantaneous violation
disre-mixed              = no
disre-fc                 = 1000
disre-tau                = 0
; Output frequency for pair distances to energy file
nstdisreout              = 100
; Orientation restraints: No or Yes
orire                    = no
; Orientation restraints force constant and tau for time averaging
orire-fc                 = 0
orire-tau                = 0
orire-fitgrp             =
; Output frequency for trace(SD) and S to energy file
nstorireout              = 100

Free energy calculations (free-energy, nstdhdl, dhdl-print-energy, init-lambda, delta-lambda, fep-lambdas, coul-lambdas, vdw-lambdas, bonded-lambdas, restraint-lambdas, mass-lambdas, temperature-lambdas, sc-alpha, sc-coul, sc-power, sc-r-power, sc-sigma, couple-moltype, couple-lambda0, couple-lambda1, couple-intramol)(已完成)

free-energy:

no: 仅使用拓扑A。
yes:在拓扑A(λ=0)到拓扑B(λ=1)之间插值,并将哈密顿量相对于λ的导数(如 dhdl-derivatives 所规定)或相对于其他λ值(如外来λ所规定)的哈密顿差写入能量文件和/或 dhdl.xvg 中,它们可以通过例如 gmx bar 进行处理。电势、键长和角度按手册中所述进行线性插值。当 sc-alpha 大于零时,soft-core potentials 用于 LJ 和库仑相互作用。

expanded: 启用扩展系综模拟,此时 alchemical state 成为动态变量,允许在不同的哈密顿量之间跳跃。有关如何执行扩展系综模拟的控制,请参见扩展系综( expanded ensemble simulation,下一条目)选项。扩展系综模拟中使用的不同哈密顿量由其他自由能选项定义。

init-lambda (-1): λ(浮点)的起始值。通常,这只应用于缓慢增长(即非零增量λ)。在其他情况下,应指定 init-lambda-state。如果给定了 lambda vector,则使用 init-lambda 进行插值,而不是直接设置 lambda。必须大于或等于0。

delta-lambda (0): lambda每时间步的增量。

init-lambda-state (-1): lambda state 的起始值(整数)。指定 lambda vector 的哪一列(coul-lambda、vdw-lambdas、bonded-lambda,restriction-lambda、mass-lambda、temperature-lambdas 和 fep-lambda)会被使用。这是一个基于零的索引:init lambda state 0 表示第一列,依此类推。

fep-lambdas [array]: 0、1 或多个 λ 值,每 nstdhdl 步将确定其 Delta H 值并写入 dhdl.xvg, lambda vector 的一部分。该值必须大于或等于0,允许大于1,但应小心使用(这两句话对所有 -lambdas 选项适用)。然后,可以使用 gmx bar 确定不同 lambda 值之间的自由能差。fep-lambdas 与其他 -lambdas 选项不同,因为所有未明确指定的 lambda vector 的组件都将使用 fep-lampdas(包括 restraint-lambdas,因此也包括牵引代码约束)。

coul-lambdas [array]: 同上。如果使用 soft-core potentials,该值必须介于 0-1 之间。只有静电相互作用由 lambda vector 的该分量控制(并且只有当 lambda=0 和 lambda=1 状态具有不同的静电相互作用时)。

vdw-lambdas [array]: 同上。如果使用 soft-core potentials,该值必须介于 0-1 之间。只有范德华相互作用由 lambda vector 的该分量控制。

bonded-lambda [array]: 同上。只有键相互作用由 lambda vector 的该分量控制。

restriction-lambda [array]: 同上。只有约束相互作用、二面体约束和牵引约束由 lambda vector 的该分量控制。

mass-lambda [array]: 同上。只有粒子质量由 lambda vector 的该分量控制。

temperature-lambdas [array]: 同上。只有温度由 lambda vector 的该分量控制。请注意,这些 lambda 不应用于副本交换,仅用于模拟回火。

calc-lambda-neighbors (1): 如果已设置 init-lambda-state,则控制计算和写出 Delta H 的 lambda 值的数量。正值将限制计算所得 lambda 点的数量,仅限于 init-lambda-state 的第 n 个 neighbors:例如,如果 init-lambda-state 为 5,且该参数的值为 2,则将计算并写出 lambda 3-7 点的能量。值-1表示写出所有 lambda 点。对于正常 BAR,如gmx bar,1就足够了,而对于 MBAR,应使用 -1。

sc-function (beutler):

beutler: Beutler et al. soft-core function
gapsys:Gapsys et al. soft-core function

sc-alpha (0): sc-function=beutler 时 soft-core 的 alpha 参数,值为0使LJ和库仑相互作用线性插值。仅与 sc-function=beutler 一起使用(下简述为同上)。

sc-r-power (6): soft-core equation 中径向项的6次幂,仅与 sc-function=beutler 一起使用。

sc-coul (no): 是否将软核自由能相互作用变换应用于分子的 Coulomic 相互作用。默认值为否,因为通常在关闭范德华相互作用之前线性关闭库仑相互作用更有效。请注意,只有在使用 lambda states 时才考虑到它,而不是使用 couple-lambda0 / couple-lambda1 时,并且您仍然可以通过将 sc-alpha 设置为0来关闭软核交互。同上。

sc-power (0): 软核函数中 lambda 的幂,仅支持值1和2。同上。

sc-sigma (0.3) [nm]: C6 或 C12 参数等于零或 sigma 小于 sc-sigma 的粒子的软核 sigma。同上。

sc-gapsys-scale-linpoint-lj (0.85): 对于 sc-function=gapsys,它是无单位的 alphaLJ 参数。它通过缩放 vdw 力线性化点来控制范德华相互作用的柔软度(softness)。将其设置为0将启用标准的 hard-core van der Waals 相互作用。仅与 sc-function=gapsys 一起使用(下简称为同上)。

sc-gapsys-scale-linpoint-q (0.3) [nm/e^2]: alphaQ 参数,单位为 nm/e ^2,默认值 0.3。它控制库仑相互作用的柔软度。将其设置为 0 将导致标准的 hard-core Coulombic 相互作用。同上。

sc-gapsys-sigma-lj (0.3) [nm]: 具有等于零的C6或C12参数的粒子的软核 sigma。同上。

couple-moltype: 在此提供一种分子类型(如拓扑中定义的),用于计算溶剂化或耦合自由能。你可以选择一个特殊的系统,将系统中的所有分子类型耦合起来,这对于从(几乎)随机坐标开始平衡系统非常有用。使用该选项必须开启自由能。此分子类型中的范德华相互作用和/或电荷可以在 lambda=0 和 lambda=1 之间打开或关闭,具体取决于 couple-lambda0 和 couple-lambda1 的设置。如果要解耦分子的多个副本中的一个,需要复制并重命名拓扑中的分子定义。

couple-lambda0:

vdw-q: 在 lambda=0 时,所有相互作用都打开。
vdw: 在 lambda=0 时,电荷为零(无库仑相互作用)。
q: 范德华相互作用在 lambda=0 时关闭;需要软核相互作用来避免异常。
none: 当 lambda=0 时,范德华相互作用被关闭,电荷为零;需要软核相互作用来避免异常。

couple-lambda1: 类似于couple-lambda0,但是对应于 lambda=1。

couple-intramol:

no: 分子型为偶分子型的所有分子内非键相互作用都被排除(exclusions)和显式偶相互作用所取代。此时,分子的解耦状态对应于没有周期性效应的恰当真空状态。
yes:分子内范德华和库仑相互作用也被打开/关闭。这有助于分配相对较大分子的自由能,其中分子内非键相互作用可能导致动力学捕获的真空构象。1-4对相互作用未被关闭。

nstdhdl (100): 将 dH/dlambda 和可能的 Delta H 写入 dhdl.xvg 的频率,0 表示没有输出,应该是 nstcalcenergy 的倍数。

dhdl-derivatives (yes): 如果 yes,则写出每个 nstdhdl 步骤的哈密顿量相对于 lambda 的导数。使用 gmx bar 插值线性能量差时需要这些值(尽管使用正确的外部 lambda 设置也可以实现相同的效果,但后者可能不太灵活),或者使用热力学积分

dhdl-print-energy (no): 在dhdl文件中包括总能量或势能。选项为 no、potential 或 total。如果所研究的状态处于不同的温度下,则需要该信息用于以后的自由能分析。如果所有状态都处于相同的温度,则不需要此信息。在使用 mdrun -rerun 生成dhdl的情况下,potential 是有用的。当从现有轨道重新运行时,动能通常不正确,因此必须仅从势能计算剩余自由能,并通过解析计算动能分量。

separate-dhdl-file:

yse: 计算出的自由能值(根据外部 lambda 和 dhdl-derivatives 设置)将写入一个单独的文件,默认名称为 dhdl.xvg。该文件可以直接与 gmx bar 一起使用。
no: 自由能值被写入能量输出文件(ener.edr,每 nstenergy),可以使用 gmx energy 提取或直接使用 gmx bar。

dh-hist-size (0): 如果非零,则指定直方图的大小,将 Delta H 值(用外部 lambda 指定)和导数 dH/dl 值合并到直方图中,并写入 ener.edr。这可用于在计算自由能差时节省磁盘空间。在每 nstenergy 中,为每个外部 lambda 编写一个直方图,为 dH/dl 编写两个直方图。请注意,不正确的直方图设置(尺寸太小或存储箱太宽)可能会引入错误。除非你确定自己需要直方图,否则不要使用直方图。

dh-hist-spacing (0.1): 以能量单位指定直方图的箱宽,与 dh-hist-size 一起使用。这种尺寸限制了自由能计算的精度。除非你确定自己需要直方图,否则不要使用直方图。

; Free energy variables   2021.2
free-energy              = no
couple-moltype           =
couple-lambda0           = vdw-q
couple-lambda1           = vdw-q
couple-intramol          = no
init-lambda              = -1
init-lambda-state        = -1
delta-lambda             = 0
nstdhdl                  = 50
fep-lambdas              =
mass-lambdas             =
coul-lambdas             =
vdw-lambdas              =
bonded-lambdas           =
restraint-lambdas        =
temperature-lambdas      =
calc-lambda-neighbors    = 1
init-lambda-weights      =
dhdl-print-energy        = no
sc-alpha                 = 0
sc-power                 = 1
sc-r-power               = 6
sc-sigma                 = 0.3
sc-coul                  = no
separate-dhdl-file       = yes
dhdl-derivatives         = yes
dh_hist_size             = 0
dh_hist_spacing          = 0.1

Expanded ensemble simulation (lmc-stats, lmc-mc-move, lmc-seed, lmc-gibbsdelta, mc-temperature, nst-transition-matrix, init-lambda-weights, initial-wl-delta, wl-scale, wl-ratio, symmetrized-transition-matrix, lmc-forced-nstart, mininum-var-min, lmc-weights-equil, weight-equil-wl-delta, weight-equil-number-all-lambda, weight-equil-number-steps, weight-equil-number-samples, weight-equil-count-ratio, simulated-tempering, simulated-tempering-scaling, sim-temp-low, sim-temp-high)(已完成)

nstexpanded: 在扩展系综模拟中,两次改变系统哈密顿量的变动尝试之间的积分步数。必须是 nstcalcenergy 的倍数,但可以大于或小于 nstdhdl。

lmc-stats:

no: 不在状态空间(state space)中执行蒙特卡罗。
metropolis-transition: 使用 Metropolis 权重更新每个状态的扩展系综权重,Min{1,exp(-(beta_new u_new - beta_old u_old)}
barker-transition: 使用 Barker 变换准则来更新每个状态 i 的扩展系综权重,defined by exp(-beta_new u_new)/(exp(-beta_new u_new)+exp(-beta_old u_old))
wang-landau: 使用Wang-Landau算法(在状态空间,而不是能量空间中)更新扩展系综权重。
min-variance: 使用 Escobedo 等人的最小方差更新方法更新扩展系综权重。权重不是自由能,而是强调需要更多采样才能给出更大不确定性的状态。

lmc-mc-move:

no: 不在状态空间(state space)中执行蒙特卡罗。
metropolis-transition: 随机向上或向下选择一个新状态,然后使用 Metropolis 准则来决定接受还是拒绝:Min{1,exp(-(beta_new u_new - beta_old u_old)}。
barker-transition: 随机地向上或向下选择一个新状态,然后使用巴克转换准则来决定接受还是拒绝:exp(-beta_new u_new)/(exp(-beta_new u_new)+exp(-beta_old u_old))
gibbs: 使用给定坐标的状态的条件权重((exp(-beta_i u_i) / sum_k exp(beta_i u_i))来决定转移到哪个状态。
metropolized-gibbs: 使用给定坐标的状态的条件权重((exp(-beta_i u_i) / sum_k exp(beta_i u_i))来决定转移到哪个状态,不包括当前状态,然后使用拒绝步骤来确保精细的平衡。该法总是比 gibbs 更有效;尽管在许多情况下,例如只有最近的邻近区域具有适当的相空间重叠时,效率仅略高。

lmc-seed (-1): 用于状态空间中 Monte Carlo 移动的随机种子。当 lmc-seed 设置为 -1 时,将生成伪随机种子。

mc-temperature: 用于 Monte Carlo 移动接受/拒收的温度。如果未指定,则使用第一组 ref-t 中指定的模拟温度。

wl-ratio (0.8): 重置 state occupancies 直方图的截止值,并将自由能增量从 delta 改变为 delta*wl-scale。如果我们定义 Nratio=(每个直方图的样本数)/(每个直方图上的样本平均数),wl-ratio 为 0.8 意味着只有当所有 Nratio>0.8 且同时所有 1/Nratio>0.8 时,直方图才被视为平坦。

wl-scale (0.8): 每当直方图被视为平坦时,自由能的 Wang-Landau incrementor 的当前值将乘以 wl-scale。值必须介于0和1之间。

init-wl-delta (1.0): 以 kT 为单位的 Wang-Landau incrementor 的初始值。1kT 附近的一些值通常是最有效的,尽管有时以 kT 单位表示的2-3值在自由能差较大的情况下效果更好。

wl-oneovert (no): 将 Wang Landau incrementor 在大样本限制下按 1/(模拟时间) 缩放。有大量证据表明,本文提出的状态空间中的标准 Wang-Landau 算法导致自由能“燃烧”到依赖于初始状态的错误值。当 wl-oneovert 为 yes 时,当增量小于 1/N 时(其中N是采集的样本数(N 与数据采集时间成比例,因此该选项命名为为“1 over t”)),则将Wang Lambda 增量设置为 1/N,每一步递减。此时,wl-ratio 将被忽略,但当达到 lmc-weights-equil 中设置的平衡标准时,权重仍将停止更新。

lmc-repeats (1): 控制每次迭代执行每个 Monte Carlo 交换类型的次数。在大量 Monte Carlo 重复次数的限制下,所有方法都收敛到 Gibbs 抽样。该值通常不需要与1不同。

lmc-gibbsdelta (-1): 将 Gibbs 采样范围限制为选定数量的相邻状态。对于 Gibbs 采样,在定义的所有状态上执行吉布斯采样有时效率低下。lmc-gibbsdelta 的正值意味着在上下交换中只考虑 ±lmc-gibbsdelta 的状态。值-1表示考虑所有状态。对于不到100个状态来说,将所有都包括在内可能并不昂贵。

lmc-forced-nstart (0): 强制初始状态空间采样以生成权重。为了获得合理的初始权重,此设置允许模拟从初始状态到达最终 lambda 状态,且模拟过程中先在每个状态下执行 lmc-forced-nstart 步,然后再移动到下一个 lambda 状态。如果 lmc-forced-nstart 足够长(可能有数千步),则权重将接近正确。然而,在大多数情况下,简单地运行标准权重平衡算法可能更好。

nst-transition-matrix (-1): 输出扩展系综转移矩阵的频率,负数表示仅在模拟结束时打印。

symmetrized-transition-matrix (no): 是否对称化经验转移矩阵。在无穷极限下,矩阵将是对称的,但在短时间范围内会因统计噪声而发散。通过使用矩阵 T_sym = 1/2 (T + transpose(T)) 以强制对称化消除(小幅度)负特征值的存在等问题。

mininum-var-min (100): 最小方差策略仅对较大数量的样本有效,如果在每个状态下使用的样本太少,可能会卡住。mininum-var-min 是激活最小方差策略之前每个状态允许的最小样本数(如果选中 min-variance)。

init-lambda-weights: 用于扩展系综态的初始权重(自由能)。默认值为零权重向量。格式类似于 fep-lambdas 的 lambda vector,不同之处在于权重可以是任何浮点数。单位为 kT。其长度必须与 lambda vector 长度匹配。

lmc-weights-equil:

no: 在整个模拟过程中,将持续更新扩展系综权重。
yes: 输入扩展系综权重被视为平衡的,并且在整个模拟过程中不更新。
wl-delta: 当 Wang-Landau incrementor 下降到该值以下时,停止扩展系综权重更新。
number-all-lambda: 当每个 lambda 状态的样本数大于此值时,停止扩展系综权重更新。
number-steps: 当步数大于此值指定数值时,停止扩展系综权重更新。
number-samples: 当所有 lambda 状态的总样本数大于此值指定数值时,停止扩展系综权重更新。
count-ratio: 当采样最少的 lambda 状态和采样最多的 lambda 状态的样本比大于该值时,停止扩展系综权重更新。

simulated-tempering (no): 开启或关闭模拟回火。模拟回火采用不同温度的扩展系综采样,而不是不同的哈密顿量。

sim-temp-low (300) [K]: 模拟回火最低温。

sim-temp-high (300) [K]: 模拟回火最高温。

simulated-tempering-scaling: 控制从 lambda vector 的 temperature-lambdas 部分计算中间 lambda 处温度的方式。

no: 使用 temperature-lambdas 的值对温度进行线性插值,即如果 sim-temp-low=300,sim-temb-high=400,则 lambda=0.5 对应于 350 的温度。非线性温度系综始终可以在 lambda 不均匀间隔的情况下实现。
metropolis-transition: 在 sim-temp-low 和 sim-temb-high 之间以几何插值。第 i 状态的温度为 sim-temp-low*(sim-temp-high/sim-temp-low) 的 (i/(ntemps-1)) 幂次方。这应该可以为恒定的热容提供大致相等的交换,当然,涉及蛋白质折叠的模拟具有非常高的热容峰值。
barker-transition: 在 sim-temp-low 和 sim-temb-high 之间以指数插值温度。第 i 状态温度为 sim-temp-low + (sim-temp-high - sim-temp-low)*((exp(temperature-lambdas (i))-1)/(exp(1.0)-i))

Non-equilibrium MD (acc-grps, accelerate, freezegrps, freezedim, cos-acceleration, deform)(已完成)

acc-grps: 恒定加速组(示例:Protein SOL,意味着 Protein 和 SOL 中的所有原子将经历加速线(accelerate line)中规定的恒定加速)。注意,加速基团质心的动能对系统的动能和温度有贡献。最好将每个加速组设置为单独的温度耦合组。

accelerate (0) [nm ps-2]: acc-grps 在 x、 y 和 z 方向的加速度(例如,0.1 0.0 0.0 -0.1 0.0 0.0 表示第一组在 x 方向上具有 0.1 nm ps-2 的恒定加速度,第二组相反)。

freezegrps: 将被冻结的组(即其 X、Y 和/或 Z 位置将不会更新;示例:Lipid SOL)。freezedim 指定冻结适用于哪些方向。为了避免由于完全冻结的原子之间的巨大作用力而对 virial 和压强产生虚假贡献,您需要使用能量基团排除(energy group exclusions),这也节省了计算时间。请注意,冻结原子的坐标不会通过压力耦合算法进行缩放。

freezedim: freezegrps 的冻结方向,为X、Y 和 Z 以及为每个组指定 Y 或 N(例如,Y Y N N N N 表示第一组中的粒子只能沿Z方向移动。第二组中的颗粒可以沿任何方向移动)。

cos-acceleration (0) [nm ps-2]: 用于计算粘度的加速度分布的振幅。加速度在X方向,大小为 cos-acceleration*cos(2πz/boxheight)。能量文件中添加了两个项:速度剖面的振幅和粘度的倒数。

deform (0 0 0 0 0 0) [nm ps-1]: box elements 的变形速度:a(x) b(y) c(z) b(x) c(x) c(y)。在每一步中,变形为非零的 box elements 计算为:box(ts)+(t-ts)*deform,对非 elements 进行周期性校正,坐标随变换而变换,冻结的自由度也(有目的地)被转换。在第一步和第(x 和 v 写入轨迹以确保精确重启的)步将时间 ts 设置为 t。当适当的压缩率设置为零时,变形(deformation)可与半各向同性或各向异性压力耦合一起使用。对角元素可用于对固体进行应变,非对角元素可用于剪切固体或液体。

; Non-equilibrium MD stuff
acc-grps                 =
accelerate               =
freezegrps               =
freezedim                =
cos-acceleration         = 0
deform                   =

Electric fields (E-x, E-xt, E-y, E-yt, E-z, E-zt )(已完成)

electric-field-x:
electric-field-y:
electric-field-z:

在这里,您可以指定一个电场,该电场可以是交替的和脉冲的。场的一般表达式具有高斯激光脉冲的形式(见下)。例如,方向 x 的四个参数设置在 electric-field-x(electric-field-y 和 electric-field-z 类似)等选项中,书写个数如:electric-field-x = E0 omega t0 sigma;单位分别为V nm-1、ps-1、ps、ps。在 sigma=0 的特殊情况下,省略指数项,仅使用余弦项。在这种情况下,t0 必须设置为0。如果 ω=0,则施加静电场。阅读手册关于电场(Electric fields)的部分和相关参考文献中的更多内容。

; Electric fields
; Format for electric-field-x, etc. is: four real variables:
; amplitude (V/nm), frequency omega (1/ps), time for the pulse peak (ps),
; and sigma (ps) width of the pulse. Omega = 0 means static field,
; sigma = 0 means no pulse, leaving the field to be a cosine function.
electric-field-x         = 0 0 0 0
electric-field-y         = 0 0 0 0
electric-field-z         = 0 0 0 0

Mixed quantum/classical dynamics (QMMM, QMMM-grps, QMMMscheme, QMmethod, QMbasis, QMcharge, Qmmult, CASorbitals, CASelectrons, SH)(已完成?)

对于 2021.2 版本:

QMMM-grps: 拟在QM级别描述的组,用于 MiMiC QM/MM。

QMMM: no QM/MM 不再通过这些选项设置。对于 MiMiC ,请在此处使用“no”。

Computational Electrophysiology (swapcoords, swap-frequency, split-group0, massw-split0, solvent-group, coupl-steps, iontypes, iontype0-name, iontype0-in-A, bulk-offsetA, threshold, cyl0-r, cyl0-up, cyl0-down)(待完善)

使用这些选项在“ Computational Electrophysiology ”模拟设置中控制离子/水位置交换(有关详细信息,请参阅参考手册)。较低版本(如5.x)不支持此类模拟。

下列为 2022.2 版本支持的选项。

swapcoords:

no: 不启用离子/水位置交换。
X ; Y ; Z: 允许沿所选方向进行离子/水位置交换。在膜平行于 x-y 平面的典型设置中,离子/水对需要在Z方向上交换,以维持隔室中所需的离子浓度。

swap-frequency (1) : 尝试交换的频率,即确定每隔室离子数并在必要时进行交换的时间步长。通常,不需要在每个时间步进行检查,对于典型的 Computational Electrophysiology 设置,大约100就足够了,所性能影响几乎可忽略。

split-group0: 通道#0的膜嵌入部分的全部索引的名称。这些原子的质心定义了一个隔室边界,应选择接近膜中心的位置。

split-group1: 定义了另一个隔室边界位置的通道#1。

massw-split0 (no): 定义是否使用质量加权来计算拆分组(split-group)中心。

no: 使用几何中心。
yes: 使用质心。

massw-split1 (no): 同上,但对于拆分组#1而言。

solvent-group: 溶剂分子索引组的名称。

coupl-steps (10): 多个尝试交换步骤中平均每个隔室的离子数,可用于防止隔室边界附近的离子(例如通过通道扩散)导致不必要的来回交换。

iontypes (1): 待控制的不同离子类型的数量,这些在模拟期间与溶剂分子交换以达到期望的参考数。

iontype0-name: 第一种离子类型的名称(第二、三种等同理使用 iontype1-name、iontype2-name…,下两条相似,不再赘述)。

iontype0-in-A (-1): 要求隔室A中第一种离子的数量。默认值 -1 表示:使用时间步长 0 中发现的离子数量作为参考值。

iontype0-in-B (-1): 隔室B的0型离子参考数。

bulk-offsetA (0.0): 第一交换层与隔室A中平面的偏移。默认情况下(即 bulk-offsetA = 0.0),离子/水交换发生在离拆分组层最大距离(= bulk 浓度)的层之间。但是,可以指定偏移量b (-1.0 < b < +1.0),以将 bulk layer 从 0.0 的中间偏移到一个隔室分隔层(在 +/-1.0 间)。

bulk-offsetB (0.0): 另一交换层与隔室B中平面的偏移。

threshold (1): 仅当达到与规定计数相差 threshold 时交换离子。

cyl0-r (2.0) [nm]: split cylinder #0 的半径。两个 split cylinder(模拟通道孔)可以相对于拆分组的中心选择性地定义。借助这些圆柱体,可以计算出哪些离子通过了哪个通道。split cylinder 定义对是否进行离子/水交换没有影响。

cyl0-up (1.0) [nm]: split cylinder #0 延伸长度最大值。

cyl0-down (1.0) [nm]: split cylinder #0 延伸长度最小值。

cyl1-r (2.0) [nm]: split cylinder #1 的半径。

cyl1-up (1.0) [nm]: split cylinder #1 延伸长度最大值。

cyl1-down (1.0) [nm]: split cylinder #1 延伸长度最小值。

Density-guided simulations(已完成)

这些选项允许使用并调整从三维密度(例如低温电子显微镜实验)导出的附加力进行计算和应用(详见参考手册)。类似于早些年支持NMR精修一样,随着冷冻电镜逐渐成为主流,gromacs 也增加了类似的精修功能。

density-guided-simulation-active (no): 启用密度导向模拟(density-guided simulations)。

density-guided-simulation-group (protein) : 受密度导向模拟中的力影响并对模拟密度有贡献的原子。

density-guided-simulation-similarity-measure (inner-product): 根据原子位置来计算的密度与参考密度之间的相似性度量。

inner-product: 取参考密度和模拟密度素值的乘积之和。
relative-entropy: 使用参考密度和模拟密度之间的负相对熵(或 Kullback-Leibler 散度)作为相似性度量。忽略负密度值。
cross-correlation: 使用参考密度和模拟密度之间的皮尔逊相关系数作为相似性度量。

density-guided-simulation-atom-spreading-weight (unity): 确定在网格上扩散原子时高斯核(the Gaussian kernel)的乘法因子。

unity: 为密度拟合组中的每个原子都指定相同的单位因子。
mass: 原子对模拟密度的贡献与其质量成正比。
charge: 原子对模拟密度的贡献与其电荷成比例。

density-guided-simulation-force-constant (1e+09) [kJ mol-1]: 密度导向模拟中力的比例因子。也可以是负的。

density-guided-simulation-gaussian-transform-spreading-width (0.2) [nm]: 模拟密度所用扩展核(the spread kernel)的高斯RMS宽值。

density-guided-simulation-gaussian-transform-spreading-range-in-multiples-of-width (4): 在上述高斯RMS宽值的倍数之后,停止 gaussian。

density-guided-simulation-reference-density-filename (reference.mrc): 使用绝对路径或相对于调用 gmx mdrun 的文件夹的路径的参考密度文件名。

density-guided-simulation-nst (1): 评估和应用密度拟合力的步长间隔。施加时,力按此数字缩放(详情请参阅参考手册)。

density-guided-simulation-normalize-densities (true): 将参考密度和模拟密度素值之和归一化为1。

density-guided-simulation-adaptive-force-scaling (false): 调整力常数,以确保模拟密度和参考密度之间的相似性稳步增加。若为 true 则使用自适应力缩放。

density-guided-simulation-adaptive-force-scaling-time-constant (4) [ps]: 耦合力常数与参考密度的相似性随时间常数增加。时间越长,耦合越松。

density-guided-simulation-shift-vector (0,0,0) [nm]: 在计算密度导向模拟的力和能量之前,将此向量添加到密度导向模拟组中的所有原子。仅影响密度导向模拟的力和能量。对应于输入密度在相反方向上移动 (-1)*density-guided-simulation-shift-vector。

density-guided-simulation-transformation-matrix (1,0,0,0,1,0,0,0,1): 在计算密度导向模拟的力和能量之前,将密度导向模拟组中的所有原子乘以该矩阵。仅影响密度引导的模拟力和能量。对应于通过该矩阵的逆变换输入密度。矩阵按行主顺序给出。例如:可通过使用以下输入,将密度导向原子组围绕 z 轴旋转 θ 度:(cosθ,-sinθ,0,sinθ,cosθ,0,0,0,1)

Implicit solvent (implicit-solvent, gb-algorithm, nstgbradii, rgbradii, gb-epsilon-solvent, gb-saltconc, gb-obc-alpha, gb-obc-beta, gb-obc-gamma, gb-dielectric-offset, sa-algorithm, sa-surface-tension)

该功能自2019版本后被移除了,官方的说明为(已翻译):“自GROMACS-4.6以来,SIMD和多线程支持已基本中断。由于没有人想修复它,该功能已被删除。仍然可以读取带有此类模拟参数的旧力场文件,但会忽略这些参数。”

如果要用隐式溶剂之类的话,建议使用 Amber(而非较为古老的 gromacs 版本)。

AdResS settings (adress, adress_type, adress_const_wf, adress_ex_width, adress_hy_width, adress_ex_forcecap, adress_interface_correction, adress_site, adress_reference_coords, adress_tf_grp_names, adress_cg_grp_names)

User defined thingies (user1-grps, user2-grps, userint1, userint2, userint3, userint4, userreal1, userreal2, userreal3, userreal4)(已完成)

user1-grps
user2-grps
userint1 (0)
userint2 (0)
userint3 (0)
userint4 (0)
userreal1 (0)
userreal2 (0)
userreal3 (0)
userreal4 (0)

你可以使用这些修改代码,可以将整数、实数和组传递给子例程。查看 gromacs 安装目录下 src/gromacs/mdtypes/inputrec.h 中的 inputrec 定义获得更多信息。
; User defined thingies
user1-grps               =
user2-grps               =
userint1                 = 0
userint2                 = 0
userint3                 = 0
userint4                 = 0
userreal1                = 0
userreal2                = 0
userreal3                = 0
userreal4                = 0

Index

GROMACS .mdp 选项翻译及笔记相关推荐

  1. 增量式分级判别回归树(IHDR)|翻译与笔记

    增量式分级判别回归树(IHDR)|翻译与笔记 为什么翻译这篇发表于2007年的老论文呢?主要有以下四方面原因: (1)这篇论文较清晰地给出增量式学习的概念. (2)论文有一定的理论与应用方面的价值. ...

  2. 联邦学习笔记-《Federated Machine Learning: Concept and Applications》论文翻译个人笔记

    联邦学习笔记-<Federated Machine Learning: Concept and Applications>论文翻译个人笔记 摘要 今天的人工智能仍然面临着两大挑战.一是在大 ...

  3. [木野狐]ViewState 剖析(翻译兼笔记)

    [木野狐]ViewState 剖析(翻译兼笔记) 原文链接:ViewState: All You Wanted to Know 作者:Paul Wilson翻译:木野狐 ViewState 不是什么? ...

  4. A Survey of Deep Learning-based Object Detection论文翻译 + 阅读笔记

    A Survey of Deep Learning-based Object Detection论文翻译 + 阅读笔记 //2022.1.7 日下午16:00开始阅读 双阶段检测器示意图 单阶段检测器 ...

  5. Linux内核配置选项的说明,Linux内核配置选项翻译

    Linux内核配置选项翻译 Linux内核配置选项翻译2.6.19.1(转) 内容目录 1. Code maturity level options 2 2. General setup 常规安装选项 ...

  6. 干货分享:高效办公工具【视频转文字、视频播放器、B站视频下载软件、贴图、截图提取文字并翻译、笔记记录软件、任务管理网站】

    高效办公工具分享--视频转文字.视频播放器.B站视频下载软件.贴图.截图提取文字并翻译.笔记记录软件.任务管理网站 一 前言 二.下载链接及效果 1.视频自动转文字-飞书妙记(目前免费使用!!) 2. ...

  7. 区块链分片:《Monoxide: Scale Out Blockchain with Asynchronous Consensus Zones》论文翻译个人笔记

    区块链分片:<Monoxide: Scale Out Blockchain with Asynchronous Consensus Zones>论文翻译个人笔记 日期:2019年2月26- ...

  8. 翻译漫谈笔记之2科技翻译的特点

    翻译漫谈笔记之科技翻译的特点 1. 科技文献通常是用来讲道理的,所以译者必须准确理解文字表达的道理 2. 科技翻译的译者完全可以适当改动原文 3. 在"顺"与"信&quo ...

  9. 流放者柯南服务器设置修改,流放者柯南服务器设置选项翻译 服务器怎么设置...

    流放者柯南服务器要怎么设置,这个对于看不懂英文的玩家来说是硬伤,今天为大家带来流放者柯南服务器设置选项翻译,一起来看看吧. 文件位置:在 ConanExiles\ConanSandbox\Saved\ ...

  10. linux 杀软 clamav 帮助选项翻译

    clamscan --help 帮助原文: --help -h Show this help--version -V Print version number--verbose -v Be verbo ...

最新文章

  1. 简明Linux命令行笔记:dmesg
  2. win32中GBK、UTF8的互转
  3. 蓝桥杯_算法训练_表达式计算
  4. c# 无损高质量压缩图片代码
  5. mysql报错:Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre
  6. 【报告分享】2020年淘宝直播新经济报告.pdf(附下载链接)
  7. fm足球经理Football Manager 2022 for mac(真实模拟游戏)中文版
  8. 树莓派做微信公众号服务器,树莓派与微信公众号对接(python)
  9. c#使用word、excel、pdf ——转
  10. word输入带圈字符快捷键(0-20)
  11. pyaudio 声音处理
  12. 浅谈Web身份识别技术 —— Cookie、Session 和 Token
  13. 界面自动化测试工具-Ksend
  14. Python 程序员需要知道的 30 个技巧(转载)
  15. 激荡十年:详谈云计算的过去、现在和未来
  16. (基础)选择器的语法
  17. 禁用linux系统日志,清除linux系统日志,禁用linux系统日志,删除linux日志
  18. c语言循环次数计算多重循环,C语言 第六章 多重循环练习
  19. 微服务架构的使用场景
  20. 二值化-大津法(OTSU)

热门文章

  1. 计算机远程桌面连接有几种方式,远程桌面连接的2种方法
  2. Win11筛选键怎么关闭?Win11关闭筛选键的两种方法
  3. Python字符串和列表常用的方法和操作
  4. 企业logo设计技巧大揭密
  5. IDEA设置默认浏览器为chrome
  6. 777 权限 android,Android linux系统644、755、777权限详解
  7. Pytest全栈自动化测试指南-入门
  8. 23.2、Android -- OkHttp3 基础学习 自定义设置
  9. 狼人杀 java_狼人杀面杀APP(FGUI教程)
  10. 我的世界java版安装mod手机版,我的世界国际版手机版