目前,对于GROMACS能用的力场来说基本上都是属于有机体系。虽然也发展了一些无机金属等原子的参数,但是模拟效果往往不乐观。Heinz团队开发出了一种适合无机体系、金属体系、无机-有机界面模拟的力场——Interface Force Field (IFF),以及一个表面模型数据库,包含可直接用于模拟1到1000纳米大小的纳米的矿物、金属、氧化物和(生物)聚合物的结构。
(1)IFF将之前模型中表面和界面能量的常见误差(最高可达500%)降低到<10%,使吸附、取代和组装的定量计算成为可能。
(2)晶格参数可达到一个数量级,更加准确。
(3)化学精度达到1千卡/摩尔,超过了替代力场和普通DFT的能力。
(4)不断增长的表面模型数据库包括:纳米颗粒表面化学、溶液pH值(如二氧化硅和磷灰石)的影响、典型的切面和阳离子交换能力(如粘土),这些对定量性能预测至关重要。
(5)对化学反应和多尺度模拟的扩展,包括量子力学的电子结构、反应和中尺度模拟,证明了从单个原子到小微米尺度的复杂问题建模的基本可行性。
该力场可以用于以下 体系或者界面模型:
1)粘土矿物:高岭石、云母、不同阳离子密度的蒙脱石、叶蜡石。
2)硅:方石英石,石英,无定形二氧化硅,以及所有类型的硅醇和硅氧烷端接表面。包括Q2、Q3、Q4的现成模型,以及根据溶液中 特定的pH值和二氧化硅纳米颗粒大小而具有不同电离度的混合化学二氧化硅表面。
3)羟磷灰石:针对溶液中 特定pH值的单个晶胞和所有常见切面有现成模型,以及纳米晶体和磷酸氢钠/磷酸二氢缓冲液的模型。
4)水泥矿物:硅酸三钙,铝酸三钙,钙矾石,单硫酸盐,托贝莫来石11 Å,托贝莫来石14 Å, C-S-H。每种矿物有现成模型,包括单个晶胞、各种的水合相和不同的切面。
5)硫酸盐钙:硫酸钙(硬石膏)、半水硫酸钙和二水硫酸钙(石膏)。包括单个晶胞模型,从中可以很容易地构建想要的切面。
6)PEO(聚(环氧乙烷))。
7)金属晶体:Ag, Al, Au, Cu, Ni, Pb, Pd, Pt。有不同方向的单个晶胞和超胞的现成模型。可以方便地构建{111}、{100}、{110}表面和纳米结构,如纳米棒和粒子。
获取上诉结构和下面步骤所用到的修改后的脚本,加入QQ群“709020941”获取(定期分享模拟干货)。
或者在下面网址下载:
https://bionanostructures.com/interface-md/
数据库部分文件截图如下:
所用于模拟课题部分截图如下:
由于上诉数据库中全是lammps模型文件,所以需要使用下面的方法转成GROMACS所支持的文件。
方法如下:
1)首先要获取所需体系的car格式的文件。如果上诉数据库中有你所需而且尺寸一致的car,可以直接跳过这一步,执行下面一步。如果没有,则需要自己用MS建立一个(以建立石英为例):
①打开MS之后,可以导入你想要的晶体数据库,或者直接打开你的分子cif/pdb文件;
②修改尺寸、扩包、切面等,使之成为自己想要的结构;
③建立盒子、设置原子力场类型(pcff/cvff),若是晶体结构,得先去除周期性:
之后点击 Run,运行结束后会建立一个盒子。
若盒子和分子不匹配,如下,不用管。后期生成gro去调整就行。
④保存为car文件;
⑤打开car文件,把所有原子类型修改为IFF力场支持的,比如SiO2中,Si叫sc4,O为oc23,对于自己的分子,可以打开数据库里面相似的car文件查看。
用notepad批量替换掉:
同理,mdf里面也要替换:
2)linux系统下安装python3.6以上版本。以及安装MDAnalysis库:
apt install python
pip install MDAnalysis
3) 需要用到lammps的msi2lmp命令。上传msi2lmp到linux系统目录,并进入msi2lmp\src目录,输入:make之后即可编译完成。然后在~/.bashrc文件中添加环境变量,重新打开终端即可,环境变量格式如下:
export PATH=/****/****/msi2lmp/src:$PATH
其中***替换为你自己msi2lmp\src所在的绝对目录。
4)任意地方新建一个文件夹,用于生成IFF力场文件,比如:SIO_IFF。然后把frc_files文件夹上传到与SIO_IFF同一目录里。如下:
5)
charmm27_interface_v1_5.prm
interfaceff2gro.py
SiO2.car
SiO2.mdf
把上述文件上传到SIO_IFF文件夹里。注意:此interfaceff2gro.py代码是修改过后的,和官网不一样。所以运行方式也不一样。因为如果msi2lmp没有配置好,使用官网的代码会出现各种问题。
6)运行下列命令,即可生成itp、gro、top文件:
python interfaceff2gro.py SiO2.car
错误解答:
1、质量不能和元素对于,如下所示,12.0115是C原子质量
找到python interfaceff2gro.py质量定义的行,按照格式添加即可:
注意,在序号定义的地方若没有,则按照格式相应添加:
2、找不到原子类型:
这是由于IFF力场里面原子类型没有该类型(CE·1),代码找不到其sigma和epsilon的参数。打开charmm27_interface_v1_5.prm文件,在最后添加上缺失的原子类型和参数:
这是由于python interfaceff2gro.py的atoms_from_lammps函数,会去读取data文件的原子类型:
若该原子类型在charmm27_interface_v1_5.prm没有就会报错。