生成混合组分的磷脂双层膜结构文件的工具genmixmem

生成混合组分的磷脂双层膜结构文件的工具genmixmem

文/Sobereva@北京科音

First release: 2014-Jul-23   Last update: 2019-Jun-15


1 前言

构建磷脂膜的程序和办法不少,比如CHARMM-GUI、Packmol等等,但都有这样或那样的缺点。比如Packmol构建双层膜往往要迭代很多次才能收敛,得到的结构往往还有好多空隙。而CHARMM-GUI是在线程序,没法离线使用,而且支持的磷脂数目有限,碰上一些特殊的磷脂、双层膜中插入的小分子,CHARMM-GUI就没法用了,而且还只支持CHARMM力场。

为了能灵活、方便、快速地构建磷脂双分子膜,笔者专门开发了这个genmixmem程序。只要提供磷脂(或者胆固醇之类小分子)的结构文件,以及一些参数信息,程序就可以瞬间构建出磷脂双分子膜,尤其适合用于GROMACS中模拟的目的。

genmixmem最新的1.2版下载地址:http://sobereva.com/soft/genmixmem_1.2.zip
其中有预编译好的Windows下的可执行文件(genmixmem.exe)、Linux下的可执行文件(genmixmem)、源代码以及示例文件。

如果此程序在你的文章中使用了,请这样引用:Tian Lu, genmixmem program, http://sobereva.com/245 (accessed month day, year)

PS:笔者之前还写过《生成磷脂双层膜结构文件的小工具genmem》(http://sobereva.com/222),但genmem只能用于产生纯膜。genmixmem已经可以完全取代genmem的功能。


2 一个例子

此程序使用很简单。在程序目录下写个名为input.txt的输入文件,然后启动程序即可。下面直接给出一个例子输入文件,同时附带注释

mixmem.pdb     //输出文件名
5     //磷脂的类型数
64    //每层磷脂的数目
64    //让磷脂均匀排布在边长为多大的盒子里(埃)
0     //1=允许让磷脂绕Z轴随机旋转, 0=不允许, -1/-2/-3=在第二层里旋转45/90/180度
80.5,39.5     //定位原子所在的第一层和第二层的Z坐标位置
0     //是否让两层磷脂图案对称,0=不要求,1=要求
#
#下面是每个磷脂类型的结构文件,在每层中的数目,以及定位原子是几号原子
#
pdbinput\DGDG343z.pdb,20,27
pdbinput\LysoPGz.pdb,10,5
pdbinput\MGDG366z.pdb,14,26
pdbinput\PA342z.pdb,15,21
pdbinput\PC364z.pdb,5,24

对于此例,启动genmixmem后,程序就从指定的那些pdb中读取磷脂结构,根据指定的每种磷脂的数目和设定的相关参数产生双分子层结构,输出到当前目录下的mixmem.pdb。当前目录下还出现了mixmem.txt,内容是各个磷脂的残基名在mixmem.pdb里的出现顺序和数目。如果你要用GROMACS做当前体系的模拟,mixmem.txt里的内容应当都拷到拓扑文件的[ molecules ]字段里,这样就和mixmem.pdb精确对应上了。

此例中,每层的8*8=64个磷脂分子均匀分布在64*64埃的区域里,磷脂都是顺着Z方向。每种类型的磷脂的分布是随机的,每次运行程序给出的排布都会不同,因此可以用来产生大量不同的初始结构。此例在生成膜结构时没有允许磷脂分子绕着Z轴随机或以某种方式旋转。第一层和第二层膜中每个磷脂的参考原子都分别位于Z=80.5和39.5埃的平面上。参考原子选的是每个磷脂的丙三醇部分的中央那个碳。此例用了5种磷脂,想增加或减少类型数的话,在输入文件末尾增加或删去磷脂定义,并且修改input.txt的第二行的数字即可。

此例得到的结果如下

 

如果读者用的是Linux版genmixmem,注意此例末尾5行应当写成这样
"pdbinput/DGDG343z.pdb",20,27
"pdbinput/LysoPGz.pdb",10,5
"pdbinput/MGDG366z.pdb",14,26
"pdbinput/PA342z.pdb",15,21
"pdbinput/PC364z.pdb",5,24


3 相关使用细节

输入的磷脂pdb文件中,磷脂头部应当冲着Z轴正方向。旋转分子可以在VMD或GaussView等程序里做,也可以通过GROMACS的editconf命令来做,比如
gmx editconf -f MGDG366.pdb -o MGDG366z.pdb -align -1 0 0 -princ -center 0 0 0
如果之后发现MGDG366z.pdb里的头部方向恰好反了,就把上面命令里的-1改成1。

磷脂结构文件里的磷脂应当比较直,以避免生成的结构中相互交错而导致不合理接触。大家可以用GaussView去调节二面角来实现,但更好的做法是用免费的可视化程序SAMSON(https://samson-connect.net),里面有个twister工具实现这个目的超级方便,笔者录了一段演示视频请观看:http://sobereva.com/attach/245/SAMSON_straighten.mp4

虽然此程序目的是产生磷脂层,但组成并不限于磷脂分子,比如包含胆固醇等其它分子也都可以,只要设置对应的pdb文件即可。

普通的磷脂头部的面积在65 Angstrom^2左右,因此你可以由此大致估计盒子边长设多少合适。比如每层64个的话,盒子边长用sqrt(65*64)=64.5埃往往是个大致合理的数值。

genmixmem并不会像Packmol那样利用优化算法来让磷脂分子刚性地旋转以避免过近的接触。虽然此程序生成的膜结构中难免有些不合理接触,但这不是什么问题,因为MD之前做优化就能解决不合理接触。即便没法彻底解决掉某些局部区域的高斥力,只要做MD一开始的时候用非常小的步长,比如0.5fs,稍微跑一下也就解决了。

顺带介绍一个笔者做磷脂膜模拟的经验。如果在磷脂两端加水之后做MD的过程中发现有水钻进了磷脂膜的疏水部分,可以给水在Z方向加上限制势,跑几百ps之后磷脂分子就恰当地弛豫了,磷脂之间也没有什么缝隙了。此时去掉限制势再做常规模拟时,水分子也就没机会钻进磷脂膜的疏水区了。