恒定PH值分子动力学模拟

自然界中往往存在一些对PH值敏感的蛋白,当我们想要探究这些蛋白在不同PH条件下构象变化时自然离不开MD的辅助。遗憾的是Gromacs暂不支持恒定PH条件下的模拟,因为这涉及到了蛋白表面残基质子化状态需要时刻改变。一种折衷的方法是:用propka等预测工具预测蛋白极性/可质子化残基的pka值(因为实际蛋白表面的pka值可能受到邻近残基的影响而发生偏移),然后根据想要模拟的PH环境,自主确定各个可质子化残基质子化状态(比如某个残基pKa=4,pH环境为7,那么这个残基自然是处于离去质子的解离状态)。然后修改对应pdb文件中的残基名,比如脱去质子的CYS改名为CYM(这个问题文末有提及)。这种方法存在的最大缺点在于:质子化状态一但设定好就会一成不变,这和实际情况显然是不符的。因此我们今天不介绍这种方法,而是介绍在Amber中的实现方法。

1. 准备结构

有这样一张表(下图所示),罗列了常见质子化残基,包括ASP、GLU、HIS、CYS、LYS、TYR. 第三列数据对应它们各自的pKa值。第二列对应它们在恒定PH环境模拟时Amber识别的名字,如果想让Amber在模拟时对某个残基上面的质子化状态"多多关照",总得披上"马甲"好让Amber认识它吧。比如我想要模拟PH=7的环境,查看下表可以看出ASP、GLU、HIS在此条件下质子会发生解离,那么就把pdb文件中它们的名称改成对应的"马甲"。ASPAS4GLUGL4HISHIP

恒定PH值分子动力学模拟_第1张图片

本次就以11个氨基酸长度的小肽test.pdb在pH为7的环境下模拟为例:

  • 第一步,修改pdb文件

首先修改需要更换“马甲”的残基名,这里我们做了ASPAS4GLUGL4修改,由于没有HIS残基,所以就不做考虑。此外该分子种有两个距离较靠近的CYS,我们想让他们之间成二硫键,所以修改做出修改:CYSCYX。修改后的文件名为test_fix.pdb

恒定PH值分子动力学模拟_第2张图片

#用pdb4amber不加氢,补全缺失原子,连接二硫键
pdb4amber -i test_fix.pdb --nohyd -o test_fix2.pdb
#不知道什么原因pdb4amber除氢总是失败,只能用下条命令自行除去了
grep -v '.............H' test_fix2.pdb > test_fix3.pdb

下图所示,我们想要连接的二硫键并没有形成,什么原因呢?这是因为只有硫原子间距小于2.5Å时pdb4amber才会自动连接。不过也没关系,后面我们还能在构建拓扑时强制将它们连上。

恒定PH值分子动力学模拟_第3张图片

  • 第二步,构建拓扑
#唤醒tleap程序
tleap
#加载constph力场(底层用的amber_ff10力场,同时于蛋白而言等价于ff99SB)
source leaprc.constph
source leaprc.water.tip3p  #为后面的抗衡离子添加力场
#加载修改好的pdb
mol = loadPDB test_fix3.pdb
#连接二硫键
#遵循语法bond <原子1> <原子2> [bondtype]
#bondtype分三类:“-”单键、“=”双键、“#”三键、“:”芳香键,若不指定则默认是单键
bond mol.4.SG mol.8.SG 
#维持体系电中性
addions mol Cl- 0
addions mol Na+ 0
#保存拓扑、坐标
saveAmberParm mol test.prmtop test.inpcrd
#退出tleap程序
quit

注意,这里我们构建拓扑时没有添加水分子,这是因为本例要使用的是’隐式水‘模型。’隐式水‘不是真正的水分子,你可以把它理解为一个个数据点。启用’隐式水‘模型的参数为icnstph=1,需要将它添加到后文用到的以*.in为后缀的文件中。

  • 第三步,准备恒定pH输入文件(cpin file)
#因为本例中我们只考虑了GLU、ASP的质子化状态改变,所以resname后面的参数改为它们对应的'马甲'——GL4、AS4
cpinutil.py -resnames GL4 AS4 -p test.prmtop -o test.cpin

