计算化学公社

标题: 求助:能量最小化的mdp文件怎么写 [打印本页]

作者
Author:
FrancisLi    时间: 2022-3-20 04:27
标题: 求助:能量最小化的mdp文件怎么写
各位老师,我目前初学gromacs,之前组里师兄跑gromacs从来不做能量最小化,都是直接跑,如果有问题就把dt调小一点跑一段,再用正常的dt接着跑。但是我看到论坛里各位大佬都会先做能量最小化,想学习一下,想问下对于已经有了mdp文件的情况下,如果要做能量最小化要怎么做呀,只需要把integrator改了就行吗,谢谢大家。

作者
Author:
Frozen-Penguin    时间: 2022-3-20 13:36
本帖最后由 Frozen-Penguin 于 2022-3-20 19:27 编辑

可以先写一个mdp文件,里面只有integrator = steep,然后用grompp生成tpr文件,同时会生成一个mdout.mdp,这个文件包含了所有参数,输入的mdp文件中已经设置的参数在mdout.mdp中保持一致,未设置的参数在mdout.mdp中是默认参数,参考手册对mdout.mdp文件进行修改即可得到需要的mdp文件。
能量最小化的算法主要有2种,steep和cg,cg更适合找到极小值,但是如果离极小值太远可能优化不成功,所以能量最小化通常的流程是先用steep使能量接近极小值,然后cg达到极小值。
一般情况下,能量最小化需要注意的参数是emtol,默认是10,能量最小化过程中,如果Fmax小于这个值,能量最小化停止。通过设置emtol,可以在合适的位置把steep换成cg,总体效率更高。
只修改integrator可能会出错,因为很多参数是绑定在一起的,需要同时修改,从mdout出发可以避免参数冲突的问题。

作者
Author:
sobereva    时间: 2022-3-20 18:52
emtol控制的原子最大受力阈值,而不是“最大的相互作用”的阈值
只有对于之后做振动分析的目的,emtol才需要设得很小,而对于只是消除不合理接触避免动力学一跑就崩溃目的,一般用100或更大一些就可以,不需要太讲究。

