基于 Gromacs 分子动力学模拟全流程

本文系统阐述了如何利用 charmm-gui.org 生成 Gromacs 输入文件,并通过精细化模拟方案完成分子动力学模拟的全过程。初始结构文件源自 Schrödinger Maestro 的 Glide Dock 模块,包含蛋白质-配体复合物结构。鉴于小分子力场参数生成的准确性对模拟结果具有决定性影响,本文特别强调了该环节的技术要点。

一、初始结构预处理

1.1 小分子结构提取

在 PyMOL 中打开复合物结构,选取小分子并另存为 LIG.sdf 文件。

1.2 力场参数生成

在 CHARMM-GUI 中的 Input Generator 的 Ligand Reader & Modeler 模块中导入 LIG.sdf 文件,逐一核对分子中原子与键的连接情况,特别注意氢原子数量。检查完成后,点击保存下载配体 .sdf 文件。

1.3 结构叠合与复合物准备

使用 PyMOL 导入刚才下载的配体 .sdf 文件,逐一选择配体中的原子,并将选择图层重命名为 sele1。然后选中复合物对应的原子位置,并使用以下语句将配体叠合至正确位置:

center2 = cmd.get_model("sele").atom[0].coord;cmd.alter_state(0, "sele1", f"x={center2[0]}; y={center2[1]}; z={center2[2]}")

将配体叠合至小分子结合位点,选中受体文件和小分子,另存为 Comp_Clean.pdb。检查 Comp_Clean.pdb 文件,修改小分子配体名称、链和 ID:

二、CHARMM-GUI参数生成

2.1 Solution Builder 模块配置

鉴于这里所用复合物为溶液环境下的蛋白质,因此参数生成采用 Solution Builder 模块。上传复合物 .pdb 文件,并进入下一步:

选中蛋白和 LIG,勾选 pKa 检查,然后点击 Next Step。

2.2 力场文件生成

检测到小分子需要力场文件,因此使用 CHARMM 根据刚才下载的 .sdf 文件生成力场。保持其他参数默认,点击 Next 继续。

2.3 动力学参数文件生成

将溶剂盒形状设置为正八面体,水盒与溶质边缘保持 10 Å 距离。将离子浓度调整为 0.15 M,重新计算所需离子数量后进入下一步。

保持默认值,继续下一步:

选择生成 Gromacs 格式的输入文件,保持其他参数默认,点击 Next Step 继续。

点击 download.tgz 下载生成文件,完成基于 Charmm-GUI 的 Gromacs 运行文件准备工作:

三、Gromacs 输入文件准备

3.1 文件解压与目录结构

解压并进入下载的 .tar 文件:

tar -zxvf charmm-gui.tar && cd charmm-gui-*

可以看到当前文件夹下有一个 gromacs 文件夹,所有的 gromacs 运行所需的文件均在此文件夹下:

(base) hujunchi@charmm-gui-5895763302 % cd gromacs 
(base) hujunchi@gromacs % ls
index.ndx			step3_input.gro			step3_input.psf			      step4.1_equilibration.mdp	topol.top
README				step3_input.pdb			step4.0_minimization.mdp	step5_production.mdp		  toppar

3.2 模拟阶段划分

CHARMM-GUI 为我们提供了三个运行步骤的文件:能量最小化文件(step4.0_minimization.mdp)、短期平衡文件(step4.1_equilibration.mdp)和动力学生产文件(step5_production.mdp),其中 step4 为体系准备阶段,step5 为分子动力学生产阶段。然而,CHARMM-GUI 默认的准备方案相对粗略,容易在初期引入较大应力或结构破坏,尤其对于大体系或含配体体系更为明显。为此,我们设计了更精细的能量最小化与逐步放松方案,其核心思路为固定大部分结构并逐步解除约束,流程如下:
能量最小化(溶剂 → 全体系)→ 短期恒容平衡(溶剂 → 蛋白氢原子 → 蛋白侧链 → 全蛋白 → 全体系)→ 短期恒压平衡(溶剂 → 蛋白氢原子 → 蛋白侧链 → 全蛋白 → 全体系)。

