GROMACS分子模拟基础实验教程(6)-体系能量最小化

文摘   科学   2023-05-25 07:30   江苏  

         

         


今天的内容是《GROMACS分子模拟基础实验教程》第六篇-体系能量最小化

更多模拟前的基础准备文章可以参考如下链接:

基础准备1-分子动力学模拟理论概述

基础准备2-分子动力学模拟的主要步骤

基础准备3-分子模拟基础-获取Gromacs软件

基础准备4-Ubuntu16版Linux下编译安装Gromacs2020

基础准备5-Linux7.6编译安装Gromacs2018版并行版

         

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

GROMACS分子模拟基础实验教程(1)-运行环境准备

GROMACS分子模拟基础实验教程(2)-生成蛋白结构拓扑

GROMACS分子模拟基础实验教程(3)-检查和理解拓扑文件

GROMACS分子模拟基础实验教程(4)-定义模拟体系的容器尺寸并加水

GROMACS分子模拟基础实验教程(5)-为模拟体系添加离子


今天是第6篇:GROMACS分子模拟基础实验教程(6)-体系能量最小化


6.1、关于能量最小化的理论  

可以参照之前的一篇文章:
基础准备1-分子动力学模拟理论概述
用理论方法构建出来的分子结构往往还不稳定,要用更系统的方法优化分子内的原子坐标,降低分子势能,使得核骨架进一步逼近稳定的结构(对于一个分子体系,其中的核质量远大于电子质量,核骨架指分子体系中的原子核),这类方法称之为能量最小化。
简单的说,分子模拟时希望得到分子的低能构象,需要求解与其对应的分子势能面上的极小值,并力求实现全局最小值。分子力学的最小化算法能较快实现能量优化,但是求的往往是局部最小值,而要寻求全局最小值只能采用系统搜索法或者分子动力学方法。
就本例子而言,我们目前得到了一个电中性溶剂+离子的蛋白质溶剂体系,但是还不能直接开始动力学模拟,需要先优化体系中的空间冲突或不适当的几何形状,使得结构更稳定,也就是能量最小化。
         

6.2、实操11-准备能量最小化参数和新tpr文件  

和添加离子的过程类似,能量最小化过程我们也是使用grompp将结构信息、拓扑信息、模拟参数等写入一个二进制的.tpr文件, 但这次我们不使用genion的相关参数, 而是使用GROMACS的MD引擎的mdrun模块来进行能量最小化。
         
能量最小化的minim.mdp参数如下:

; minim.mdp - used as input into grompp to generate em.tpr; Parameters describing what to do, when to stop and what to saveintegrator  = steep         ; Algorithm (steep = steepest descent minimization)emtol       = 1000.0        ; Stop minimization when the maximum force < 1000.0 kJ/mol/nmemstep      = 0.01          ; Minimization step sizensteps      = 50000         ; Maximum number of (minimization) steps to perform

; Parameters describing how to find the neighbors of each atom and how to calculate the interactionsnstlist = 1 ; Frequency to update the neighbor list and long range forcescutoff-scheme = Verlet ; Buffered neighbor searchingns_type = grid ; Method to determine neighbor list (simple, grid)coulombtype = PME ; Treatment of long range electrostatic interactionsrcoulomb = 1.0 ; Short-range electrostatic cut-offrvdw = 1.0 ; Short-range Van der Waals cut-offpbc = xyz ; Periodic Boundary Conditions in all 3 dimensions
         
确保拓扑文件topol.top是上一步使用genbox和genion添加了溶剂和离子更新后的信息,要不然执行下面的能量最小化可能得到一些错误信息,如“number of coordinates in coordinate file does not match topology”,即坐标文件中的坐标与拓扑不匹配等等错误。

Linux执行:
gmx grompp -f minim.mdp -c 1AKI_solv_ions.gro -p topol.top -o em.tpr
         
新生成了em.tpr文件,执行输出如下:
         
关键日志文本信息:

Command line:  gmx grompp -f minim.mdp -c 1AKI_solv_ions.gro -p topol.top -o em.tpr

Ignoring obsolete mdp entry 'ns_type'

