最近一直在忙着我的论文修改,现在总算要告一段落了,马上要开启新的篇章,其中一个部分就是膜的体验,先准备学习以下gromacs李继存老师翻译的教程,这里记录一下学习的过程:
DPPC膜中的KALP15:
教程使用的文章是06年的一篇3.9分的文章,准备学习完以后参考一下他的分析步骤:文献查看
第一步:准备拓扑
多肽如何准备的参考资料并未详细给出,由于我也是第一次学,自己也先跳过,你可以在文章底部中文教程下载也可以KALP-15_princ.pdb
1.pdb进行处理
|
|
ignh选项指示gmx pdb2gmx忽略输出中的H原子. 默认情况下, xLeap会给出全原子结构(由于AMBER力场使用显式的氢). 在AMBER的命名约定中, 这些H原子的命名可能与GROMOS96力场中的不同. 如果让gmx pdb2gmx忽略输入的所有H原子, 它只会添加需要的那些.所以如果在蛋白配体复合物模拟中选用amber的话那么也不应该加-ignh选项,否则可能会干掉一些氢
选择13:GROMOS96 53A6力场
两端不需要封端,所以均选择:None
2.修改拓扑
下载膜:连接地址
dppc128.pdb - 含128个DPPC脂分子的双脂膜
dppc.itp - DPPC的分子类型定义
lipid.itp - Berger脂分子参数
你也可以在我这里dppc下载好了的
将gromos53a6.ff目录中文件复制出来,也可以在我这里下载已经打包好了的,gromos53a6_lipid.ff
接下来, 将lipid.itp中的[ atomtypes ]
, [ nonbond_params ]
和[ pairtypes ]
部分复制粘贴到ffnonbonded.itp中相应的行. 你可以发现lipid.itp中的[ atomtypes ]
节缺少原子编号(at.num列), 因此添加上编号. 修改后的行应该是:
|
|
在[ nonbond_params ]
节中, 你可以看到一行;; parameters for lipid-GROMOS interactions.
, 删除这一行以及所有后续行, 因为这些非键组合特定地用于已经废弃的ffgmx力场. 移除这些行后, 会根据GROMOS96 53A6力场的标准组合规则生成蛋白质和脂分子之间的相互作用参数. 文件中也有涉及HW原子类型的非键相互作用, 由于它们都是零, 你也可以删除这些行, 否则请将HW重命名为H, 以便与GROMOS96 53A6的命名约定兼容. 如果你不进行重命名或移除这些行, 后面执行gmx grompp时会导致致命错误.
追加[ dihedraltypes ]
的内容到ffbonded.itp中相应的节. 这些行看起来差异很大, 但无关紧要. 它们是Ryckaert-Bellemans二面角, 与默认GROMOS96 53A6力场中使用的标准周期性二面角形式不同. 最后, 将topol.top文件中的#include语句由
|
|
修改为
|
|
最后, 我们需要包含DPPC分子的特定参数. 做法非常简单. 在你的topol.top文件中添加一行#include “dppc.itp”即可, 放在蛋白质位置限制部分的后面, 位置限制部分是蛋白质[ moleculetype ]定义的结束. 这些做法与在拓扑文件中添加任何其他小分子或溶剂类似. 在本节及整个教程中, 绿色文本表示你要添加的行, 其他文本(黑色)表示修改前拓扑中已有的内容.
|
|
如果你正确地遵循了上面的所有步骤, 你就会得到一个全功能的力场, 可与gmx pdb2gmx一起用于处理其他膜蛋白. 这样做不必手动修改topol.top
. 将新的gromos53a6_lipid.ff
目录放于$GMXLIB下就可以在整个系统中使用这个力场了.
3.定义单位晶胞并添加溶剂
比起水中的蛋白质来, 为膜蛋白定义单位晶胞更复杂一些. 构建单位晶胞时有几个关键步骤:
在相同的坐标系中对蛋白和膜进行取向
在蛋白周围堆积脂分子
使用水进行溶剂化
1.蛋白质和膜的取向
(1) 使用gmx grompp对仅含有DPPC的体系生成.tpr文件. 你可以使用任何有效的.mdp文件, 相应于纯DPPC的拓扑文件. 这里是一个示例.mdp文件, 以及一个拓扑文件. 注意拓扑文件非常简单, 仅包含了dppc.itp和spc.itp, 用以读入DPPC和水的参数. 就这么简单! 运行gmx grompp:
这里教程没有写命令,我暂时这么写:
|
|
选择2 DPP 正确与否待考
|
|
你可能会得到一个致命错误, 像这样, 但在这种情况下对上面的命令可以安全地使用-maxwarn 1
选项来忽略错误. 可以这样做的原因见这里. 请注意 这一步是使用topol_dppc.top的唯一一步, 此文件不能用于任何其他目的, 你不应该将它用于本教程中的 任何 剩余步骤
对复杂的分子, 去除周期性的子程序可能会崩溃, 在这种情况下你可以使用gmx trjconv.但是后面教程里做了
|
|
(2) 使用gmx trjconv移除周期性
|
|
这一步产生的结构有一定的飞线,原因待考
现在查看下这个.gro文件的最后一行, 它对应于DPPC单位晶胞的x/y/z盒向量. 我们需要在相同的坐标系内调整KALP多肽的取向, 并将多肽的质心置于盒子的中心:
|
|
2. 在蛋白四周堆积脂分子
目前我发现, 围绕嵌入蛋白质堆积脂分子的最简单方法是InflateGRO方法(参考文献), 你可以在这里inflategro. 请注意, 我发布的代码是我自己保存的InflateGRO原始版本的副本, 而 不是 来自作者的InflateGRO2. 下载上面链接中的文件, 将其重命名为inflategro.pl再继续. 首先, 整合蛋白质和双脂层的结构文件:
|
|
移除不需要的行(来自KALP结构的盒向量, 来自DPPC结构的标题信息), 并相应地更新坐标文件的第二行(总原子数).
InflateGRO脚本的作者建议对蛋白质的重原子使用非常强的位置限制力, 以保证在EM过程中蛋白质的位置不发生改变. 在拓扑中添加新的#ifdef语句, 调用特殊的位置限制, 这样你的拓扑现在就包含类似下面的部分:
|
|
现在就可以使用gmx genrestr生成新的位置限制文件:
|
|
在用于能量最小化的.mdp文件中, 添加一行define = -DSTRONG_POSRES以保证使用这些新的位置限制. 然后, 简单地按照InflateGRO的指示(包含在脚本自身中)做, 过程很简单. 对脂分子的位置使用因子4进行缩放:
perl inflategro.pl system.gro 4 DPPC 14 system_inflated.gro 5 area.dat
由于InflateGRO脚本对命令行变量顺序的要求非常严格, 这里需要给出一个简略的说明:
system.gro - 将要施加缩放的输入坐标文件的名称
4 - 施加的缩放因子, 值>1表示扩增, 值<1表示收缩/压缩
DPPC - 施加缩放的脂分子的残基名称
14 - 搜索脂分子的截断半径(单位为Å), 处于此半径内的脂分子会被删除
system_inflated.gro - 输出文件的名称
5 - 计算每个脂分子面积时所用的格点间距(单位为Å)
area.dat - 输出文件, 包含每个脂分子的面积信息, 对确定结构是否合适很有帮助
记下删除了多少脂分子, 并相应地更新拓扑文件中[ molecules ]部分的内容.
There are 1 lipids within cut-off range…
1 will be removed from the upper leaflet…
0 will be removed from the lower leaflet…
貌似我的是1个
运行能量最小化. 然后, 使用因子0.95收缩脂分子(假定你使用了默认的名称, 能量最小化的结果文件为confout.gro):
perl inflategro.pl confout.gro 0.95 DPPC 0 system_shrink1.gro 5 area_shrink1.dat
在网上找到一个脚本,脚本如下:
|
|