四、动力学过程实施

4.1 能量最小化阶段

4.1.1 原子约束文件生成

为了设置原子限制条件,需要先生成蛋白和配体的 .gro 文件:

gmx_mpi trjconv -f step3_input.gro -s step3_input.gro -o PROA.gro #选择 1(Protein)
gmx_mpi trjconv -f step3_input.gro -s step3_input.gro -o LIG.gro  #选择 13(LIG)

使用 genrestr 命令:

gmx_mpi genrestr -f PROA.gro -o toppar/PROA_S.itp -fc 1000 1000 1000  #选择 0(System)
gmx_mpi genrestr -f PROA.gro -o toppar/PROA_dH.itp -fc 1000 1000 1000 #选择 2(Protein-H) 
gmx_mpi genrestr -f PROA.gro -o toppar/PROA_M.itp -fc 1000 1000 1000  #选择 5(MainChain)

gmx_mpi genrestr -f LIG.gro -o toppar/LIG_S.itp -fc 1000 1000 1000    #选择 0(System)

4.1.2 拓扑文件修改

修改 topol.top 文件,在力场部分增加限制性条件:

; Include forcefield parameters
#include "toppar/forcefield.itp"
#include "toppar/PROA.itp"
#ifdef POSRE_PROA
#include "toppar/PROA_S.itp"
#endif
#ifdef POSRE_PROH
#include "toppar/PROA_dH.itp"
#endif
#ifdef POSRE_PROM
#include "toppar/PROA_M.itp"
#endif

#include "toppar/LIG.itp"
#ifdef POSRE_LIG
#include "toppar/LIG_S.itp"
#endif

#include "toppar/SOD.itp"
#include "toppar/CLA.itp"
#include "toppar/TIP3.itp"

4.1.3 分阶段能量最小化

删除 step4.0_minimization.mdp 并新建 step4.0.1_minimization_solvent.mdp:

rm step4.0_minimization.mdp
touch step4.0.1_minimization_solvent.mdp

修改 step4.0.1_minimization_solvent.mdp 内容如下:

integrator      = steep           ; 最速下降法
emtol           = 1000.0          ; 收敛力阈值 (kJ/mol/nm)
emstep          = 0.01            ; 最大步长 (nm)
nsteps          = 5000            ; 最大步数

; Neighbor searching
nstlist         = 20
cutoff-scheme   = Verlet
rlist           = 1.2

; Electrostatics
coulombtype     = PME
rcoulomb        = 1.2

; van der Waals
vdwtype         = Cut-off
rvdw            = 1.2
vdw-modifier    = Force-switch
rvdw-switch     = 1.0

; Constraints
constraints     = h-bonds
constraint_algorithm = LINCS

; Position restraints
define          = -DPOSRE_PROA -DPOSRE_LIG  ; 使用限制性 .itp 文件固定蛋白和配体

生成 step4.0.1_minimization_solvent 的预处理文件:

gmx_mpi grompp -c step3_input.gro -r step3_input.gro -f step4.0.1_minimization_solvent.mdp -p topol.top -o step4.0.1_minimization_solvent.tpr

运行 step4.0.1_minimization_solvent 步骤,并等待运行完成:

mpirun -np 16 gmx_mpi mdrun -deffnm step4.0.1_minimization_solvent

同理,创建 step4.0.2_minimization_all.mdp,内容如下:

integrator      = steep
emtol           = 1000.0
emstep          = 0.01
nsteps          = 5000

; Neighbor searching
nstlist         = 20
cutoff-scheme   = Verlet
rlist           = 1.2

; Electrostatics
coulombtype     = PME
rcoulomb        = 1.2

; van der Waals
vdwtype         = Cut-off
rvdw            = 1.2
vdw-modifier    = Force-switch
rvdw-switch     = 1.0

; Constraints
constraints     = h-bonds
constraint_algorithm = LINCS

; Position restraints
; 不使用位置约束,完全放松体系

生成 step4.0.2_minimization_all 的预处理文件:

