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

文摘   科学   2023-05-15 07:00   江苏  

         


         

         

今天的内容是:GROMACS分子模拟基础实验教程第三篇-检查和理解拓扑文件

更多前序基础文章可以参考:

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

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

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

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

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

         

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

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

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


直接入正题:

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


本章没有实际需要用gromacs做的操作,却非常重要,主要是理解gromacs使用gmx pdb2gmx生成的拓扑文件topol.top的内容,这对后续的模拟至关重要。后续结合自己的研究对象进行模拟时,如果拓扑文件存在异常,则可能出现相关严重的运行报错,因此理解拓扑文件才能解决后续报错问题。

         

上一章节,我们通过gmx pdb2gmx命令,输入去掉了水分子的1AKI_clean.pdb文件。并使用gmx pdb2gmx -f 1AKI_clean.pdb -o 1AKI_processed.gro -water spce生成了对应的3个文件:topol.top、posre.itp、1AKI_processed.gro

1AKI_processed.gro是一个GROMACS格式的结构文件,包含力场中定义的所有原子(即蛋白质中的氨基酸添加了H原子)

topol.top文件是蛋白分子系统的拓扑文件

posre.itp文件包含了用来限制重原子(heavy atoms)位置的信息

本章我们重点学习理解topol.top文件

         

  • linux下如何查看.top文件  

可以把topol.top下载到Windows系统上,使用一般的文本编辑器如Notepad++、UltraEdit等文本编辑器查看。不过既然我们在linux上进行操作,还是建议习惯使用linux的命令操作;


这里我们再顺便复习和巩固一下linux基础操作命令

在Linux下查看这个top文件需要使用相关的命令,方式有多种:


Ø方式1:cat命令查看

查看topol.top文件的行数

cat topol.top | wc -l

显示有18408行

可以直接cat topol.top去查看全部内容,但是直接显示全部18408行内容不太友好,也不方便看

         

Ø方式2:通过vi查看文件

vi topol.top

使用vi的好处就是可以定位到任意一个想查看的位置,可以显示行号,还可以搜索

查看行号:vi topol.top后,执行:set nu 就可以显示文件的行编号

搜索文件内容:vi topol.top后,搜索某个字符或单词pdb2gmx

输入 :/pdb2gmx 回车后就开始搜索,按n键可以查找下一个

         

定位到文件最后一行:vi topol.top后,键盘输入大写字母G,光标即可调到最后一行的位置

定位到指定行:vi topol.top后,输入冒号+行号,如 :20 回车后即可调到文件的第20行

         

Ø方式3:more命令翻页查看

more topol.top

会只显示文件前面的一页内容就不继续显示了:

想查看下一行,就持续按“回车键”;

想查看下一页,就持续按“空格键”

关于在linux下查看topol.top文件就先说这么多

感觉是不是有点啰嗦,linux查看文件都要说半天,可能是我年纪大了

如果对linux还不怎么熟悉的同学,就在Windows下看其实也是可以的。

         

  • 检查top文件的文件头  

more topol.top


前面这些以分号开头的是文件注释,

看红色框的第2行:

#include "oplsaa.ff/forcefield.itp"

这个定义了力场文件,调用了OPLS-AA力场的参数, 一般位于拓扑文件的开头

         

其实我们可以在linux系统上查找对应的文件,参考命令如下:

find /apps/svr/gromacs/gmx2020 -name forcefield.itpfind /apps/svr/gromacs/gmx2020 -name forcefield.itp  | grep oplsaa

         

         

后面是moleculetype,这个也很重要

[ moleculetype ]; Name            nrexclProtein_chain_A     3

“Protein_A”定义了分子名称(这个蛋白质在PDB文件中被标定为A链)

nrexcl为3,nrexcl=n:表示不计算≤n个键相连原子间非键作用(这里是3个键以内的原子不算非键相互作用)

         

  • 检查top文件的原子定义部分  

接下来的部分则定义了蛋白质中的原子

         

这里面列值很多,解释参考如下:

nr: 原子序号type: 原子类型resnr: 氨基酸残基编号residue: 氨基酸残基名注意这里的残基在原来的PDB文件中为“LYS”, 使用.rtp中的“LYSH”项意味着这是质子化的残基(中性PH环境下会处于主导地位).atom: 原子名称cgnr: 电荷组编号(电荷组定义了整数电荷单元, 可加速计算.)charge: 无需解释,“qtot”为对分子总电荷的持续累加mass: 也无需解释typeB, chargeB, massB: 用于自由能微扰(这里不讨论)

         

下面几节包括[ bonds ], [ pairs ], [ angles ]和[ dihedrals ]. 其中一些无需解释:bonds, angles, and dihedrals(键, 键角, 二面角),主要是和蛋白质有关的一些基础化学概念。

可以参考gromacs手册进行查阅

         

  • 检查top文件的位置限制配置  

         

看拓扑文件的最后几行,本例子大约在第18384行文件开始

; Include Position restraint file

#ifdef POSRES

#include "posre.itp"

#endif

         

该部分定义了位置限制文件

posre.itp由pdb2gmx生成,此文件包含了用来限制重原子(heavy atoms)位置的信息,定义了平衡时用于维持原子位置的力常数)

到这里Protein_A分子的定义就结束了。剩下的是定义其他分子并提供体系级别的说明

         

  • 检查top文件中溶剂拓扑定义  

         

         

接下来默认定义的是溶剂分子类型(一般就是水), 在本例中为SPC/E模型的水分子(其他水分子模型还有SPC, TIP3P和TIP4P等)。水也可以被位置约束,使用1000 kJ mol-1 nm-2的力常数(kpr)

         

通过上一步生成拓扑的时候,在pdb2gmx命令中使用“-water spce”选项(gmx pdb2gmx -f 1AKI_clean.pdb -o 1AKI_processed.gro -water spce),gromacs程序选择了默认的SPC/E水模型. (顺便说一下,GROMACS并没有包含所有的水模型,关于不同类型水模型的解释,可以参考资料https://water.lsbu.ac.uk/water/water_models.html,下图是网站首页的截图,简要说明了水分子模型概况)

         

  • 查看拓扑文件末尾配置

         

         

; Include topology for ions#include "oplsaa.ff/ions.itp"

上面这个是离子相关的拓扑配置。

最后是体系级别的定义。

[ system ]指令给出了体系的名称, 在模拟中此名称将被写入到输出文件中. 例子中的LYSOZYME指的是我们本次模拟的物质对象--溶菌酶

         

[molecules]模块列出了体系中的所有分子,有几个关键注意点需要注意:

1、列出分子的顺序必须与坐标(本例中为.gro)文件中的分子顺序保持一致

2、对每一个研究体系,[molecules]列出的名称必须与[ moleculetype]中的名称一致, 而不是残基名称或其他名称

下面是文件前面定义的

这是文件最后定义的

         

本节非常重要,主要是理解gromacs pdb2gmx生成的拓扑文件内容。下一步建立模拟的容器并添加溶剂和离子。        

         

今天的分享就到这里了  

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

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


         

         

 

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