双层膜体系的分子模拟

双层膜体系模型的构建

对于双层膜这种较复杂的体系,使用GROMACS中自带的简单工具构建较为繁琐。因此选取Packmol用来构建双层膜部分,同时利用GROMACS中的gmx solvate命令来向体系中加入溶剂,这样组合使用能大大节省构建时间。我的体系的双层膜部分的Packmol输入文件如下,没有很复杂,基本与Packmol官方教程一致。但是应注意resnumbers选项的添加,否则生成的结构文件中分子序号将会不连续。

<pre>

construction of SDS-C16-CHOL-SOL system

tolerance 2.0
filetype pdb
output C16DS-CHOL128.pdb
structure SDS-C16min.pdb
number 64
resnumbers 2
inside box 0. 0. 0. 60. 60. 20.
atoms 1 45
over plane 0. 0. 1. 16.
end atoms
atoms 17
below plane 0. 0. 1. 3
end atoms
atoms 64
below plane 0. 0. 1. 1.
end atoms
end structure

structure SDS-C16min.pdb
number 64
resnumbers 2
inside box 0. 0. -20. 60. 60. 0.
atoms 1 45
below plane 0. 0. 1. -16.
end atoms
atoms 17
over plane 0. 0. 1. -3
end atoms
atoms 64
over plane 0. 0. 1. -1.
end atoms
end structure
</pre>

快速之余,这种方法也会带来一点小问题,就是在溶剂化的过程中会有一些溶剂分子进入到双层膜部分,通常采用手动删除或用脚本删除,GROMACS官网里有分享一个自动删除不合理位置溶剂(水)分子的脚本,现将具体操作教程翻译一下,并附上我个人使用时遇到的一些问题及解决方法:

膜模拟

运行膜模拟

GROMACS用户往往会在运行双脂质层模拟时遇到各种问题,尤其是体系中还有蛋白质的时候。推荐模拟双脂质层的用户参考教程KALP-15 in DPPC

完成一次对膜蛋白体系的模拟需要执行一下步骤:

  1. 为你选用的蛋白质和膜分子选取合适的力场参数;
  2. 将蛋白质插入到膜结构中;(例如,在预备好的双分子层上使用g_membed命令或做一个粗粒化自组装模拟然后再转回全原子)
  3. 向体系中加入溶剂并加入离子确保整个体系最终呈电中性;
  4. 运行能量最小化;
  5. 让膜与蛋白质相适应,在限制蛋白质所有重原子的情况下运行约5~10ns的MD;
  6. 去掉限制进行平衡;
  7. 运行MD;

使用genbox命令加入水

当使用genbox(5.0以后版本中为gmx solvate)向双层膜体系中添加水时,水分子往往会进入到双层膜中,一般来说解决办法有一下几种:

  • 将vdwradii.dat文件从$GMXLIB拷贝到当前目录下,调大脂质层分子的范德华半径(建议调节碳原子的半径于0.35~0.5nm)以阻止genbox命令将水分子加入这些空隙;
  • 运行一段短暂的MD,让脂质层分子的憎水作用把水分子排开; * 手动的去删除这些位置上的水分子;
  • 借助本教程中的脚本来修改;

增大水相的z轴坐标

假设整个双层膜体系沿z轴展开,这个由Chirs Neale提供的脚本可以排除不需要的水分子,具体操作如下(如果需要,可以在第41行修改以适配脚本用于x、y方向展开的体系):

  1. 对初始双层膜构型initial.gro运行genbox命令,得到solvated.gro;
  2. cp solvate.gro new_waters.gro;
  3. 删除new_waters.gro中所有不为新添加进来的水的内容;(若初始构型中有水分子,则这些水分子也要删去)
  4. 修改脚本keepbyz.sh中的upperz和lowerz参数为需要的值,并将sol参数改为溶剂名称;(upperz和lowerz分别为双层膜的上下边界的z轴坐标,sol对应溶剂的名称,默认为SOL)
  5. ./keepbyz.sh new_waters.gro > keep_these_waters.gro;(先执行chmod +x keepbyz.sh确保脚本可以执行)
  6. tail -1 initial.gro > last_line.gro;
  7. head -$(expr $(cat initial.gro | wc -l | awk '{print $1}') - 1 ) initial.gro > not_last_line.gro;
  8. cat not_last_line.gro new_waters.gro last_line.gro > new_system.gro;
  9. editconf -f new_system.gro -o new_system_sequential_numbers.gro;(5.0以后版本中为gmx editconf)