NOTE 1 [file minim.mdp]: With Verlet lists the optimal nstlist is >= 10, with GPUs >= 20. Note that with the Verlet scheme, nstlist has no effect on the accuracy of your simulation.

Setting the LD random seed to -58878020Generated 330891 of the 330891 non-bonded parameter combinationsGenerating 1-4 interactions: fudge = 0.5Generated 330891 of the 330891 1-4 parameter combinationsExcluding 3 bonded neighbours molecule type 'Protein_chain_A'Excluding 2 bonded neighbours molecule type 'SOL'Excluding 1 bonded neighbours molecule type 'CL'Analysing residue names:There are: 129 Protein residuesThere are: 10636 Water residuesThere are: 8 Ion residuesAnalysing Protein...Analysing residues not classified as Protein/DNA/RNA/Water and splitting into groups...Number of degrees of freedom in T-Coupling group rest is 69717.00Calculating fourier grid dimensions for X Y ZUsing a fourier grid of 60x60x60, spacing 0.117 0.117 0.117Estimate for the relative computational load of the PME mesh part: 0.26This run will generate roughly 3 Mb of data
         

6.3、实操12-调用mdrun执行能量最小化  

         
根据上一步产生的em.tpr文件执行能量最小化,Linux下执行:
gmx mdrun -v -deffnm em
执行后会输出一堆信息:

Steepest Descents:   Tolerance (Fmax)   =  1.00000e+03   Number of steps    =        50000Step=    0, Dmax= 1.0e-02 nm, Epot= -3.31916e+05 Fmax= 2.28198e+05, atom= 1905Step=    1, Dmax= 1.0e-02 nm, Epot= -3.47978e+05 Fmax= 8.64638e+04, atom= 19877Step=    2, Dmax= 1.2e-02 nm, Epot= -3.70296e+05 Fmax= 3.30123e+04, atom= 19877Step=    3, Dmax= 1.4e-02 nm, Epot= -3.98673e+05 Fmax= 1.32088e+04, atom= 24182Step=    4, Dmax= 1.7e-02 nm, Epot= -4.27120e+05 Fmax= 5.66426e+03, atom= 21851…………………………………………Step=  858, Dmax= 6.3e-03 nm, Epot= -5.87436e+05 Fmax= 5.31422e+03, atom= 736Step=  859, Dmax= 7.6e-03 nm, Epot= -5.87449e+05 Fmax= 6.33299e+03, atom= 736Step=  860, Dmax= 9.1e-03 nm, Epot= -5.87458e+05 Fmax= 7.67593e+03, atom= 736Step=  861, Dmax= 1.1e-02 nm, Epot= -5.87465e+05 Fmax= 9.09571e+03, atom= 736Step=  863, Dmax= 6.5e-03 nm, Epot= -5.87517e+05 Fmax= 9.81522e+02, atom= 736

writing lowest energy coordinates.

Steepest Descents converged to Fmax < 1000 in 864 stepsPotential Energy = -5.8751662e+05Maximum force = 9.8152197e+02 on atom 736Norm of force = 2.0807849e+01

中间的step信息我省略了,运行时输出了这些每一步Step信息,是因为执行的时候使用了-v参数

-deffnm 选项定义了输入文件和输出文件的名称,这里指定了em,因此输出的文件都是em开头的:

输出的这些文件包括:
em.edr: 二进制能量文件
em.trr: 二进制轨迹文件
em.gro: 能量最小化后的结构拓扑
em.log: 日志文件, 记录了能量最小化过程

根据minim.mdp的参数,可以看出,这里正是使用了”最陡下降法”
; minim.mdp - used as input into grompp to generate em.tpr; Parameters describing what to do, when to stop and what to saveintegrator  = steep         ; Algorithm (steep = steepest descent minimization)emtol       = 1000.0        ; Stop minimization when the maximum force < 1000.0 kJ/mol/nmemstep      = 0.01          ; Minimization step sizensteps      = 50000         ; Maximum number of (minimization) steps to perform
从输出信息或日志可以看出,最终该体系经过了864步的模拟达到了能量最小化(就这个实验而言,不同的环境运行时间需要的step可能不一样,但差别不大)
         

