首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >分析梳理--分子动力学模拟的常规步骤六(Gromacs)

分析梳理--分子动力学模拟的常规步骤六(Gromacs)

原创
作者头像
追风少年i
发布2026-04-27 08:51:46
发布2026-04-27 08:51:46
1120
举报

作者,Evil Genius

有人问我天天这么学习有用么,这个看你指什么方面了,如果是学习本身,掌握了新的知识,那有点用;但如果说的是学习之后能不能挣钱,让生活好起来,这个我不知道,以后能不能用上都不知道。现在社会证件为王,例如医院科研岗,先有了博士学历再说,但是生信技能,没有任何证件。

所以看一个人是否厉害,主要就是看文章,但是文章发的好,是多方面的原因,首先需要背靠课题组,有数据 + 样本搜集 + 合理的课题设计 + 生信分析 + 实验技能 + 英文书写能力,money + 人才,是一种综合能力的体现,单单分析技能,也出不了头。

简单回顾一下NVT预平衡的mdp文件

代码语言:javascript
复制
title = OPLS Lysozyme NVT equilibration; 体系名称,opls溶菌酶nvt平衡(随便设)
define = -DPOSRES; 告诉GROMACS运行位置限制性模拟
;Run parameters 运行控制参数
integrator = md ; 一种用于积分牛顿运动方程的跳跃式算法(md一般使用该算法)
nsteps = 50000 ; 2fs * 50000 = 100 ps 模拟步数,总模拟时间为nsteps*dt
dt = 0.002 ; 2 fs, 运行步长,单位为ps,我们这里为2 fs
;Output control 输出控制参数
nstxout = 500 ; 输出模拟坐标的频率(nstxout=500且dt=0.002,所以每1 ps输出一次)
nstvout = 500 ; 速度保存频率(1 ps)
nstenergy = 500 ; 能量保存频率(1 ps)
nstlog = 500 ; log文件输出频率(1 ps)
;Bond parameters 键约束参数
continuation = no ; 第一次运行模拟,将约束应用于启动配置并重置shell
constraint_algorithm = lincs ; 约束算法,比另一个shake算法更稳定更快
constraints = all-bonds ; 使用lincs约束所有键
lincs_iter = 1 ; LINCS算法精度,正常情况下为1,越大精度越大越耗时
lincs_order = 4 ; LINCS阶数,与精度有关,对于正常MD模拟,通常4就够了
;Neighboresearching 近邻原子列表参数
cutoff-scheme =Verlet;生成带有缓冲的对列表。(5.1后)没有水更快
ns_type =grid ;近邻列表的确定方法,适用于大体系
nstlist =10 ;更新近邻列表的频率。20 fs,在很大程度上与 Verlet 无关
rcoulomb =1.0 ;短程静电相互作用截断值(nm)
rvdw =1.0 ;范德华相互作用截断值(nm)
;Electrostatics 静电作用参数
coulombtype =PME ;Particle Mesh Ewald 长程静电作用计算方法
pme-order =4 ;使用四阶(三次)插值,此间距应使静电能精确到大约 5x10^-3
fourierspacing =0.16 ;傅里叶变换的格点间距
;Temperature coupling is on 温度耦合部分(非常重要,必须正确填写)
tccupl =V-rescale ;修饰的 Berendsen 温度耦合方法,将温度耦合到参考温度,可分组
tc-grps =Protein Non-Protein ;分组耦合-更精确
tau_t =0.1 0.1 ;耦合时间常数 (ps) 一个数代表一个组
ref_t =300 300;耦合参考温度 (K),一个温度对应一个组

然后是npt.mdp文件的设置

代码语言:javascript
复制
; Pressure coupling is on 压力耦合开关打开
pcoupl = Parrinello-Rahman ; NPT 的压力耦合校正器
pcoupltype = isotropic ; 指可以平均地向各个方向(x,y,z)膨胀/压缩以维持一定压力
tau_p = 2.0 ; 时间常数 (ps)
ref_p = 1.0 ; 压力耦合的参考压力 (bar, 1 大气压约为 0.983 bar).
compressibility = 4.5e-5 ; 溶剂压缩系数(4.5e^-5为水在 300 K 和标压下的压缩系数)
refcoord_scaling = com ; 使用压力耦合的缩放矩阵缩放参考坐标的质心。
; Periodic boundary conditions
pbc = xyz ; 3-D PBC
; Dispersion correction
DispCorr = EnerPres ; 校正 vdw 作用
; Velocity generation
gen_vel = no ; 从轨迹中读取速度

使用-t选项以包括NVT平衡过程中的产生的检查点文件。这个文件包含了继续模拟所需要的所有状态变量。为使用NVT过程中得到的速度我们必须包含这个文件。