脚本内容如下:
<pre>

!/bin/bash

give x.gro as first command line arguement

upperz=6.417
lowerz=0.820
sol=SOL
count=0 cat $1 | grep "$sol" | while read line; do
for first in $line; do
break
done
if [ "$count" = 3 ]; then
count=0
fi
count=$(expr $count + 1)
if [ "$count" != 1 ]; then
continue
fi
l=${#line}
m=$(expr $l - 24) // would use -48 if velocities are also in .gro and -24 otherwise
i=1
for word in ${line:$m}; do
if [ "$i" = 1 ]; then
popex=$word
else
if [ "$i" = 2 ]; then
popey=$word
else
if [ "$i" = 3 ]; then
popez=$word
break
fi
fi
fi
i=$(expr $i + 1)
done
nolx=echo "$popez > $upperz" | bc
nohx=echo "$popez < $lowerz" | bc
myno=$(expr $nolx + $nohx)
if [ "$myno" != 0 ]; then
z=${#first}
if [ "$z" != 8 ]; then
sfirst="[[:space:]]$first"
else
sfirst=$first
fi
echo grep $sfirst $1
fi
done
</pre>

脚本中默认使用3原子的水分子作为溶剂,若使用TIP4P,则应将:
<pre>
if [ "$count" = 3 ];
then count=0
fi
</pre>

修改为:
<pre>
if [ "$count" = 4 ];
then count=0
fi
</pre>

同理,TIP5P应修改为5。为提高效率,该脚本的作者还提供了一个同样功能的C程序,详见原文链接

这里列出我遇到的问题来供大家参考:

  1. 按照我的理解上述教程的第八步应该为:cat not_last_line.gro keep_these_waters.gro last_line.gro > new_system.gro,因为keep_these_waters.gro才是删除了错误位置的水分子后的构型;
  2. 在执行第九步时会出现"bad box error",这是因为第七步产生的gro文件中第二行的原子数与总体系的总原子数不相等,这里可以手动更改一下;
  3. 提醒一下新手,脚本中第十九行//后的内容为注释,告诉你如果gro文件中包含速度信息,这一数值应改为48。bash中注释不以//打头,在执行前可以删去;
  4. 在vim中删除多行可以用指令ndd,n为行数;
  5. 修改完分子数后记得修改拓扑文件,确保两者中分子数一致;

**上文中的脚本已改进!更高效的教程请参考李老师博客GROMACS之如何做膜模拟! **

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,064评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,606评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,011评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,550评论 1 269
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,465评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,919评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,428评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,075评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,208评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,185评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,191评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,914评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,482评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,585评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,825评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,194评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,703评论 2 339

推荐阅读更多精彩内容

  • 1.创建文件夹 !/bin/sh mkdir -m 777 "%%1" 2.创建文件 !/bin/sh touch...
    BigJeffWang阅读 10,006评论 3 53
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,715评论 0 33
  • 每个人的成长过程中多多少少都会有一两个自己的心中偶像,他就像我们人生途中的一盏指路明灯,或明媚,或强大,好似是一棵...
    阿俊xi阅读 962评论 2 3
  • 2017.10.2 MQ.ting 1、一天中三个感受:累、兴奋、焦虑 2、这一天做出来哪些方面的进步? 最近我...
    tingMQ阅读 155评论 0 1
  • 1 抚摸你蜿蜒的曲线 沿着你清澈的流向 总算看透你草木枯荣的源头 冰川不便把你的浩荡与干涸带走 2 所以你预备孤注...
    光白阅读 143评论 0 0