最近这几天一直在进行自由能的计算,期间遇到了各种错误,整了一周的时间,这周二终于在无意中找到了解决问题的方法。
因为MMPBSA一般是用已经跑出来的轨迹进行自由能的计算,因此在计算过程中一定要注意对输入文件的处理,否则输入文件的一个小小的差错就有可能导致运行过程中出现
各种错误,我计算的过程中基本上遇到了各种错误。现在列举如下,希望看到这篇文章的人在处理多聚体的时候能够少走一些弯路。
错误列表:
错误提示 | 解决办法 |
PB bomb in pb_setgrd(): Allocation aborted | 这个错误是内存的原因,很可能是计算的帧数太多造成的。 解决办法是把interval参数的数值设置的大一点。 |
PB Bomb in pb_atmlist():maxnba too short
| 这个问题是按照amber中邮件内的回复解决的,具体做法是把top 文件中的Ca2+去掉。 |
Error: PB bomb in pb_atmlist(): MAXNEI too short | 这个问题比较难解决,需要修改,需要修改源文件中的参数,在源文件 中找到pb_def.h文件,然后将 #define MAXNEI 4096 把参数改的大一点,然后重新编译。 |
Error in PB calculations
| 出现这个问题的可能性有很多,我的错误原因是由于输入的带水 的top文件的错误。 |
下面是具体的对四聚体计算自由能的操作流程。
a:把在跑MD的过程中所用到的带水的top文件先找到(注意,一定要是源文件,不能重新生成一个,否则可能出现错误,我的错误出现的根源就在于此)。
b:生成相应的在真空中的复合物的top文件,以及配体和受体的top文件
描述如下:如果计算四聚体中的自由能,因为现在MMPBSA还不能同时计算四聚体中每个单聚体的自由能,因此只能一个一个的计算。
在准备受体和配体的top文件的时候,配体和受体一定要相对应。可以在图形软件中查看所计算的复合物中是不是配体和受体相对应的。
c: MMPBSA输入文件的准备
因为要计算每个单聚体的自由能,因此需要定义好配体和受体,通过输入文件中的参数 strip_mask, strip_mdcrd来定义配体和受体,对于计算多具体的
自由能来讲,strip_mdcrd参数要设置为1。
定义strip_mask的时候,要按照 复合物带水的top文件进行设置,简便的方法就是在准备带水的top文件的时候同时生成一个相应的pdb文件,按照pdb文件
中的残基序列来去除相应的残基,注意这个过程中也要去除水分子,以及你加入的抗衡离子。对于一些重要的位于活性位点的金属离子可以保留。
d:所有的准备文件都准备好了以后,就可以开始计算了。
跑多聚中某个单聚体时需要自定义的一些文件的参数:
利用PBSA或者是GBSA方法时需要自定义一些残基的mask.
首先在MMPBSA命令的最后加上 “-make-mdins“参数,从而产生PBSA和GBSA在调用sander程序时候的输入文件:
例如下面的操作命令: MMPBSA -O -i mmpbsa.in -o FINAL_REUSLT.dat -sp ras-raf_solvated.prmtop -cp ras-raf.prmtop -rp ras.prmtop -lp raf.prmtop -y *.mdcrd -make-mdins
产生的文件分别为: _MMPBSA_gb_decomp_com.mdin, _MMPBSA_gb_decomp_lig.mdin, _MMPBSA_gb_decomp_rec.mdin和 _MMPBSA_pb_decomp_com.mdin, __MMPBSA_pb_decomp_lig.mdin, __MMPBSA_pb_decomp_rec.mdin
打开这些文件,在Residues to print字段中的下一行RES EDIT中,将EDIT去掉,并把需要打印到输出文件中的残基写到上面,注意残基的书写格式,如果是一个残基则需要
写两次,如果是一段残基序列则把起始残基和结束残基写到上面就可以了。例如如果要输出残基25,63,70-90这几部分残基的贡献,则需要在上边提到的行中这样书写:
Residues to print
RES 25 25 63 63 70 90
欢迎关注微信公众账号