这是个我在北京科音分子动力学与GROMACS培训班(http://www.keinsci.com/workshop/KGMX_content.html)里提供的比较普适的做能量极小化(为了之后动力学能进行的目的)的模板,对于凝聚相体系的模拟一般可以直接用,不需要改什么。
  1. define = -DFLEXIBLE
  2. integrator = cg
  3. nsteps = 10000
  4. emtol  = 100.0
  5. emstep = 0.01
  6. ;
  7. nstxout   = 100
  8. nstlog    = 50
  9. nstenergy = 50
  10. ;
  11. pbc = xyz
  12. cutoff-scheme            = Verlet
  13. coulombtype              = PME
  14. rcoulomb                 = 1.0
  15. vdwtype                  = Cut-off
  16. rvdw                     = 1.0
  17. DispCorr                 = EnerPres
  18. ;
  19. constraints              = none
复制代码

作者
Author:
FrancisLi    时间: 2022-3-21 04:30
sobereva 发表于 2022-3-20 18:52
emtol控制的原子最大受力阈值,而不是“最大的相互作用”的阈值
只有对于之后做振动分析的目的,emtol才需 ...

感谢sob老师!我看师兄留给我的mdp文件里有些地方有区别,比如constraints是h-bonds,在做能量最小化的时候需要调整吗,谢谢,这是我现在用的mdp文件
  1. integrator               = md
  2. dt                       = 0.002
  3. nsteps                   = 100000000

  4. nstxout                  = 80000
  5. nstvout                  = 80000
  6. nstlog                   = 80000
  7. nstenergy                = 80000
  8. nstlist                  = 10
  9. ns-type                  = grid

  10. cutoff-scheme            = Verlet
  11. coulombtype              = PME
  12. rcoulomb                 = 1.4
  13. vdw-type                 = Cut-off
  14. rvdw                     = 1.4

  15. tcoupl                   = Berendsen
  16. tc-grps                  = System
  17. tau-t                    = 0.4
  18. ref-t                    = 460

  19. Pcoupl                   = Berendsen
  20. pcoupltype               = anisotropic
  21. tau-p                    = 1.0
  22. compressibility          = 4.5e-5 4.5e-5 4.5e-5 0 0 0
  23. ref-p                    = 1.0 1.0 1.0 0 0 0


  24. gen-vel                  = no

  25. constraints              = h-bonds

  26. ;annealing                = single
  27. ;annealing-npoints        = 6
  28. ;annealing-time           = 0   1000 2000 3000 4000 5000
  29. ;annealing-temp           = 650 633  623  613  593  573
复制代码



作者
Author:
FrancisLi    时间: 2022-3-21 04:31
Frozen-Penguin 发表于 2022-3-20 13:36
可以先写一个mdp文件,里面只有integrator = steep,然后用grompp生成tpr文件,同时会生成一个mdout.mdp, ...

感谢大佬!我原来mdp还能这么弄我之前都是自己一个一个写
作者
Author:
sobereva    时间: 2022-3-21 07:13
FrancisLi 发表于 2022-3-21 04:30
感谢sob老师!我看师兄留给我的mdp文件里有些地方有区别,比如constraints是h-bonds,在做能量最小化的时 ...

以我的mdp为准,其它都是多余的
作者
Author:
sobereva    时间: 2022-3-21 07:14
FrancisLi 发表于 2022-3-21 04:31
感谢大佬!我原来mdp还能这么弄我之前都是自己一个一个写

不建议照着mdout看,绝大多数里面的参数设置对你来说都是完全没意义的。本来正常情况就应当基于模板文件(不含mdout里那些占绝大多数完全不可能用到的设置)基础上修改。

所以我的培训里都专门给学员对于常见情况的模板,对于实际研究一般仅需改几行就够了。对于蛋白质、蛋白质-配体复合物、磷脂膜,还另有专门的模板提供。

(, 下载次数 Times of downloads: 88)


作者
Author:
FrancisLi    时间: 2022-3-21 09:31
sobereva 发表于 2022-3-21 07:14
不建议照着mdout看,绝大多数里面的参数设置对你来说都是完全没意义的。本来正常情况就应当基于模板文件 ...

好滴!感谢sob老师!
作者
Author:
JCenter    时间: 2022-8-27 02:29
sobereva 发表于 2022-3-21 07:14
不建议照着mdout看,绝大多数里面的参数设置对你来说都是完全没意义的。本来正常情况就应当基于模板文件 ...

sob老师,我是gmx小白,我目前在做水油(水与正己烷)两相模拟。看了许多帖子,担心自己做得不对,所以有三个问题想请教下老师。
1.关于水油两相平衡模拟,我做的过程顺序是:能量最小化,NVT,NPT,成品模拟。其中,NVT有必要用吗?之前看到老师有说可以直接从能量最小化到NPT,然后再成品模拟。
2.在上述的顺序下,我自行写了这几个过程的mdp文件,想请老师在百忙之中在闲暇时间帮忙看下有无问题。(附件中的mdp文件)
3.关于墙边界的问题,我在跑完之后发现分子有跑出盒子外(附件中的图片)。所以想问老师如何设置关键词能给体系加墙呢,每个面都能加墙还是说要留出上下两个面呢?


作者
Author:
sobereva    时间: 2022-8-27 11:07
JCenter 发表于 2022-8-27 02:29
sob老师,我是gmx小白,我目前在做水油(水与正己烷)两相模拟。看了许多帖子,担心自己做得不对,所以有 ...

毫无必要做NVT
mdp我没时间看
搞清楚PBC是什么。根本无需顾虑

作者
Author:
JCenter    时间: 2022-8-27 22:01
sobereva 发表于 2022-8-27 11:07
毫无必要做NVT
mdp我没时间看
搞清楚PBC是什么。根本无需顾虑

好的,非常感谢sob老师。
作者
Author:
gjs    时间: 2024-3-15 21:06
JCenter 发表于 2022-8-27 02:29
sob老师,我是gmx小白,我目前在做水油(水与正己烷)两相模拟。看了许多帖子,担心自己做得不对,所以有 ...

您好,请问您的这个NPT.mdp和成品MD.mdp为什么除了运行时间和控压方式其他都是一样的?新手不太懂,网上看了几个例子这两个参数文件确实很相似,这样不就相当于换个控压方式进行续跑吗?
作者
Author:
JCenter    时间: 2024-3-15 21:19
gjs 发表于 2024-3-15 21:06
您好,请问您的这个NPT.mdp和成品MD.mdp为什么除了运行时间和控压方式其他都是一样的?新手不太懂,网上 ...

heatNPT.mdp用于平衡相,使体系的温度、压力达到期望值。MD.mdp是作为产生相在体系温度、压力期望值下用于收集数据和进行统计分析的。


(, 下载次数 Times of downloads: 17)

作者
Author:
gjs    时间: 2024-3-21 18:06
JCenter 发表于 2024-3-15 21:19
heatNPT.mdp用于平衡相,使体系的温度、压力达到期望值。MD.mdp是作为产生相在体系温度、压力期望值下用 ...

谢谢您的回复,我最近再算退火的问题不知道您是否了解,冒昧请问就是使用控压Berendsen;控温V-rescale进行NPT后再使用相同的控温控压方法进行退火,退货过程中体系的密度下降极大(1500左右下降到40左右),不知道是否正常,如果不正常请问是什么原因导致的又应该如何解决呢?
作者
Author:
xishaofan    时间: 2024-12-3 15:23
sobereva 发表于 2022-3-21 07:14
不建议照着mdout看,绝大多数里面的参数设置对你来说都是完全没意义的。本来正常情况就应当基于模板文件 ...

sob老师,请问如果em结束直接跑npt平衡,需要加初速度吗?是下面这样设置吗?

gen_vel                 = yes       ; assign velocities from Maxwell distribution
gen_temp                = 353       ; temperature for Maxwell distribution
gen_seed                = -1        ; generate a random seed
作者
Author:
sobereva    时间: 2024-12-4 16:48
xishaofan 发表于 2024-12-3 15:23
sob老师,请问如果em结束直接跑npt平衡,需要加初速度吗?是下面这样设置吗?

gen_vel                ...

通常没必要
作者
Author:
xishaofan    时间: 2024-12-4 21:44
sobereva 发表于 2024-12-4 16:48
通常没必要

sob老师,我的体系是油-表面活性剂-水,gaff2力场,resp2电荷,我是如下设置的npt平衡的mdp文件,(1)这种体系初速度也是没必要设置吗?如果不设初速度,体系初速度是由我的热浴V-rescale产生吗?(2)如果要设置,可以麻烦看一下的mdp文件设置正确吗?
integrator              = md
dt                      = 0.002
nsteps                  = 150000000
comm_grps               = system
;
nstxout-compressed      = 50000
nstxout                 = 50000
nstvout                 = 50000
nstfout                 = 50000
nstenergy               = 20000
nstlog                  = 50000
compressed-x-grps       = system
;
pbc                     = xyz
cutoff-scheme           = Verlet
vdwtype                 = Cut-off
rvdw                    = 1.0
coulombtype             = PME
rcoulomb                = 1.0
DispCorr                = EnerPres
;
tcoupl                  = V-rescale
tc_grps                 = DEC H2O SDS NA
tau_t                   = 0.2 0.2 0.2 0.2
ref_t                   = 353 353 353 353
;
pcoupl                  = berendsen
pcoupltype              = semiisotropic
tau_p                   = 0.5
compressibility         = 0 4.5e-5
ref_p                   = 200.0 200.0
;
constraints             = h-bonds
constraint_algorithm    = LINCS
; Velocity generation
gen_vel                 = yes       ; assign velocities from Maxwell distribution
gen_temp                = 353       ; temperature for Maxwell distribution
gen_seed                = -1        ; generate a random seed

作者
Author:
sobereva    时间: 2024-12-5 01:55
xishaofan 发表于 2024-12-4 21:44
sob老师,我的体系是油-表面活性剂-水,gaff2力场,resp2电荷,我是如下设置的npt平衡的mdp文件,(1)这 ...

一般没必要设
原子受力不会精确为零(除非你做了极为充分的em),本身残余的受力就会带来加速度、使得原子有速度,然后由于热浴,温度会逐渐上去
就算你非要用gen_vel,也不要直接对应较高温度产生初速度免得上来就崩溃

热浴组别分得那么细碎,但凡耦合强烈的组,诸如Na离子和水,都不要分成不同的控温组,否则会带来人为虚假效应

作者
Author:
xishaofan    时间: 2024-12-5 11:17
sobereva 发表于 2024-12-5 01:55
一般没必要设
原子受力不会精确为零(除非你做了极为充分的em),本身残余的受力就会带来加速度、使得原 ...

感谢sob老师回复,我的em.mdp文件如下所示,麻烦sob老师帮我看一下mdp文件是否有误?无误的话,通过该em过程产生的原子受力不会精确为零吗?此时,我的npt平衡完全没必要用gen_vel?
em.mdp
integrator              = steep
emtol                   = 100.00
nsteps                  = 50000
emstep                  = 0.01
;
nstxout                 = 100
nstlog                  = 50
nstenergy               = 50
;
pbc                     = xyz
cutoff-scheme           = Verlet
coulombtype             = PME
rcoulomb                = 1.0
vdwtype                 = Cut-off
rvdw                    = 1.0
DispCorr                = EnerPres
;
constraints             = h-bonds
constraint_algorithm    = LINCS
npt.mdp,修改后的平衡过程npt
tcoupl                  = V-rescale
tc_grps                 = system
tau_t                   = 0.2
ref_t                   = 353
;
pcoupl                  = berendsen
pcoupltype              = semiisotropic
tau_p                   = 0.5
compressibility         = 0 4.5e-5
ref_p                   = 200.0 200.0
;
constraints             = h-bonds
constraint_algorithm    = LINCS
; Velocity generation
gen_vel                 = no   
gen_temp                = 353     
gen_seed                = -1        
pro-npt.mdp,生产模拟的mdp文件
tcoupl                  = Nose-Hoover
tc_grps                 = system
tau_t                   = 0.5
ref_t                   = 353
;
pcoupl                  = parrinello-rahman
pcoupltype              = semiisotropic
tau_p                   = 2.0
compressibility         = 0 4.5e-5
ref_p                   = 200.0 200.0
;
constraints             = h-bonds
constraint_algorithm    = LINCS
; Velocity generation
gen_vel                 = no   
gen_temp                = 353     
gen_seed                = -1        


作者
Author:
sobereva    时间: 2024-12-5 19:53
xishaofan 发表于 2024-12-5 11:17
感谢sob老师回复,我的em.mdp文件如下所示,麻烦sob老师帮我看一下mdp文件是否有误?无误的话,通过该em ...

又不可能优化到受力精确为0,搞清楚emtol是什么

gen_vel不是什么重要的事。最后能控温到期望的温度就完了

热浴始终用v-rescale

作者
Author:
xishaofan    时间: 2024-12-5 19:58
sobereva 发表于 2024-12-5 19:53
又不可能优化到受力精确为0,搞清楚emtol是什么

gen_vel不是什么重要的事。最后能控温到期望的温度就 ...

好的,谢谢sob老师回复!
作者
Author:
xishaofan    时间: 2024-12-5 20:39
sobereva 发表于 2024-12-5 19:53
又不可能优化到受力精确为0,搞清楚emtol是什么

gen_vel不是什么重要的事。最后能控温到期望的温度就 ...

sob老师,生产过程热浴用v-rescale,其对应的tau_t 变不,用0.5还是0.2?

作者
Author:
sobereva    时间: 2024-12-5 20:40
xishaofan 发表于 2024-12-5 20:39
sob老师,生产过程热浴用v-rescale,其对应的tau_t 变不,用0.5还是0.2?

无所谓
作者
Author:
xishaofan    时间: 2024-12-5 20:40
sobereva 发表于 2024-12-5 20:40
无所谓

好的,谢谢老师





欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3