今天的内容是:GROMACS分子模拟基础实验教程第三篇-检查和理解拓扑文件
更多前序基础文章可以参考:
基础准备4-Ubuntu16版Linux下编译安装Gromacs2020
基础准备5-Linux7.6编译安装Gromacs2018版并行版
我们接着之前的实验文档:
直接入正题:
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行:
这个定义了力场文件,调用了OPLS-AA力场的参数, 一般位于拓扑文件的开头
其实我们可以在linux系统上查找对应的文件,参考命令如下:
find /apps/svr/gromacs/gmx2020 -name forcefield.itp
find /apps/svr/gromacs/gmx2020 -name forcefield.itp | grep oplsaa
后面是moleculetype,这个也很重要
[ ]
; Name nrexcl
Protein_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
上面这个是离子相关的拓扑配置。
最后是体系级别的定义。
[ system ]指令给出了体系的名称, 在模拟中此名称将被写入到输出文件中. 例子中的LYSOZYME指的是我们本次模拟的物质对象--溶菌酶
[molecules]模块列出了体系中的所有分子,有几个关键注意点需要注意:
1、列出分子的顺序必须与坐标(本例中为.gro)文件中的分子顺序保持一致
2、对每一个研究体系,[molecules]列出的名称必须与[ moleculetype]中的名称一致, 而不是残基名称或其他名称
下面是文件前面定义的
这是文件最后定义的
本节非常重要,主要是理解gromacs pdb2gmx生成的拓扑文件内容。下一步建立模拟的容器并添加溶剂和离子。
今天的分享就到这里了
欢迎点赞、在看、分享转发朋友圈 ^.^ 公众号还可以“设为星标”喔~
联系方式:微信号 coding_gene QQ 391399793 QQ群 338633443