||
上次混合两种溶剂的方法过于笨拙,所以这次我们改用 packmol 软件来混合。
我们的目的是:用分子动力学方法证明正辛醇不溶于水。
packmol 在 Linux 下的安装比较简单,不再赘述。
首先下载正辛醇的拓扑文件:
> wget http://virtualchemistry.org/molecules/67-68-5/OPLS/oplsaaff.itp
> wget http://virtualchemistry.org/molecules/111-87-5/OPLS/111-87-5-gas.pdb
> wget http://virtualchemistry.org/molecules/111-87-5/OPLS/111-87-5.top
然后建立一个 packmol 的输入文件 inp,内容如下:
tolerance 2.0
filetype pdb
output box.pdb
structure 111-87-5-gas.pdb
number 52
inside box 0. 0. 0. 30. 30. 30.
end structure
运行
> packmol < inp
输出文件称为 box.pdb,它含有 52 个正辛醇分子。盒子大小其实是 3 nm 见方。由于 packmol 的长度单位是埃,所以写成 30。
用 editconf 将其转为 gro 格式:
> editconf -f box.pdb -o box.gro -box 3 3 3
然后在盒子中填满水:
> genbox -cp box.gro -cs spc216.gro -o box.gro -maxsol 450
这其实就是把正辛醇当作溶质,而把水当作溶剂。水化以后,替换原来的 box.gro。根据水和正辛醇的密度推算,至多加入 450 个水分子。
接下来就要手工建立系统的拓扑文件。先把 OPLS 力场下水的拓扑文件拷贝到当前目录:
> cp [GROMACS的top目录]/oplsaa.ff/spc.itp ./
然后将辛醇的拓扑文件的扩展名改为 itp:
> mv 111-87-5.top 1-octanol.itp
编辑 1-octanol.itp 文件。删除这一行
#include "oplsaaff.itp"
然后还要删除这两行
[ molecules ]
1-octanol 1
最后我们输入如下拓扑文件,命名为 run.top
#include "oplsaaff.itp"
#include "1-octanol.itp"
#include "spc.itp"
[ system ]
Oct in water
[ molecules ]
1-octanol 52
SOL 450
虽然是手动的,但文件并不复杂。第一行先包含力场文件。接下来两行分别包含了两种溶剂的 itp 文件。[system] 就是起个名字。 [molecules] 要说明每种溶剂分子各多少个,需要在 box.gro 文件中查找个数。注意这里的名字要与相应 itp 的 [moleculetype] 的名字一致。
接下来就可以进行分子动力学模拟了。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2023-3-29 15:15
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社