通常对应于分子的一种组织结构是 [ moleculetype ] 条目。这一条目有两个主要目的。
一个是为拓扑文件提供结构,通常对应于实际分子。这使得拓扑更易读,并且编写起来也更简单省事。
第二个目的是计算效率。计算机内存中存储的系统定义与 moleculetype 定义的数目成正比。
如果一个分子存在于100000 个副本中,节省的内存以 100000 计,这意味着系统通常可以放在缓存中,能极大地提高运行性能。
对应于化学键的相互作用可能产生排除,只能在属于同一 moleculetype 内的原子之间进行定义。在一个 moleculetype 中允许存在多个分子,只要它们之间没有共价键连接。
分子可以是无限长的,只要将其自身越过周期性边界相连接即可。当体系中存在这样的周期性分子时,需要在mdp文件中设置一个选项,告知 GROMACS 不要试图将跨越周期性边
界的分子重新完整化。
参数表格
相互作用类型 | 指令 | 函数类型/说明 |
必需 | defaults
atomtypes | 非键函数类型;组合规则; 生成配对 (no/yes); LJ 校正因子 fudgeLJ(); 库仑校正因子 fudgeQQ() 原子类型;质量 m(u); 电荷 q(e); 粒子类型;V ; W |
可选 | bondtypes pairtypes angletypes dihedraltypes(∗) constrainttypes |
|
LJ | nonbond params | 1 |
Buckingham | nonbond params | 2 |
必需 | moleculetype | 分子名称 非键相互作用排除 |
必需 | atoms | 原子类型;残基编号;残基名称;原子名称;电荷组编号;q(e); m(u) |
必需 | system | 系统名称 |
必需 | molecules | 分子名称;分子数目 |
可选 | intermolecular_interactions | 一项或多项成键相互作用,涉及两个或多个原子,不能是产生排除的相互作用,不能是约束,使用全局原子编号 |
[ moleculetype ] 指令详解-bonds
相互作用名称 | 函数类型 | 对应公式 | 参数顺序 | 自由能使用 |
键 | 1 |  | b0(nm); kb(kJmol−1nm−2) | 所有 |
G96 键 | 2 |  | b0(nm); kb(kJmol−1nm−4) | 所有 |
Morse 键 | 3 |  | b0(nm); D(kJmol−1) β(nm-1) | 所有 |
立方键 | 4 |  | b0(nm); Ci=2,3(kJmol−1nm−i) |
|
连接 | 5 |
|
|
|
简谐势 | 6 |  | b0(nm); kb(kJmol−1nm−2) | 所有 |
FENE 键 | 7 |  | bm(nm); kb(kJmol−1nm−2) |
|
表格键 | 8 |  | 表格号(≥0) k(kJ mol−1) | k |
表格键 | 9 |  | 表格号(≥0) k(kJ mol−1) | k |
约束势 | 10 |
| low, up1,2(nm); kdr (kJmol−1nm−2) | 所有 |
类型9表格键无连接,因此不会为这种相互作用生成排除
简谐势与键的区别是,简谐势可以计算非键相互作用,但是键则不能
[ moleculetype ] 指令详解-pairs
相互作用名称 | 函数类型 | 参数顺序 | 自由能使用 |
额外 LJ 或库仑 pairs | 1 | V W | 所有 |
额外 LJ 或库仑 pairs | 2 | fudgeQQ () qi qj(e) V W |
|
额外 LJ 或库仑 pairs_nb | 1 | qi qj(e) V W |
|
组合规则决定了 LJ 参数的类型,就是里面的V W
[ moleculetype ] 指令详解-angles
相互作用名称 | 函数类型 | 对应公式 | 参数顺序 | 自由能使用 |
键角 | 1 |  | θ0(deg);kθ(kJmol−1rad−2) | 所有 |
G96 键角 | 2 |  | θ0(deg);kθ(kJmol−1) | 所有 |
键键交叉项 | 3 |  | r1e,r2e(nm);krr,(kJmol−1nm−2) |
|
键角交叉项 | 4 |  | r1e,r2e,r3e(nm);krθ(kJmol−1nm−2) |
|
Urey-Bradley
键角 | 5 |  | θ0(deg);kθ(kJmol−1rad−2);r13(nm);kUB(kJmol−1nm−2) | 所有 |
四次键角 | 6 |  | θ0(deg);Ci=0,1,2,3,4(kJmol−1rad−i) |
|
表格键角 | 8 |  | 表格号(≥0) k(kJ mol−1) | k |
受限弯曲势 | 10 |  | θ0(deg);kθ(kJmol−1) |
|
1 2 5 6函数类型 grompp可将这种相互作用类型转换为约束
[ moleculetype ] 指令详解-exclusions
相互作用名称 | 原子数目 | 参数顺序 | 自由能使用 |
排除 | 1 | 一个或多个原子索引号 |
|
[ moleculetype ] 指令详解-constraints
相互作用名称 | 原子数目 | 函数类型 | 参数 | 自由能使用 |
约束 | 2 | 1 | b0(nm) | 所有 |
约束 | 2 | 2 | b0(nm) | 所有 |
函数类型1:grompp会利用这种相互作用类型生成排除项
函数类型2:无连接,因此不会为这种相互作用生成排除
[ moleculetype ] 指令详解-settles
相互作用名称 | 原子数目 | 函数类型 | 参数顺序 | 自由能使用 |
SETTLE | 1 | 1 | dOH (nm), dHH (nm) |
|
[ settles ] 指令定义了水分子的第一个原子。SETTLE 函数类型始终为 1,并且必须给出 O-H 和H-H 之间的距离。注意,SETTLE 算法也可用于 TIP3P 和 TIP4P 水分子模型。TIP3P 只不过具有不同的几何构型。TIP4P 有一个虚拟位点,但因为它是根据其他原子的位置构建的,因此不需要使用 SHAKE(也不需要 SETTLE)。