gmx_mpi grompp -c step4.0.1_minimization_solvent.gro -r step4.0.1_minimization_solvent.gro -f step4.0.2_minimization_all.mdp -p topol.top -o step4.0.2_minimization_all.tpr

运行 step4.0.2_minimization_all 步骤,并等待运行完成:

mpirun -np 16 gmx_mpi mdrun -deffnm step4.0.2_minimization_all

4.2 平衡阶段

4.2.1 恒容平衡阶段

完成能量最小化后,就可以进行短期恒容平衡了,第一步先平衡溶剂分子,新建 step4.1.1_solvent_relaxation.mdp:

integrator           = md
nsteps               = 100000        ; 100 ps
dt                   = 0.001

; Output control
nstxout-compressed   = 5000
nstxout              = 0
nstvout              = 0
nstfout              = 0
nstcalcenergy        = 100
nstenergy            = 500
nstlog               = 500

; Neighbor searching
cutoff-scheme        = Verlet
nstlist              = 20
rlist                = 1.2

; Electrostatics / VDW
coulombtype          = PME
rcoulomb             = 1.2
vdwtype              = Cut-off
vdw-modifier         = Force-switch
rvdw-switch          = 1.0
rvdw                 = 1.2

; Temperature coupling (moderate)
tcoupl               = V-rescale
tc-grps              = SOLU SOLV
tau_t                = 1.0 1.0
ref_t                = 303.15 303.15

; Parallel/comm
nstcomm              = 100
comm_mode            = linear
comm_grps            = SOLU SOLV

; Velocities (only if starting new NVT)
gen-vel              = yes
gen-temp             = 303.15
gen-seed             = -1

; Constraints
constraints          = h-bonds
constraint_algorithm = LINCS

; Pressure coupling
pcoupl               = no

; Position restraints
define               = -DPOSRE_PROA -DPOSRE_LIG

生成并运行 step4.1.1_solvent_relaxation:

gmx_mpi grompp -c step4.0.2_minimization_all.gro -r step4.0.2_minimization_all.gro -n index.ndx -f step4.1.1_solvent_relaxation.mdp -p topol.top -o step4.1.1_solvent_relaxation.tpr
nohup mpirun -np 16 gmx_mpi mdrun -deffnm step4.1.1_solvent_relaxation &

新建 step4.1.2_hydrogen_relaxation.mdp:

integrator           = md
nsteps               = 100000        ; 100 ps
dt                   = 0.001

; Output control
nstxout-compressed   = 5000
nstxout              = 0
nstvout              = 0
nstfout              = 0
nstcalcenergy        = 100
nstenergy            = 500
nstlog               = 500

; Neighbor searching
cutoff-scheme        = Verlet
nstlist              = 20
rlist                = 1.2

; Electrostatics / VDW
coulombtype          = PME
rcoulomb             = 1.2
vdwtype              = Cut-off
vdw-modifier         = Force-switch
rvdw-switch          = 1.0
rvdw                 = 1.2

; Temperature coupling
tcoupl               = V-rescale
tc-grps              = SOLU SOLV
tau_t                = 0.5 0.5
ref_t                = 303.15 303.15

; Parallel/comm
nstcomm              = 100
comm_mode            = linear
comm_grps            = SOLU SOLV

; Velocities
gen-vel              = no

; Constraints
constraints          = h-bonds
constraint_algorithm = LINCS
lincs_iter           = 1
lincs_order          = 4

; Pressure coupling
pcoupl               = no

; Position restraints
define               = -DPOSRE_PROH -DPOSRE_LIG

生成并运行 step4.1.2_hydrogen_relaxation:

gmx_mpi grompp -c step4.1.1_solvent_relaxation.gro -r step4.1.1_solvent_relaxation.gro -n index.ndx -f step4.1.2_hydrogen_relaxation.mdp -p topol.top -o step4.1.2_hydrogen_relaxation.tpr
nohup mpirun -np 16 gmx_mpi mdrun -deffnm step4.1.2_hydrogen_relaxation &

新建 step4.1.3_sidechain_relaxation.mdp:

integrator           = md
nsteps               = 100000        ; 100 ps
dt                   = 0.001

; Output control
nstxout-compressed   = 5000
nstxout              = 0
nstvout              = 0
nstfout              = 0
nstcalcenergy        = 100
nstenergy            = 500
nstlog               = 500

; Neighbor searching
cutoff-scheme        = Verlet
nstlist              = 20
rlist                = 1.2

; Electrostatics / VDW
coulombtype          = PME
rcoulomb             = 1.2
vdwtype              = Cut-off
vdw-modifier         = Force-switch
rvdw-switch          = 1.0
rvdw                 = 1.2

; Temperature coupling
tcoupl               = V-rescale
tc-grps              = SOLU SOLV
tau_t                = 0.5 0.5
ref_t                = 303.15 303.15

; Parallel/comm
nstcomm              = 100
comm_mode            = linear
comm_grps            = SOLU SOLV

; Velocities
gen-vel              = no

; Constraints
constraints          = h-bonds
constraint_algorithm = LINCS
lincs_iter           = 1
lincs_order          = 4

; Pressure coupling
pcoupl               = no

; Position restraints
define               = -DPOSRE_PROM -DPOSRE_LIG

生成并运行 step4.1.3_sidechain_relaxation:

gmx_mpi grompp -c step4.1.2_hydrogen_relaxation.gro -r step4.1.2_hydrogen_relaxation.gro -n index.ndx -f step4.1.3_sidechain_relaxation.mdp -p topol.top -o step4.1.3_sidechain_relaxation.tpr
nohup mpirun -np 16 gmx_mpi mdrun -deffnm step4.1.3_sidechain_relaxation &

新建 step4.1.4_protein_relaxation.mdp:

integrator           = md
nsteps               = 100000        ; 100 ps
dt                   = 0.001

; Output control
nstxout-compressed   = 5000
nstxout              = 0
nstvout              = 0
nstfout              = 0
nstcalcenergy        = 100
nstenergy            = 500
nstlog               = 500

; Neighbor searching
cutoff-scheme        = Verlet
nstlist              = 20
rlist                = 1.2

; Electrostatics / VDW
coulombtype          = PME
rcoulomb             = 1.2
vdwtype              = Cut-off
vdw-modifier         = Force-switch
rvdw-switch          = 1.0
rvdw                 = 1.2

; Temperature coupling
tcoupl               = V-rescale
tc-grps              = SOLU SOLV
tau_t                = 0.5 0.5
ref_t                = 303.15 303.15

; Parallel/comm
nstcomm              = 100
comm_mode            = linear
comm_grps            = SOLU SOLV

; Velocities
gen-vel              = no

; Constraints
constraints          = h-bonds
constraint_algorithm = LINCS
lincs_iter           = 1
lincs_order          = 4

; Pressure coupling
pcoupl               = no

; Position restraints
define               = -DPOSRE_LIG

生成并运行 step4.1.4_protein_relaxation:

gmx_mpi grompp -c step4.1.3_sidechain_relaxation.gro -r step4.1.3_sidechain_relaxation.gro -n index.ndx -f step4.1.4_protein_relaxation.mdp -p topol.top -o step4.1.4_protein_relaxation.tpr
nohup mpirun -np 16 gmx_mpi mdrun -deffnm step4.1.4_protein_relaxation &

新建 step4.1.5_system_relaxation.mdp:

integrator           = md
nsteps               = 100000        ; 100 ps
dt                   = 0.001

; Output control
nstxout-compressed   = 5000
nstxout              = 0
nstvout              = 0
nstfout              = 0
nstcalcenergy        = 100
nstenergy            = 500
nstlog               = 500

; Neighbor searching
cutoff-scheme        = Verlet
nstlist              = 20
rlist                = 1.2

; Electrostatics / VDW
coulombtype          = PME
rcoulomb             = 1.2
vdwtype              = Cut-off
vdw-modifier         = Force-switch
rvdw-switch          = 1.0
rvdw                 = 1.2