2.模拟

  • 第一步,EM
#em.in文件在分享文件中的em文件夹内
pmemd -O -i em/em.in -p test.prmtop -c test.inpcrd -o em/test_min.mdout -r em/test_min.rst -ref test.inpcrd -cpin test.cpin -inf em/em_mdinfo
  • 第二步,体系加热
#heat.in文件在分享文件中的heat文件夹内
pmemd -O -i heat/heat.in -p test.prmtop -c em/test_min.rst -o heat/test_heat.mdout -r heat/test_heat.rst -ref em/test_min.rst -cpin test.cpin -inf heat/heat_mdinfo
  • 第三步,预平衡
  • 这一步*in文件里需要添加或调整参数solvph=, ntcnstph=
  • solvph=设定体系pH值,ntcnstph= 设置每隔多少步监测一次所选残基质子化状态。要注意的是,amber每次只能监测一个残基的状态,也就是说所选“滴定残基”(即需要质子化状态改变的残基)数越多,于单个残基而言监测间隔越长。这就需要我们进行适当取舍。amber官方举的例子:当选取滴定残基数为10时,监测步长设为5得到的结果比较好。可见即便amber可以模拟恒定pH条件,但这也是有限制的。本例中我们选取的滴定残基数总共就两个,所以ntcnstph=可以设得比较大,我设定为25。(ps:后来才发现前面设置了三个“滴定残基”,不过影响应该不大)
#pr.in文件在分享文件中的pr文件夹内
pmemd -O -i pr/pr.in -p test.prmtop -c heat/test_heat.rst -o pr/test_pr.mdout -cpin test.cpin -r pr/test_pr.rst -cpout pr/test_pr.cpout -cprestrt pr/test_pr.cpin -inf pr/pr_mdinfo

本步输出的test_pr.cpintest.cpin文件更新版。在预平衡中,“滴定残基”质子化状态发生了改变,所以需要将更新后的信息保存到新结果中,以供下一步成品模拟调用。

无关紧要的内容


如下图所示展示了Amber计算各种质子化状态之间的相对自由能差的原理。绿色区域的各种质子化状态的自由能在模拟过程中(t0)存入以*cpin为后缀的文件中。在当质子化状态又一次发生改变[下图红色区域]时(t0+Δt)依照下方公式即可计算出残基质子化前后自由能的变换。

恒定PH值分子动力学模拟_第4张图片


无关紧要的内容

  • 第四步,成品模拟
#md.in文件在分享文件中的md文件夹内
pmemd -O -i md/md.in -p test.prmtop -c pr/test_pr.rst -o md/test_md.mdout -cpin pr/test_pr.cpin -r md/test_md.rst -x md/test_md.nc -cpout md/test_md.cpout -cprestrt md/test_md.cpin -inf md/md_mdinfo

3.结果分析

#结果输出到analyse文件夹内
cphstats -i md/test_md.cpin md/test_md.cpout -o analyse/calcpka.dat --population analyse/populations.dat
  • calcpka.dat文件中记录了每个滴定残基的预测pKa值及质子化存在时间比率等信息。本例由于运行时间很短,所以两个ASP质子化状态未改变,所以pKa没有预测值。
  • populations.dat文件记录了每个残基各种质子化状态及相应状态数量占比。

除此之外,你也可以按照常规步骤分析其他的性质,比如构象变化、主成分、自由能等。

写在最后


关于残基的"马甲"

在Amber中,对于一些标准残基的特殊状态,我们往往用另一种名字替代。这样Amber才能识别,并施加适当的力场参数。大体有如下几种情况:

原残基名 “马甲” 描述
CYS CYX 半胱氨酸成二硫键
CYS CYM 半胱氨酸和金属螯合/或用于恒定pH模拟的滴定碱基
HIS HIE 见下图描述
HIS HID 见下图描述
HIS HIP 见下图描述/同时用于恒定pH模拟的滴定碱基
ASP AS4 可用于恒定pH模拟的滴定碱基
GLU GL4 可用于恒定pH模拟的滴定碱基

:::

恒定PH值分子动力学模拟_第5张图片

你可能感兴趣的:(MD相关,MD,Amber)