运行

代码语言:javascript
复制
gmx grompp -f npt.mdp -c nvt.gro -p topol.top -o npt.tpr -r nvt.gro -maxwarn 3 -t nvt.cpt

gmx mdrun -deffnm npt -ntomp 8

那么完成了这些之后,我们就需要进行最后的模拟。

随着两个限制性的预平衡的完成,体系达到想要的温度和压力之下。现在可以不加位置限制并进行最终MD以收集数据了。这个过程跟前面的类似,运行grompp时,我们还要用到检查点文件,使用npt模拟时的速度(包含了压力耦合信息)。运行1 ns的MD模拟。

最后MD的md.mdp文件(示例),去掉了define = -DPOSRES,去掉位置限制。

代码语言:javascript
复制
title = OPLS Lysozyme NVT equilibration; 体系名称,opls溶菌酶nvt平衡(随便设)
;Run parameters 运行控制参数
integrator = md ; 一种用于积分牛顿运动方程的跳跃式算法(md一般使用该算法)
nsteps = 50000 ; 2fs * 50000 = 100 ps 模拟步数,总模拟时间为nsteps*dt
dt = 0.002 ; 2 fs, 运行步长,单位为ps,我们这里为2 fs
;Output control 输出控制参数
nstxout = 5000 ; 输出模拟坐标的频率(nstxout=500且dt=0.002,所以每1 ps输出一次)
nstvout = 5000 ; 速度保存频率(1 ps)
nstenergy = 5000 ; 能量保存频率(1 ps)
nstlog = 5000 ; log文件输出频率(1 ps)
;Bond parameters 键约束参数
continuation = no ; 第一次运行模拟,将约束应用于启动配置并重置shell
constraint_algorithm = lincs ; 约束算法,比另一个shake算法更稳定更快
constraints = all-bonds ; 使用lincs约束所有键
lincs_iter = 1 ; LINCS算法精度,正常情况下为1,越大精度越大越耗时
lincs_order = 4 ; LINCS阶数,与精度有关,对于正常MD模拟,通常4就够了
; Pressure coupling is on 压力耦合开关打开
pcoupl = Parrinello-Rahman ; NPT 的压力耦合控压器
pcoupltype = isotropic ; 指可以平均地向各个方向(x,y,z)膨胀/压缩以维持一定压力
tau_p = 2.0 ; 时间常数 (ps)
ref_p = 1.0 ; 压力耦合的参考压力(bar, 1 大气压约为 0.983 bar).
compressibility = 4.5e-5 ; 溶剂压缩系数(4.5e-5 为水在 300 K 和标压下的压缩系数)
refcoord_scaling = com ; 使用压力耦合的缩放矩阵缩放参考坐标的质心。
; Periodic boundary conditions
pbc = xyz ; 3-D PBC
; Dispersion correction
DispCorr = EnerPres ; 校正vdw作用
; Velocity generation
gen_vel = no ; 从轨迹中读取速度

然后我们运行

代码语言:javascript
复制
gmx grompp -f md.mdp -c npt.gro -t npt.cpt -p topol.top -o md_0_I.tpr -r npt.gro

gmx mdrun -deffnm md_0_I -ntomp 8

看看最后的动力学模拟结果

生活很好,有你更好。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 作者,Evil Genius
  • 有人问我天天这么学习有用么,这个看你指什么方面了,如果是学习本身,掌握了新的知识,那有点用;但如果说的是学习之后能不能挣钱,让生活好起来,这个我不知道,以后能不能用上都不知道。现在社会证件为王,例如医院科研岗,先有了博士学历再说,但是生信技能,没有任何证件。
  • 所以看一个人是否厉害,主要就是看文章,但是文章发的好,是多方面的原因,首先需要背靠课题组,有数据 + 样本搜集 + 合理的课题设计 + 生信分析 + 实验技能 + 英文书写能力,money + 人才,是一种综合能力的体现,单单分析技能,也出不了头。
  • 简单回顾一下NVT预平衡的mdp文件
  • 然后是npt.mdp文件的设置
  • 运行
  • 那么完成了这些之后,我们就需要进行最后的模拟。
  • 随着两个限制性的预平衡的完成,体系达到想要的温度和压力之下。现在可以不加位置限制并进行最终MD以收集数据了。这个过程跟前面的类似,运行grompp时,我们还要用到检查点文件,使用npt模拟时的速度(包含了压力耦合信息)。运行1 ns的MD模拟。
  • 最后MD的md.mdp文件(示例),去掉了define = -DPOSRES,去掉位置限制。
  • 然后我们运行
  • 看看最后的动力学模拟结果
  • 生活很好,有你更好。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档