分子动力学模拟之Packmol初始体系建立
Introduction
Packmol是一款创建体系初始构象的工具,它将不同分子摆放在指定区域,同时使用短程排斥规则避免体系的不合理接触。
Packmol支持对不同的分子、原子进行限制,使其能够创建有序系统,比如说层状、球形或者管状脂质层。
用户必须提供摆放分子的坐标,数目和位置限制。
目前支持的文件类型:PDB
、XYZ
、MOLDY
、TINKER
Packmol已经内置在AmberTools中,用于构建脂质双层膜。
Note: 使用 packmol构建体系发表文章时,务必引用如下文章 L. Martínez, R. Andrade, E. G. Birgin, J. M. Martínez. Packmol: A package for building initial configurations for molecular dynamics simulations. Journal of Computational Chemistry, 30(13):2157-2164, 2009.
Example
1 | # 圆形水层+磷脂+水盒子 |
To start
Install
Use
使用packmol前,我们需要准备构建体系的分子坐标文件。 举个例子:如果要模拟水+离子的溶液,就需要准备单个水分子和单个离子的坐标文件。
1 | # 运行packmol packmol.inp为输入文件 |
input structure
1 | # example |
输入文件必须包括如下参数:
距离限制(对于常温常压体系,推荐2.0 Å),即不同分子之间的距离至少为2 Å.
1
tolerance 2.0
输出文件及文件类型(pdb, tinker, xyz, moldy)
1
2filetype pdb
output xxx.pdb填充分子,由
structure...end structure
部分设置1
2
3
4
5
6# 体系填充2000个水分子
# 盒子最小坐标为(0.,0.,0.), 最大坐标(40,40,40)的立方体
structure water.pdb
number 2000
inside cube 0. 0. 0. 40.
end structure可以使用多个
structure...end structure
结构进行复杂体系的建模
Advanced
原子选择 单个分子包含x个原子坐标,可以限制部分原子在指定区域。对于构建表面活性剂的亲疏水部分是有用的
1
2
3
4
5
6
7# 所有原子放在盒子内,原子9和10会被限制在盒子内部
structure molecule.pdb
inside cube 0. 0. 0. 20.
atoms 9 10
inside box 0. 0. 15. 20. 20. 20.
end atoms
end structure限制类型 约束分子在某个区域
`
fixed x y z a b g
固定分子在x,y,z位置,旋转角度为a,b,g(弧度)1
2
3
4
5
6#
structure molecule.pdb
number 1
center
fixed 0. 0. 0. 0. 0. 0.
end structureinside cube xmin ymin zmin d
原子坐标被限制在一定范围内。 \[ X_{min} < x <X_{min} + d \] \[ Y_{min} < y <Y_{min} + d \] \[ Z_{min} < z <Z_{min} + d \]outside cube xmin ymin zmin d
\[ X_{min} > x \ or \ x > X_{min} + d \\ \] \[ Y_{min} > y \ or \ y>Y_{min} + d \\ \] \[ Z_{min} > z \ or \ z>Z_{min} + d \\ \]inside box xmin ymin zmin xmax ymax zmax
\[ x_{min}<x<x_{max} \\ \] \[ y_{min}<y<y_{max} \\ \] \[ z_{min}<z<z_{max} \\ \]outside box xmin ymin zmin xmax ymax zmax
\[ x < x_{min} \ or \ x > x_{max} \\ \] \[ y < y_{min} \ or \ y > y_{max} \\ \] \[ z < z_{min} \ or \ z > z_{max} \\ \]inside/outside sphere x y z d
将原子限制在球内或球外 \[ (x-a)^2+(y-b)^2+(z-c)^2-d^2(= | \ge | \le)0 \]inside/outside ellipsoid a1 b1 c1 a2 b2 c2 d
限制原子在椭球体内/外 \[ \frac{(x-a_1)^2}{a_2^2}+\frac{(y-b_1)^2}{b_2^2}+\frac{(z-c_1)^2}{c_2^2}-d^2(= | \ge | \le)0 \]above/below plane a b c d
限制原子在平面上/下 \[ ax+by+cz-d(= | \ge | \le)0 \]inside/outside cylinder a1 b1 c1 a2 b2 c2 d l
限制原子在圆柱体内或外 a1 b1 c1 圆柱体起始点 a2 b2 c2 圆柱体终点 d 定义半径 l 定义长度constrain_rotation x|y|z a b
限制所有分子的旋转是可行的 限制分子绕X|Y|Z轴旋转的角度为a±b不同原子不同半径 对于不同的原子施加不同的半径是实际可行的。默认的pack规则是所有原子之间至少间隔
tolerance
。因此,系统默认原子半径为tolerance
的一半。 2 Å 的tolerance
对于所有原子来说是合适的。当模拟多尺度体系时,比如含有粗粒化原子时,我们需要指定radii。
对于不同的分子,定义不同的半径至关重要。只需要添加
radius
到structure
中即可,或者加入atoms
结构中。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16# 水分子原子半径为1.5A (水分子的距离tolerance为3A)
tolerance 2.0
structure water.pdb
number 500
inside box 0. 0. 0. 30. 30. 30.
radius 1.5
end structure
# 只有原子1和2半径为1.5
tolerance 2.0
structure water.pdb
number 500
inside box 0. 0. 0. 30. 30. 30.
atoms 1 2
radius 1.5
end atoms
end structure