; Temperature coupling
tcoupl               = V-rescale
tc-grps              = SOLU SOLV
tau_t                = 0.5 0.5
ref_t                = 303.15 303.15

; Parallel/comm
nstcomm              = 100
comm_mode            = linear
comm_grps            = SOLU SOLV

; Velocities
gen-vel              = no

; Bond constraints
constraints          = h-bonds
constraint_algorithm = LINCS
lincs_iter           = 1
lincs_order          = 4

; Pressure coupling
pcoupl               = no

; Position restraints

生成并运行 step4.1.5_system_relaxation:

gmx_mpi grompp -c step4.1.4_protein_relaxation.gro -n index.ndx -f step4.1.5_system_relaxation.mdp -p topol.top -o step4.1.5_system_relaxation.tpr
nohup mpirun -np 16 gmx_mpi mdrun -deffnm step4.1.5_system_relaxation &

4.2.2 恒压平衡系列

完成短期恒容平衡后,使用 step4.2.1_solvent_relaxation.mdp 进入短期恒压平衡阶段:

integrator           = md
nsteps               = 100000        ; 100 ps
dt                   = 0.001

; Output control
nstxout-compressed   = 5000
nstxout              = 0
nstvout              = 0
nstfout              = 0
nstcalcenergy        = 100
nstenergy            = 500
nstlog               = 500

; Neighbor searching
cutoff-scheme        = Verlet
nstlist              = 20
rlist                = 1.2

; Electrostatics / VDW
coulombtype          = PME
rcoulomb             = 1.2
vdwtype              = Cut-off
vdw-modifier         = Force-switch
rvdw-switch          = 1.0
rvdw                 = 1.2

; Temperature coupling
tcoupl               = V-rescale
tc-grps              = SOLU SOLV
tau_t                = 0.5 0.5
ref_t                = 303.15 303.15

; Pressure coupling
pcoupl               = C-rescale
pcoupltype           = isotropic
tau_p                = 5.0
compressibility      = 4.5e-5
ref_p                = 1.0

; Reference coordinate scaling for restraints
refcoord_scaling     = com

; Parallel/comm
nstcomm              = 100
comm_mode            = linear
comm_grps            = SOLU SOLV

; Velocities
gen-vel              = no

; Bond constraints
constraints          = h-bonds
constraint_algorithm = LINCS
lincs_iter           = 1
lincs_order          = 4

; Position restraints
define               = -DPOSRE_PROA -DPOSRE_LIG

生成并运行 step4.2.1_solvent_relaxation:

gmx_mpi grompp -c step4.1.5_system_relaxation.gro -r step4.1.5_system_relaxation.gro -n index.ndx -f step4.2.1_solvent_relaxation.mdp -p topol.top -o step4.2.1_solvent_relaxation.tpr
nohup mpirun -np 16 gmx_mpi mdrun -deffnm step4.2.1_solvent_relaxation &

新建 step4.2.2_hydrogen_relaxation.mdp:

integrator           = md
nsteps               = 100000        ; 100 ps
dt                   = 0.001

; Output control
nstxout-compressed   = 5000
nstxout              = 0
nstvout              = 0
nstfout              = 0
nstcalcenergy        = 100
nstenergy            = 500
nstlog               = 500

; Neighbor searching
cutoff-scheme        = Verlet
nstlist              = 20
rlist                = 1.2

; Electrostatics / VDW
coulombtype          = PME
rcoulomb             = 1.2
vdwtype              = Cut-off
vdw-modifier         = Force-switch
rvdw-switch          = 1.0
rvdw                 = 1.2

; Temperature coupling
tcoupl               = V-rescale
tc-grps              = SOLU SOLV
tau_t                = 0.5 0.5
ref_t                = 303.15 303.15

; Pressure coupling
pcoupl               = C-rescale
pcoupltype           = isotropic
tau_p                = 5.0
compressibility      = 4.5e-5
ref_p                = 1.0

; Reference coordinate scaling for restraints
refcoord_scaling     = com

; Parallel/comm
nstcomm              = 100
comm_mode            = linear
comm_grps            = SOLU SOLV