超过 80% 的模拟体系算涉及刚性水分子,对这种特殊情况,我们已经实现了 SETTLE 算法。对速度 Verlet,必须施加额外的一轮约束,以约束第二个半速度步的速度,并去除平行于键向量的任何速度分量。这一步骤称为 RATTLE。
[ moleculetype ] 指令详解-virtual_sites2
相互作用名称 | 原子数目 | 函数类型 | 参数顺序 | 自由能使用 |
二体虚拟位点 | 3 | 1 | a() |
|
[ moleculetype ] 指令详解-virtual_sites3
相互作用名称 | 原子数目 | 函数类型 | 参数顺序 | 自由能使用 |
三体虚拟位点 | 4 | 1 | a() b() |
|
三体虚拟位点(fd) | 4 | 2 | a() d(nm) |
|
三体虚拟位点(fad) | 4 | 3 | θ(deg) d(nm) |
|
三体虚拟位点(out) | 4 | 4 | a() b() c(nm-1) |
|
[ moleculetype ] 指令详解-virtual_sites4
相互作用名称 | 原子数目 | 函数类型 | 参数顺序 | 自由能使用 |
四体虚拟位点(fdn) | 5 | 2 | a() b() c(nm) |
|
[ moleculetype ] 指令详解-virtual_sitesn
相互作用名称 | 原子数目 | 函数类型 | 参数顺序 | 自由能使用 |
N体虚拟位点(COG) | 1 | 1 | 一个或多个构建原子的索引号 |
|
N体虚拟位点(COM) | 1 | 2 | 一个或多个构建原子的索引号 |
|
N体虚拟位点(COW) | 1 | 3 | 一个或多个构建原子的索引号和权重 |
|
[ moleculetype ] 指令详解-position_restraints
相互作用名称 | 原子数目 | 函数类型 | 参数顺序 | 自由能使用 |
位置限制 | 1 | 1 | kx,ky,kz(kJ mol-1 nm-2) | 所有 |
平底位置限制 | 1 | 2 | g r(nm) k(kJ mol-1 nm-2) |
|
[ moleculetype ] 指令详解-distance_restraints
相互作用名称 | 原子数目 | 函数类型 | 参数顺序 | 自由能使用 |
距离限制 | 2 | 1 | 类型 标签 low up12(nm) 权重 |
|
[ moleculetype ] 指令详解-dihedral_restraints
相互作用名称 | 原子数目 | 函数类型 | 参数顺序 | 自由能使用 |
二面角限制 | 4 | 1 | 𝜙0(deg);Δ𝜙 (deg);𝑘dihr (kJmol−1rad−2) | 所有 |
[ moleculetype ] 指令详解-orientation_restraints
相互作用名称 | 原子数目 | 函数类型 | 参数顺序 | 自由能使用 |
取向限制 | 2 | 1 | exp.; 标签;α; c (U nmα;obs. (U); 权重(U−1) |
|
[ moleculetype ] 指令详解-angle_restraints
相互作用名称 | 原子数目 | 函数类型 | 参数顺序 | 自由能使用 |
角度限制 | 4 | 1 | θ0(deg);kc(kJmol−1) 多重度 | θ k |
[ moleculetype ] 指令详解-angle_restraints_z
相互作用名称 | 原子数目 | 函数类型 | 参数顺序 | 自由能使用 |
角度限制(z) | 2 | 1 | θ0(deg);kc(kJmol−1) 多重度 | θ k |