GROMACS分子模拟基础实验教程(9)-正式进行动力学模拟

文摘   科学   2023-05-27 12:05   江苏  

         


         

我们接着之前的实验文档:

GROMACS分子模拟基础实验教程(1)-运行环境准备
GROMACS分子模拟基础实验教程(2)-生成蛋白结构拓扑
GROMACS分子模拟基础实验教程(3)-检查和理解拓扑文件
GROMACS分子模拟基础实验教程(4)-定义模拟体系的容器尺寸并加水
GROMACS分子模拟基础实验教程(5)-为模拟体系添加离子
GROMACS分子模拟基础实验教程(6)-体系能量最小化
GROMACS分子模拟基础实验教程(7-8)-nvt与npt平衡


今天是:GROMACS分子模拟基础实验教程(9)-进行正式动力学模拟      

第9步-正式进行动力学模拟 

9.1、实操20-模拟准备  

随着NVT和NPT两个平衡过程的完成, 体系已经在需要的温度和压强下平衡了。我们现在可以放开位置限制,并进行正式的分子动力学模拟来采集信息。这个过程跟前面的类似,运行grompp时, 我们还要用到检查点文件(包含了压力、耦合信息的文件)。
我们要进行1ns的分子动力学模拟,需要使用的mdp参数参考:
http://www.mdtutorials.com/gmx/lysozyme/Files/md.mdp

title                   = OPLS Lysozyme NPT equilibration ; Run parametersintegrator              = md        ; leap-frog integratornsteps                  = 500000    ; 2 * 500000 = 1000 ps (1 ns)dt                      = 0.002     ; 2 fs; Output controlnstxout                 = 0         ; suppress bulky .trr file by specifying nstvout                 = 0         ; 0 for output frequency of nstxout,nstfout                 = 0         ; nstvout, and nstfoutnstenergy               = 5000      ; save energies every 10.0 psnstlog                  = 5000      ; update log file every 10.0 psnstxout-compressed      = 5000      ; save compressed coordinates every 10.0 pscompressed-x-grps       = System    ; save the whole system; Bond parameterscontinuation            = yes       ; Restarting after NPT constraint_algorithm    = lincs     ; holonomic constraints constraints             = h-bonds   ; bonds involving H are constrainedlincs_iter              = 1         ; accuracy of LINCSlincs_order             = 4         ; also related to accuracy; Neighborsearchingcutoff-scheme           = Verlet    ; Buffered neighbor searchingns_type                 = grid      ; search neighboring grid cellsnstlist                 = 10        ; 20 fs, largely irrelevant with Verlet schemercoulomb                = 1.0       ; short-range electrostatic cutoff (in nm)rvdw                    = 1.0       ; short-range van der Waals cutoff (in nm); Electrostaticscoulombtype             = PME       ; Particle Mesh Ewald for long-range electrostaticspme_order               = 4         ; cubic interpolationfourierspacing          = 0.16      ; grid spacing for FFT; Temperature coupling is ontcoupl                  = V-rescale             ; modified Berendsen thermostattc-grps                 = Protein Non-Protein   ; two coupling groups - more accuratetau_t                   = 0.1     0.1           ; time constant, in psref_t                   = 300     300           ; reference temperature, one for each group, in K; Pressure coupling is onpcoupl                  = Parrinello-Rahman     ; Pressure coupling on in NPTpcoupltype              = isotropic             ; uniform scaling of box vectorstau_p                   = 2.0                   ; time constant, in psref_p                   = 1.0                   ; reference pressure, in barcompressibility         = 4.5e-5                ; isothermal compressibility of water, bar^-1; Periodic boundary conditionspbc                     = xyz       ; 3-D PBC; Dispersion correctionDispCorr                = EnerPres  ; account for cut-off vdW scheme; Velocity generationgen_vel                 = no        ; Velocity generation is off

这个1ns的模拟如何指定呢
; Run parametersintegrator              = md        ; leap-frog integratornsteps                  = 500000    ; 2 * 500000 = 1000 ps (1 ns)dt                      = 0.002     ; 2 fs

模拟时间等于模拟步长乘以步数
2 * 500000 = 1000 ps (1 ns)
(1秒=109纳秒=1012皮秒=1015飞秒)
         

9.2、实操21-生成模拟前的tpr文件  

执行grompp生成模拟的tpr文件:
gmx grompp -f md.mdp -c npt.gro -t npt.cpt -p topol.top -o md_0_1.tpr

         
grompp将打印PME负载的预测值,PME负载预测可指示应该使用多少处理器进行PME计算, 多少处理器进行PP计算。
例如我这里的结果是:
Estimate for the relative computational load of the PME mesh part: 0.22
(如上图红色框的)。对立方体型的晶胞容器, 最佳设置的PME负载为0.25(3:1 PP:PME, 我们已经比较接近这个理想值);对十二面体晶胞容器, 最佳PME负载为0.33(2:1 PP:PME)。当执行mdrun的时候, 程序会自动分配用于PP和PME计算的处理器数目。
         
关于PME和PP,大家可以参考网络资料了解。
         

9.3、实操22-执行模拟  


gmx mdrun -deffnm md_0_1
     
输出提示信息:

Command line:  gmx mdrun -deffnm md_0_1

Reading file md_0_1.tpr, VERSION 2020.7 (single precision)Changing nstlist from 10 to 50, rlist from 1 to 1.116
Using 1 MPI thread
Non-default thread affinity set, disabling internal thread affinity
Using 12 OpenMP threads
starting mdrun 'LYSOZYME in water'500000 steps, 1000.0 ps.
        

9.4、查看模拟的进度  

Linux下使用top命令,再按1,可以查看CPU的使用率:CPU依然跑满
         
         
我们可以粗略估算一下运行的时间:
开始运行的时间是:Started mdrun on rank 0 Wed May 24 22:37:40 2023
运行到10万步的时间是22:52:42,大概15分钟。因此要完成500000的实验运算,总共需要大约75分钟。

继续等待计算完成(可以去做点其他事情……)
         

9.5、模拟完成  


最后看结果,发现花了76分钟完成了1纳秒的模拟实验,和我们估算的时间差不多。最后模拟的统计结果如下:

按这个计算能力,我的12核CPU服务器,对我的实验体系而言,1小时可以运行1.2纳米的模拟,一天可以完成18.9纳秒的模拟。(当然实际运行时间还和体系大小有关)

下面就可以进行最后的模拟轨迹数据分析了。

                   

         

今天的分享就到这里了  

欢迎点赞、在看、分享转发朋友圈 ^.^ 公众号还可以“设为星标”喔~


【链接】最新联系方式以及加入微信交流群

         


生信实战
十年前你还不懂生信,看那一行行代码和报错,只是朦胧的心痛...