; Velocities
gen-vel              = no

; Bond constraints
constraints          = h-bonds
constraint_algorithm = LINCS
lincs_iter           = 1
lincs_order          = 4

; Position restraints
define               = -DPOSRE_PROH -DPOSRE_LIG

生成并运行 step4.2.2_hydrogen_relaxation:

gmx_mpi grompp -c step4.2.1_solvent_relaxation.gro -r step4.2.1_solvent_relaxation.gro -n index.ndx -f step4.2.2_hydrogen_relaxation.mdp -p topol.top -o step4.2.2_hydrogen_relaxation.tpr
nohup mpirun -np 16 gmx_mpi mdrun -deffnm step4.2.2_hydrogen_relaxation &

新建 step4.2.3_sidechain_relaxation.mdp:

integrator           = md
nsteps               = 100000        ; 100 ps
dt                   = 0.001

; Output control
nstxout-compressed   = 5000
nstxout              = 0
nstvout              = 0
nstfout              = 0
nstcalcenergy        = 100
nstenergy            = 500
nstlog               = 500

; Neighbor searching
cutoff-scheme        = Verlet
nstlist              = 20
rlist                = 1.2

; Electrostatics / VDW
coulombtype          = PME
rcoulomb             = 1.2
vdwtype              = Cut-off
vdw-modifier         = Force-switch
rvdw-switch          = 1.0
rvdw                 = 1.2

; Temperature coupling
tcoupl               = V-rescale
tc-grps              = SOLU SOLV
tau_t                = 0.5 0.5
ref_t                = 303.15 303.15

; Pressure coupling
pcoupl               = C-rescale
pcoupltype           = isotropic
tau_p                = 5.0
compressibility      = 4.5e-5
ref_p                = 1.0

; Reference coordinate scaling for restraints
refcoord_scaling     = com

; Parallel/comm
nstcomm              = 100
comm_mode            = linear
comm_grps            = SOLU SOLV

; Velocities
gen-vel              = no

; Bond constraints
constraints          = h-bonds
constraint_algorithm = LINCS
lincs_iter           = 1
lincs_order          = 4

; Position restraints
define               = -DPOSRE_PROM -DPOSRE_LIG

生成并运行 step4.2.3_sidechain_relaxation:

gmx_mpi grompp -c step4.2.2_hydrogen_relaxation.gro -r step4.2.2_hydrogen_relaxation.gro -n index.ndx -f step4.2.3_sidechain_relaxation.mdp -p topol.top -o step4.2.3_sidechain_relaxation.tpr
nohup mpirun -np 16 gmx_mpi mdrun -deffnm step4.2.3_sidechain_relaxation &

新建 step4.2.4_protein_relaxation.mdp:

integrator           = md
nsteps               = 100000        ; 100 ps
dt                   = 0.001

; Output control
nstxout-compressed   = 5000
nstxout              = 0
nstvout              = 0
nstfout              = 0
nstcalcenergy        = 100
nstenergy            = 500
nstlog               = 500

; Neighbor searching
cutoff-scheme        = Verlet
nstlist              = 20
rlist                = 1.2

; Electrostatics / VDW
coulombtype          = PME
rcoulomb             = 1.2
vdwtype              = Cut-off
vdw-modifier         = Force-switch
rvdw-switch          = 1.0
rvdw                 = 1.2

; Temperature coupling
tcoupl               = V-rescale
tc-grps              = SOLU SOLV
tau_t                = 0.5 0.5
ref_t                = 303.15 303.15

; Pressure coupling
pcoupl               = C-rescale
pcoupltype           = isotropic
tau_p                = 5.0
compressibility      = 4.5e-5
ref_p                = 1.0

; Reference coordinate scaling for restraints
refcoord_scaling     = com

; Parallel/comm
nstcomm              = 100
comm_mode            = linear
comm_grps            = SOLU SOLV

; Velocities
gen-vel              = no

; Bond constraints
constraints          = h-bonds
constraint_algorithm = LINCS
lincs_iter           = 1
lincs_order          = 4

