Packmol

分子动力学模拟之Packmol初始体系建立

Packmol 官网

Introduction

Packmol是一款创建体系初始构象的工具,它将不同分子摆放在指定区域,同时使用短程排斥规则避免体系的不合理接触。

Packmol支持对不同的分子、原子进行限制,使其能够创建有序系统,比如说层状、球形或者管状脂质层。

用户必须提供摆放分子的坐标,数目和位置限制。

目前支持的文件类型:PDBXYZMOLDYTINKER

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# 圆形水层+磷脂+水盒子
tolerance 2.0
output spherical.pdb
# 导入脂质,亲水部分朝外
structure palmitoil.pdb
number 90
atoms 37
inside sphere 0. 0. 0. 14.
end atoms
atoms 5
outside sphere 0. 0. 0. 26.
end atoms
end structure
structure palmitoil.pdb
number 300
atoms 5
inside sphere 0. 0. 0. 29.
end atoms
atoms 37
outside sphere 0. 0. 0. 41.
end atoms
end structure
# 内部水球
structure water.pdb
number 308
inside sphere 0. 0. 0. 13.
end structure
# 包裹脂质的水盒子
structure water.pdb
number 17536
inside box -47.5 -47.5 -47.5 47.5 47.5 47.5
outside sphere 0. 0. 0. 43.
end structure

To start

Install

下载链接

Use

使用packmol前,我们需要准备构建体系的分子坐标文件。
举个例子:如果要模拟水+离子的溶液,就需要准备单个水分子和单个离子的坐标文件。

1
2
# 运行packmol packmol.inp为输入文件
packmol < packmol.inp

input structure

1
2
3
4
5
6
7
8
# example
tolerance 2.0
output test.pdb
filetype pdb
structure water.pdb
number 2000
inside cube 0. 0. 0. 40.
end structure

输入文件必须包括如下参数:

  1. 距离限制(对于常温常压体系,推荐2.0 Å),即不同分子之间的距离至少为2 Å.

    1
    tolerance 2.0
  2. 输出文件及文件类型(pdb, tinker, xyz, moldy)

    1
    2
    filetype pdb
    output xxx.pdb
  3. 填充分子,由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

  1. 原子选择
    单个分子包含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
  2. 限制类型
    约束分子在某个区域

    • ``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 structure
    • inside 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。

      对于不同的分子,定义不同的半径至关重要。只需要添加radiusstructure中即可,或者加入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