文章来源:“分子动力学”公众号
链接:https://mp.weixin.qq.com/s/Mx__MQHIscL1Hqz0sYXdzA
Gromacs的pdb2gmx命令使用gromacs做分子动力学模拟时,第一个要用到的命令一般都是pdb2gmx。这个命令吧pdb分子文件转化成gromacs独特的gro分子结构文件类型,同时产生分子拓扑文件。
Gromacs是典型的GPL软件,每一个命令都有很多命令参数。这对熟悉windows环境的人来说有一点烦,但是如果熟悉了Linux环境,也就慢慢喜欢啦。(建议多使用命令,就像VMD, Pymol,rasmol和Chimera等等分子可视化软件,如果接合命令使用,功能都非常强大。另外一个比较bt的软件叫做WHATIF的,完全建立在bt的命令菜单上,心理承受能力不强者多半吐血而终。
使用“pdb2gmx -h”可以得到pdb2gmx的所有参数及简单说明(gromacs的任何命令都可以使用-h参数得到类似帮助)。pdb2gmx的参数很多,但是常用的只有以下几个:
-f 指定你的坐标文件,可以是pdb、gro、tpr等等包含有分子坐标的文件;
-o 输出文件,也就是处理过的分子坐标文件,同样可以是pdb、gro、g96等文件类型;
-p 输出拓扑文件。pdb2gmx读入力场文件,根据坐标文件建立分子系统的拓扑;
-water 指定使用的水模型,使用pdb2gmx的时候最好加这个参数,不然后面会吃苦头。它会提前在拓扑文件中添加水分子模型文件;
-ff 指定力场文件(下文讨论),也可以不用这个参数,再自行选择;
-ignh 舍弃分子文件中的H原子,因为H原子命名规则多,有的力场不认;
-his 独个指定HIS残基的质子化位置。
其他的参数还不少,可以好好看一个pdb2gmx的帮助文件,一般的pdb2gmx的执行格式如下(假设你的分子坐标文件为sen.pdb):
pdb2gmx -f sen.pdb -o sen.gro -p sen.top -water tip4p -ignh -his
该命令读入分子文件,使用tipp水模型,等等,然后pdb2gmx会让你选择力场文件。然后它就很聪明的帮你建立初始模拟系统啦。
gromacs自带的力场有很多:
0: GROMOS96 43a1 force field
1: GROMOS96 43b1 vacuum force field
2: GROMOS96 43a2 force field (improved alkane dihedrals)
3: GROMOS96 45a3 force field (Schuler JCC 2001 22 1205)
4: GROMOS96 53a5 force field (JCC 2004 vol 25 pag 1656)
5: GROMOS96 53a6 force field (JCC 2004 vol 25 pag 1656)
6: OPLS-AA/L all-atom force field (2001 aminoacid dihedrals)
7: [DEPRECATED] Gromacs force field (see manual)
8: [DEPRECATED] Gromacs force field with hydrogens for NMR
9: Encad all-atom force field, using scaled-down vacuum charges
10: Encad all-atom force field, using full solvent charges
建议使用OPLS力场和tip4p水模型。tip4p水有四个粒子,分别是两个氢原子,一个氧原子和一个没有质量的电粒子。这个电粒子在其他三个原子中间靠近氧原子。tip4p水模型多了一个粒子,模拟代价高一点,但是结果要好一点。但是最近有报道说使用spce水模型和GROMOS力场的计算结果最好,嘿嘿,好一个百家争鸣的学术氛围啊,我真的号感动哦。Gromacs也可以使用其他力场,如AMBER力场等,使用方法请参考google。
pdb2gmx的输出基本可以做真空中模拟了,现在对MD模拟的要求高,一般都要有点水。为分子系统添加水环境和离子环境需要其他命令,要慢慢来。
Gromacs的editconf命令在使用pdb2gmx创建模拟分子系统之后,可以使用editconf为你的分子画一个盒子。也可以认为使用editconf把分子放进一个盒子中,这样,你就可以往盒子里面添加水分子,离子,或者其他溶剂等等了。使用“ eidtconf -h ”可以看到editconf的参数,其中比较常用的有以下几个:
-f 指定你的坐标文件。
-n 分子系统的索引文件。索引文件是gromacs一个十分突出的功能,刚接触有点复杂,但是功能相当强大。
-o 输出文件,即放进盒子里面的分子系统。
-bt 盒子类型,有正方型,长方形,八面型等等,看个人需要跟癖好啦。
-box 自定义盒子大小,需要三个长度,即X、Y、Z三个方向的长度。
-d 分子离盒子表面的最短距离。这个跟-bt一起使用,基本就足够了;如果蛋白在模拟过程尺寸变化很大,那就用-box吧。
-center 确定哪一部分分子放在盒子中心,如果和索引文件一起使用,可以非常详细的定义分子的位置。
-translate 平移分子,跟X、Y、Z三个方向,随便移动。可以参考我前面一篇关于加大盒子的e文文章,练习e文,不好意思。
-rotate 转动分子,还是三个方向。我觉得editconf开发者太有才,什么都想到了,我想要什么,他就有什么,以后遇到他,我会让他给我签名。
-princ 这个参数可以用来对齐分子,比如使分子沿X轴对齐。举一个例子吧,比如你想将分子中两个残基沿Y轴对齐,那么就在索引文件中将这俩个残基标记以下,然后使用-princ,根据提示走就能对齐分子啦。
由于gromacs的很多命令都可以接受不同的文件类型,editconf也有其他功能,如和trjconv一样进行gro和pdb的转化:
editconf -f sen.pdb -o sen.gro
或者
editconf -f sen.gro -o sen.pdb
使用tpbconv重启gromacs模拟在使用gromacs的mdrun进行模拟计算过程中,很多因素可以是模拟计算终止。比如突然断电,断网或者磁盘空间满,或者windows死机(_)等等。重启gromacs模拟计算是一件十分方便的事情,因为gromacs众多的程序里面就有一个专门(或者吧)用来修改tpr文件的,就是tpbconv。
gromacs把模拟需要的所以文件都打包成一个tpr二进制文件,里面包含了分子坐标,各个原子在给定温度下速度和能量的分布。当模拟突然终止时,只要将终止时候系统的状态,即各个原子的位置、速度、坐标等装入tpr文件即可。tpbconv的参数也不少,可以使用”tpbconv -h “查看,但是制作一个重启tpr文件的参数和格式一般如下:
tpbconv -s topol.tpr -f traj.trr -e ener.edr -o newtopol.tpr
其中topol.tpr为原来的tpr文件,traj.trr为双精度坐标文件(不要用xtc文件,因为精度不够),ener.edr为系统能量输出文件,newtopol.tpr是重启模拟文件。以上的命令得到的是在计算突然终止前一个系统构象的信息。也可以在命令中加上一个”-time “参数来指定从那一个时间重新开始,如一下指定从一纳秒处重新开始模拟:
tpbconv -s topol.tpr -f traj.trr -e ener.edr -time 1000 -o newtopol.tpr
同时,如果模拟正常结束,而模拟时间让人觉得不够长时,可以使用tpbconv写一个延长模拟的tpr文件,一般格式如下:
tpbconv -s topol.tpr -f traj.trr -e ener.edr -extend 1000 -o newtopol.tpr
其中”-extend 1000”表示延长1000ps的模拟时间。呵呵,非常好用。这样断了又开始,就会产生很多轨迹文件,分析的时候非常不方便,gromacs有其他常用的命令把坐标文件,能量文件连接成一个文件,其中比较常用的如trjcat和eneconv,格式分别如下:
trjcat -f traj1.trr traj2.trr.... -o traj_all.trr
eneconv -f ener1.edr ener2.edr... -o ener_all.edr
即使用”-f “读入所有轨迹或者能量文件,使用”-o “输出完整的轨迹和能量文件。
最后说说一个tpbconv的弱点。tpbconv不能更改你原来tpr文件中并行计算的节点数,比如你原来的tpr文件是8个节点的,那么使用tpbconv得到的重启tpr文件也是8个节点的。如果想更改使用节点数,那只能用grompp重新做一个了。但是使用grompp做重启模拟文件时,就算你指定了原来的轨迹文件和能量文件,它还是会根据麦克斯韦分布重新给各个原子指定速度。
嗯,如果你觉得这是一个大问题,那就伸长脖子等gromcas新版
使用genbox命令为Gromacs模拟分子添加水环境使用editconf把分子放进一个盒子之后,接下来要做的就是往盒子里面添加水分子。Gromacs中添加水环境的命令是genbox,这是一个较其他命令简单一点的命令,因为参数不多。
通常用到的genbox参数有以下几个:
-cp :带盒子参数的分子坐标文件,也就是editconf的输出文件;
-cs :添加的水分子模型,如spc216、spce、tip3p、tip4p等,关于各个模型的区别,请参考scholar google;
-o :输出坐标文件,就是添加水分子之后的分子坐标文件,默认是.gro文件,但是也可以输出其他文件格式,如pdb;
-p :系统拓扑文件,genbox会往里面写入添加水分子的个数,这个不要忘记,不然在进行下一步计算时,会出现坐标文件和拓扑文件原子数不一致的错误;
-ci :索引文件,genbox可以为分子特定部位添加水环境,这样可以减少原子数,只有研究的分子部位添加水环境,节省计算时间。
-seed :随机种子数,添加水分子时,各个水分子的位置是随机的,可以改变这个随机数子使水分子重新分布。添加水分子后可以用VMD等软件看看结果,一般完成这个之后事情开始变得复杂。比如某一个水分子出现在蛋白结构中,而这个位置本来就是不希望水分子一开始就存在,那么可以找出这个水分的残基标号,进行删除,同时删除拓扑文件中水分子的数目等。
使用grompp提取上一次模拟最后速度和能量在上面提到的使用gromacs程序包中tpbconv命令制作新的tpr文件中,最后提到新制作的.tpr文件只能使用跟原来.tpr文件一样多的CPU数目。还抱怨说这是tpbconv一个不足的地方。使用grompp可以制作一个新的.tpr文件,从上一步模拟的轨迹文件中提取速度,并从上一步能量文件中提取能量,也可以无缝的链接重启模拟计算。要做到从上一步的最后的一个系统状态开始新的模拟计算。首先要在.mdp文件中把“ gen_vel ”参数定义为” no “,这样做是为了告诉grompp不要重新为系统中的原子指定随机速度。指定新模拟开始的时间,即修改” tinit “参数。然后可以使用一下命令制作一个从上一步模拟文件中提取速度和能量的.tpr文件:
grompp -f [.mdp文件] -c [上一步模拟最后的系统坐标文件] -p [拓扑文件] -t [上一步的trr轨迹文件] -e [上一步能量文件] -time [坐标文件对应的模拟时间] -o [输出tpr文件] -np [CPU数目]
提取上一步模拟系统的速度时使用trr文件,是因为xtc为单精度,没有trr文件精确。” -time “参数告诉grompp在上一步模拟文件中提取该时间的能量和速度,所以该时间要和系统的坐标文件相一致。看起来好像要比tpbconv命令复杂一点,但是可以改变CPU数目,还算十分灵活。Gromacs是灵活的人的MD工具
链接:https://mp.weixin.qq.com/s/Mx__MQHIscL1Hqz0sYXdzA
Gromacs的pdb2gmx命令使用gromacs做分子动力学模拟时,第一个要用到的命令一般都是pdb2gmx。这个命令吧pdb分子文件转化成gromacs独特的gro分子结构文件类型,同时产生分子拓扑文件。
Gromacs是典型的GPL软件,每一个命令都有很多命令参数。这对熟悉windows环境的人来说有一点烦,但是如果熟悉了Linux环境,也就慢慢喜欢啦。(建议多使用命令,就像VMD, Pymol,rasmol和Chimera等等分子可视化软件,如果接合命令使用,功能都非常强大。另外一个比较bt的软件叫做WHATIF的,完全建立在bt的命令菜单上,心理承受能力不强者多半吐血而终。
使用“pdb2gmx -h”可以得到pdb2gmx的所有参数及简单说明(gromacs的任何命令都可以使用-h参数得到类似帮助)。pdb2gmx的参数很多,但是常用的只有以下几个:
-f 指定你的坐标文件,可以是pdb、gro、tpr等等包含有分子坐标的文件;
-o 输出文件,也就是处理过的分子坐标文件,同样可以是pdb、gro、g96等文件类型;
-p 输出拓扑文件。pdb2gmx读入力场文件,根据坐标文件建立分子系统的拓扑;
-water 指定使用的水模型,使用pdb2gmx的时候最好加这个参数,不然后面会吃苦头。它会提前在拓扑文件中添加水分子模型文件;
-ff 指定力场文件(下文讨论),也可以不用这个参数,再自行选择;
-ignh 舍弃分子文件中的H原子,因为H原子命名规则多,有的力场不认;
-his 独个指定HIS残基的质子化位置。
其他的参数还不少,可以好好看一个pdb2gmx的帮助文件,一般的pdb2gmx的执行格式如下(假设你的分子坐标文件为sen.pdb):
pdb2gmx -f sen.pdb -o sen.gro -p sen.top -water tip4p -ignh -his
该命令读入分子文件,使用tipp水模型,等等,然后pdb2gmx会让你选择力场文件。然后它就很聪明的帮你建立初始模拟系统啦。
gromacs自带的力场有很多:
0: GROMOS96 43a1 force field
1: GROMOS96 43b1 vacuum force field
2: GROMOS96 43a2 force field (improved alkane dihedrals)
3: GROMOS96 45a3 force field (Schuler JCC 2001 22 1205)
4: GROMOS96 53a5 force field (JCC 2004 vol 25 pag 1656)
5: GROMOS96 53a6 force field (JCC 2004 vol 25 pag 1656)
6: OPLS-AA/L all-atom force field (2001 aminoacid dihedrals)
7: [DEPRECATED] Gromacs force field (see manual)
8: [DEPRECATED] Gromacs force field with hydrogens for NMR
9: Encad all-atom force field, using scaled-down vacuum charges
10: Encad all-atom force field, using full solvent charges
建议使用OPLS力场和tip4p水模型。tip4p水有四个粒子,分别是两个氢原子,一个氧原子和一个没有质量的电粒子。这个电粒子在其他三个原子中间靠近氧原子。tip4p水模型多了一个粒子,模拟代价高一点,但是结果要好一点。但是最近有报道说使用spce水模型和GROMOS力场的计算结果最好,嘿嘿,好一个百家争鸣的学术氛围啊,我真的号感动哦。Gromacs也可以使用其他力场,如AMBER力场等,使用方法请参考google。
pdb2gmx的输出基本可以做真空中模拟了,现在对MD模拟的要求高,一般都要有点水。为分子系统添加水环境和离子环境需要其他命令,要慢慢来。
Gromacs的editconf命令在使用pdb2gmx创建模拟分子系统之后,可以使用editconf为你的分子画一个盒子。也可以认为使用editconf把分子放进一个盒子中,这样,你就可以往盒子里面添加水分子,离子,或者其他溶剂等等了。使用“ eidtconf -h ”可以看到editconf的参数,其中比较常用的有以下几个:
-f 指定你的坐标文件。
-n 分子系统的索引文件。索引文件是gromacs一个十分突出的功能,刚接触有点复杂,但是功能相当强大。
-o 输出文件,即放进盒子里面的分子系统。
-bt 盒子类型,有正方型,长方形,八面型等等,看个人需要跟癖好啦。
-box 自定义盒子大小,需要三个长度,即X、Y、Z三个方向的长度。
-d 分子离盒子表面的最短距离。这个跟-bt一起使用,基本就足够了;如果蛋白在模拟过程尺寸变化很大,那就用-box吧。
-center 确定哪一部分分子放在盒子中心,如果和索引文件一起使用,可以非常详细的定义分子的位置。
-translate 平移分子,跟X、Y、Z三个方向,随便移动。可以参考我前面一篇关于加大盒子的e文文章,练习e文,不好意思。
-rotate 转动分子,还是三个方向。我觉得editconf开发者太有才,什么都想到了,我想要什么,他就有什么,以后遇到他,我会让他给我签名。
-princ 这个参数可以用来对齐分子,比如使分子沿X轴对齐。举一个例子吧,比如你想将分子中两个残基沿Y轴对齐,那么就在索引文件中将这俩个残基标记以下,然后使用-princ,根据提示走就能对齐分子啦。
由于gromacs的很多命令都可以接受不同的文件类型,editconf也有其他功能,如和trjconv一样进行gro和pdb的转化:
editconf -f sen.pdb -o sen.gro
或者
editconf -f sen.gro -o sen.pdb
使用tpbconv重启gromacs模拟在使用gromacs的mdrun进行模拟计算过程中,很多因素可以是模拟计算终止。比如突然断电,断网或者磁盘空间满,或者windows死机(_)等等。重启gromacs模拟计算是一件十分方便的事情,因为gromacs众多的程序里面就有一个专门(或者吧)用来修改tpr文件的,就是tpbconv。
gromacs把模拟需要的所以文件都打包成一个tpr二进制文件,里面包含了分子坐标,各个原子在给定温度下速度和能量的分布。当模拟突然终止时,只要将终止时候系统的状态,即各个原子的位置、速度、坐标等装入tpr文件即可。tpbconv的参数也不少,可以使用”tpbconv -h “查看,但是制作一个重启tpr文件的参数和格式一般如下:
tpbconv -s topol.tpr -f traj.trr -e ener.edr -o newtopol.tpr
其中topol.tpr为原来的tpr文件,traj.trr为双精度坐标文件(不要用xtc文件,因为精度不够),ener.edr为系统能量输出文件,newtopol.tpr是重启模拟文件。以上的命令得到的是在计算突然终止前一个系统构象的信息。也可以在命令中加上一个”-time “参数来指定从那一个时间重新开始,如一下指定从一纳秒处重新开始模拟:
tpbconv -s topol.tpr -f traj.trr -e ener.edr -time 1000 -o newtopol.tpr
同时,如果模拟正常结束,而模拟时间让人觉得不够长时,可以使用tpbconv写一个延长模拟的tpr文件,一般格式如下:
tpbconv -s topol.tpr -f traj.trr -e ener.edr -extend 1000 -o newtopol.tpr
其中”-extend 1000”表示延长1000ps的模拟时间。呵呵,非常好用。这样断了又开始,就会产生很多轨迹文件,分析的时候非常不方便,gromacs有其他常用的命令把坐标文件,能量文件连接成一个文件,其中比较常用的如trjcat和eneconv,格式分别如下:
trjcat -f traj1.trr traj2.trr.... -o traj_all.trr
eneconv -f ener1.edr ener2.edr... -o ener_all.edr
即使用”-f “读入所有轨迹或者能量文件,使用”-o “输出完整的轨迹和能量文件。
最后说说一个tpbconv的弱点。tpbconv不能更改你原来tpr文件中并行计算的节点数,比如你原来的tpr文件是8个节点的,那么使用tpbconv得到的重启tpr文件也是8个节点的。如果想更改使用节点数,那只能用grompp重新做一个了。但是使用grompp做重启模拟文件时,就算你指定了原来的轨迹文件和能量文件,它还是会根据麦克斯韦分布重新给各个原子指定速度。
嗯,如果你觉得这是一个大问题,那就伸长脖子等gromcas新版
使用genbox命令为Gromacs模拟分子添加水环境使用editconf把分子放进一个盒子之后,接下来要做的就是往盒子里面添加水分子。Gromacs中添加水环境的命令是genbox,这是一个较其他命令简单一点的命令,因为参数不多。
通常用到的genbox参数有以下几个:
-cp :带盒子参数的分子坐标文件,也就是editconf的输出文件;
-cs :添加的水分子模型,如spc216、spce、tip3p、tip4p等,关于各个模型的区别,请参考scholar google;
-o :输出坐标文件,就是添加水分子之后的分子坐标文件,默认是.gro文件,但是也可以输出其他文件格式,如pdb;
-p :系统拓扑文件,genbox会往里面写入添加水分子的个数,这个不要忘记,不然在进行下一步计算时,会出现坐标文件和拓扑文件原子数不一致的错误;
-ci :索引文件,genbox可以为分子特定部位添加水环境,这样可以减少原子数,只有研究的分子部位添加水环境,节省计算时间。
-seed :随机种子数,添加水分子时,各个水分子的位置是随机的,可以改变这个随机数子使水分子重新分布。添加水分子后可以用VMD等软件看看结果,一般完成这个之后事情开始变得复杂。比如某一个水分子出现在蛋白结构中,而这个位置本来就是不希望水分子一开始就存在,那么可以找出这个水分的残基标号,进行删除,同时删除拓扑文件中水分子的数目等。
使用grompp提取上一次模拟最后速度和能量在上面提到的使用gromacs程序包中tpbconv命令制作新的tpr文件中,最后提到新制作的.tpr文件只能使用跟原来.tpr文件一样多的CPU数目。还抱怨说这是tpbconv一个不足的地方。使用grompp可以制作一个新的.tpr文件,从上一步模拟的轨迹文件中提取速度,并从上一步能量文件中提取能量,也可以无缝的链接重启模拟计算。要做到从上一步的最后的一个系统状态开始新的模拟计算。首先要在.mdp文件中把“ gen_vel ”参数定义为” no “,这样做是为了告诉grompp不要重新为系统中的原子指定随机速度。指定新模拟开始的时间,即修改” tinit “参数。然后可以使用一下命令制作一个从上一步模拟文件中提取速度和能量的.tpr文件:
grompp -f [.mdp文件] -c [上一步模拟最后的系统坐标文件] -p [拓扑文件] -t [上一步的trr轨迹文件] -e [上一步能量文件] -time [坐标文件对应的模拟时间] -o [输出tpr文件] -np [CPU数目]
提取上一步模拟系统的速度时使用trr文件,是因为xtc为单精度,没有trr文件精确。” -time “参数告诉grompp在上一步模拟文件中提取该时间的能量和速度,所以该时间要和系统的坐标文件相一致。看起来好像要比tpbconv命令复杂一点,但是可以改变CPU数目,还算十分灵活。Gromacs是灵活的人的MD工具