; Position restraints
define               = -DPOSRE_LIG

生成并运行 step4.2.4_protein_relaxation:

gmx_mpi grompp -c step4.2.3_sidechain_relaxation.gro -r step4.2.3_sidechain_relaxation.gro -n index.ndx -f step4.2.4_protein_relaxation.mdp -p topol.top -o step4.2.4_protein_relaxation.tpr
nohup mpirun -np 16 gmx_mpi mdrun -deffnm step4.2.4_protein_relaxation &

新建 step4.2.5_system_relaxation.mdp:

integrator           = md
nsteps               = 100000        ; 100 ps
dt                   = 0.001

; Output control
nstxout-compressed   = 5000
nstxout              = 0
nstvout              = 0
nstfout              = 0
nstcalcenergy        = 100
nstenergy            = 500
nstlog               = 500

; Neighbor searching
cutoff-scheme        = Verlet
nstlist              = 20
rlist                = 1.2

; Electrostatics / VDW
coulombtype          = PME
rcoulomb             = 1.2
vdwtype              = Cut-off
vdw-modifier         = Force-switch
rvdw-switch          = 1.0
rvdw                 = 1.2

; Temperature coupling
tcoupl               = V-rescale
tc-grps              = SOLU SOLV
tau_t                = 0.5 0.5
ref_t                = 303.15 303.15

; Pressure coupling
pcoupl               = C-rescale
pcoupltype           = isotropic
tau_p                = 5.0
compressibility      = 4.5e-5
ref_p                = 1.0

; Reference coordinate scaling for restraints
refcoord_scaling     = com

; Parallel/comm
nstcomm              = 100
comm_mode            = linear
comm_grps            = SOLU SOLV

; Velocities
gen-vel              = no

; Bond constraints
constraints          = h-bonds
constraint_algorithm = LINCS
lincs_iter           = 1
lincs_order          = 4

; Position restraints

生成并运行 step4.2.5_system_relaxation:

gmx_mpi grompp -c step4.2.4_protein_relaxation.gro -n index.ndx -f step4.2.5_system_relaxation.mdp -p topol.top -o step4.2.5_system_relaxation.tpr
nohup mpirun -np 16 gmx_mpi mdrun -deffnm step4.2.5_system_relaxation &

4.3 生产模拟阶段

最后基于 step5.1_production.mdp 进行动力学模拟:

integrator           = md
nsteps               = 5000000        ; 10 ns
dt                   = 0.002

; Output control
nstxout-compressed   = 50000
nstxout              = 0
nstvout              = 0
nstfout              = 0
nstcalcenergy        = 100
nstenergy            = 1000
nstlog               = 1000

; Neighbor searching
cutoff-scheme        = Verlet
nstlist              = 20
rlist                = 1.2

; Electrostatics / VDW
coulombtype          = PME
rcoulomb             = 1.2
vdwtype              = Cut-off
vdw-modifier         = Force-switch
rvdw-switch          = 1.0
rvdw                 = 1.2

; Temperature coupling
tcoupl               = V-rescale
tc_grps              = SOLU SOLV
tau_t                = 0.5 0.5
ref_t                = 303.15 303.15

; Pressure coupling
pcoupl               = Parrinello-Rahman
pcoupltype           = isotropic
tau_p                = 5.0
compressibility      = 4.5e-5
ref_p                = 1.0

; Parallel/comm
nstcomm              = 100
comm_mode            = linear
comm_grps            = SOLU SOLV

; Velocities
gen-vel              = no

; Bond constraints
constraints          = h-bonds
constraint_algorithm = LINCS
lincs_iter           = 2
lincs_order          = 6

生成并运行 step5.1_production:

gmx_mpi grompp -c step4.2.5_system_relaxation.gro -n index.ndx -f step5.1_production.mdp -p topol.top -o step5.1_production.tpr
nohup mpirun -np 16 gmx_mpi mdrun -deffnm step5.1_production &

至此,分子动力学正常运行,待分子动力学运行结束后分析轨迹文件即可,相关分析过程留待后续介绍。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注