6.4、实操13-评估能量最小化  

       
如何评估和确定能量最小化(EM)有没有完成呢?有两个重要的因素:
第1个是势能Epot(potential energy) 这个信息会在能量最小化的最后输出。势能Epot是一个负值,对于一个简单的水中的蛋白体系来说,这个势能大约在105-106之间,具体的还是取决于系统的大小和水分子的数量。
第2个是最大力值Fmax,也就是我们在minim.mdp参数中设置的emtol = 1000.0,意思是说Fmax 不大于1000 kJ/mol/nm。
能量最小化后会得到一个合适的势能Epot,但如果最终Fmax 还是大于emtol,那么你的系统可能还不稳定,还不能去直接模拟,可以尝试调整能量最小化的参数如integrator、emstep来重新进行能量最小化。
         

6.5、实操14-能量最小化结果分析  

二进制的能量文件em.edr,包含了GROMACS在能量最小化过程中记录的能量项,我们可以使用GROMACS的gmx energy模块来分析:
Linux下执行:gmx energy -f em.edr -o potential.xvg
提示时, 输入10 0来选择势能Potential(10), 并用零(0)来结束输入. 屏幕上会显示Epot的平均值, 得到的能量值会写入potential.xvg文件         

Command line:  gmx energy -f em.edr -o potential.xvg
Opened em.edr as single precision energy file
Select the terms you want from the following list byselecting either (part of) the name or the number or a combination.End your selection with an empty line or a zero.------------------------------------------------------------------- 1 Bond 2 Angle 3 Proper-Dih. 4 Ryckaert-Bell. 5 LJ-14 6 Coulomb-14 7 LJ-(SR) 8 Coulomb-(SR) 9 Coul.-recip. 10 Potential 11 Pressure 12 Vir-XX 13 Vir-XY 14 Vir-XZ 15 Vir-YX 16 Vir-YY 17 Vir-YZ 18 Vir-ZX 19 Vir-ZY 20 Vir-ZZ 21 Pres-XX 22 Pres-XY 23 Pres-XZ 24 Pres-YX 25 Pres-YY 26 Pres-YZ 27 Pres-ZX 28 Pres-ZY 29 Pres-ZZ 30 #Surf*SurfTen 31 T-rest
根据提示输入:
10 0
Last energy frame read 725 time  916.000         
Statistics over 917 steps [ 0.0000 through 916.0000 ps ], 1 data setsAll statistics are over 726 points (frames)
Energy Average Err.Est. RMSD Tot-Drift-------------------------------------------------------------------------------Potential -566593 11000 28032.5 -73338.4 (kJ/mol)
         
可以简单查看一下这个文件:more potential.xvg
@    title "GROMACS Energies"@    xaxis  label "Time (ps)"@    yaxis  label "(kJ/mol)"@TYPE xy@ view 0.15, 0.15, 0.75, 0.85@ legend on@ legend box on@ legend loctype view@ legend 0.78, 0.8@ legend length 2@ s0 legend "Potential"    0.000000  -331915.562500    1.000000  -347978.500000    2.000000  -370295.875000    3.000000  -398672.937500    4.000000  -427119.781250    5.000000  -452107.750000    ………………………………    ………………………………          

里面就是有两列数据:第一列是时间(皮秒),第二列是能量最小化的势能(kJ/mol
         
我们可以安装xmgrace表格工具进行查看,执行:
apt-get install grace
在图形界面下执行
xmgrace potential.xvg

从中可看到Epot收敛得不错, 随着时间的变化,势能逐步收敛趋于稳定。这样就可以认为完成了模拟体系的能量最小化。

补充说明:【关于这里使用图形界面调用xmgrace工具,见下面的说明】

Ubuntu16下使用xmgrace图形界面的补充说明


下一篇:GROMACS分子模拟基础实验教程(7)-NVT温度平衡


今天的分享就到这里了  

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

联系方式:微信号 coding_gene QQ 391399793 QQ群 338633443


         

         

 

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