mdp文件-Chapter2-NVT.mdp

这是mdp文件系列的第二篇,介绍nvt平衡中要使用的mdp文件。

先上代码,nvt.mdp

 1 title       = OPLS Lysozyme NVT equilibration
 2 define      = -DPOSRES  
 3 ; Run parameters
 4 integrator  = md         
5
nsteps = 50000
6
dt = 0.002
7
; Output control 8 nstxout = 500
9
nstvout = 500
10 nstenergy = 500
11 nstlog = 500
12 ; Bond parameters 13 continuation = no 14 constraint_algorithm = lincs 15 constraints = all-bonds
16 lincs_iter = 1
17 lincs_order = 4
18 ; Neighborsearching 19 cutoff-scheme = Verlet 20 ns_type = grid 21 nstlist = 10
22 rcoulomb = 1.0
23 rvdw = 1.0
24 ; Electrostatics 25 coulombtype = PME
26 pme_order = 4
27 fourierspacing = 0.16
28 ; Temperature coupling is on 29 tcoupl = V-rescale 30 tc-grps = Protein Non-Protein
31 tau_t = 0.1 0.1
32 ref_t = 300 300
33 ; Pressure coupling is off 34 pcoupl = no
35 ; Periodic boundary conditions 36 pbc = xyz
37 ; Dispersion correction 38 DispCorr = EnerPres
39 ; Velocity generation 40 gen_vel = yes
41 gen_temp = 300
42 gen_seed = -1

 按行解释:

1.title 说明这个mdp文件的作用

2.NVT NPT模拟中都需要对蛋白质做位置限定,这样做是为了避免在平衡过程中把蛋白质打散,最终的md模拟中要放开位置限制。

3.运行参数部分

4.与minim.mdp中类似,不同的是这次我们不再做能量最小化,而是做MD模拟,这里md代指蛙跳算法

5-6.运行步长为0.002ps=2fs 总运行时间为2*50000=100ps,一般10-20ps体系就可以完成弛豫,所以取100ps一般是没有问题的

7.输出控制

8-9.每500步输出一次坐标和速度

10.每500步向能量文件中输出一次,模拟结束的能量一定输出

11.每500步向日志文件中输出一次能量

12.键合部分

13.continuation这个指令以前叫做unconstrained-start 直译就是“未限定即开始”,取no时意味着对初始结构做位置限定并重构壳层;取yes相反

14.限定算法选择lincs

15.键合限制  对所有键做限制

16-17:与lincs算法的精度有关,一般取1,4

18.临近搜索部分

19.截断方式 Verlet

20.临近格子搜索方式选择grid

21.临近列表更新频率 10步更新一次

22.短程库伦力截断距离(nm)

23.短程范德华力截断距离(nm)

24.库伦力部分

25.库伦长程力计算方式 PME

26-27:与精度有关

28.温度耦合部分

29.温度耦合,选择了Beredesen方式

30.温度耦合组 分为蛋白质和非蛋白质组

31.耦合时间常数 对两个组各自定义  单位为ps

32.耦合温度  对两个组各自定义  单位为K

33.压力耦合部分

34.压力耦合不进行

35.周期性边界条件部分

36.对三个方向均进行周期性边界条件限制

37.色散力修正

38.选择修正方案

39.速度产生部分

40.是否产生速度:是 按照Maxwell分布随机分布

41.Maxwell分布中的温度 300K

42.随机数生成种子 -1

 

接下来要对其中的几个重要部分做一解释,与minim.mdp重合的就不重复解释了。

约束算法:12-17行

约束是必要的,否则的话键合将会被打断,在Gromacs中可以使用默认的lincs算法或传统的shake算法来进行约束。参考文档3.6节。SHAKE算法将一组不受约束的坐标转变为一组坐标,使其满足一系列距离约束条件。而lincs算法则是始终将键重置为它们的正确长度,这个方法不进行迭代。lincs的精度取决于算法中展开方程的矩阵阶数,对于MD来说四阶就够了。精度为一阶。第16行的lincs_iter指精度,指定为1;lincs_order为四阶。

温度耦合:28-32行

直接使用的分子动力学模拟体系对应于NVE系综,这在现实中是显然不存在的。NVT系综可以让系统处于恒温,这稍微现实一点。当然最后还是要进行NPT模拟,这才对对应于真实情况。Gromacs中实现恒温过程有以下几种方案:

Berendsen温度耦合:模仿与给定温度的热浴T0相连。优点很显然:对于以平衡为目的的模拟可以采用极小的的时间常数,对于比较可靠的体系则可以使用较大的时间常数。Berendsen耦合不会产生正确的正则系综,且会降低动能的涨落。

速度重缩放温度耦合:本质上还是一个Berendsen耦合,但是附加了一个随机项,以保证能给出正确的动能分布,能够给出正确的正则系综。上面文件中第29行的v-rescale即代表选择该耦合方式。

Anderson控温器:使用NVE积分方法,并周期性的从M-B分布(Maxwell-Boltzmann distribution)中重新选择粒子速度。通过每τ/Δt步同时对所有粒子的速度进行随机化,或通过一小概率(Δt/τ)随机化每个粒子的速度.Δt为时间步长,tau为特征耦合时间长度。这样一来,这个方法不能用来考察动力学和输运性质。

Nose-Hoover耦合:Berendsen 弱耦合算法可以非常高效地将体系弛豫到到目标温度, 但是, 一旦系统达到平衡, 维持正确的正则系综更重要. 很可惜,弱耦合方案并不能满足这一点.

Nose和Hoover提出一种方法,在运动方程中引入一个热容器和一个摩擦项,来实现一种新的耦合。具体请参考文档。

组内温度耦合:将蛋白质和非蛋白质分开耦合。即文件中第30行。

色散纠正:37-38行

色散需要纠正,因为对Lennard-Jones或Buckingham相互作用截断而引起的。我们假定截断足够大以至于可以安全地忽略斥力项, 因此只须考虑色散项的校正.可参考文档4.9节。具体在mdp文件中只有三个选项:no(不进行修正),EnerPres(对能量和压力进行修正),Ener(只对能量进行修正)。一般情况下色散纠正对能量影响较小,而对压力影响很大,因此一般要采用EnerPres选项。

速度产生:39-42行

有三个选项,gen-vel:

no:Do not generate velocities. The velocities are set to zero when there are no velocities in the input structure file.

yes:在gen-temp温度下,按照M-B分布产生速度

gen-temp:定义温度

gen-seed:随机数种子。

 

至此,nvt.mdp告一段落。

posted on 2017-11-05 20:15  谢小顿  阅读(2858)  评论(0编辑  收藏  举报

导航