MS-VMD-Lammps的输入文件.xsd-.pdb-.data之间的转换
第一次发博文,通过这样的形式把自己的学习过程记录下来。也希望对大家有所帮助。
1 .xsd-.pdb
这部分操作比较简单,主要是在MS中完成。通过MS的export,将.xsd直接转换为,pdb文件。
2 .xsd-.data
此处需要lammps中的小插件——ms2lmp。注意这里是在windows下运行的,所以不需要编译ms2lmp,直接使用就行。通过这种方法转换只适用于非周期性结构。
-
准备所需要的文件:ms2lmp.exe(位置:C:\Program Files (x86)\LAMMPS 32-bit 3Mar2020-MPI\bin 具体看你所安装的位置) cvff.frc(位置:C:\Program Files (x86)\LAMMPS 32-bit 3Mar2020-MPI\frc_files) .car和.mdf文件(通过MS将xsd转化,涉及力场等的设定 下面会详述)
-
力场的设定不是随意设定的,只可以用lammps和MS都有的力场,若有其他力场需要,直接修改转换后的.data文件。以cvff文件为例。在MS中打开.xsd文件,然后forcite-calculation-energy-forcefield(cvff)-more-取消勾选calculate automatically-点击右方的calculate。此时,力场的设定完毕。
-
文件输出为.car格式,你会得到.car和.mdf两个文件
-
复制以上四个文件,同时放入同一个文夹
-
cmd打开命令窗口,进入上面的文件夹。将msi2lmp.exe拖到命令行中 输入空格 输入.car文件的文件名(不加后缀) 输入空格 输入-i 输入-frc 输入力场名(不加后缀)
以我的文件为例,我的文件放在桌面xsd_to_data文件夹中,力场用的frc,模型文件名为SiO2,则输入的命令如下:C:\Users\lisa\Desktop\xsd_to_data\msi2lmp.exe SiO2 -i -frc C:\Users\lisa\ Desktop\xsd_to_data\cvff.frc
具体输入格式参见msi2lmp的readme文件
3 .pdb转.data
有时候MS建立的模型需要通过packmol等文件进一步处理才能导入Lammps中计算。因此,需要.pdb到.data的转换输出。
- 当构型比较简单看,比如离子型的结构,直接在VMD中打开,然后在程序中输入命令 topo writelammpsdata xx.data。
- 如果构型中含有电荷键长键角二面角这些参数,则需要tcl编程实现。
(1)加载文件:
mol load pdb xx.pdb
(2)电荷设置:
set a [atomselect top “xx”]
$a set charge xx
(3)二面角 键角等设置:
package require topotools
mol bondsrecalc top
topo retypebonds
topo guessangles
topo guessdihedrals
topo retypedihedrals
(4)输出.data文件
set name xx
animate write pdb $name.pdb
animate write psf $name.psf
topo writegmxtop $name.top
topo writelammpsdata $name.data full
(5)编辑好以上文件后,将.tcl文件和.pdb文件放到VMD的安装目录下面(目前不知道如何在vmd后台直接进入指定的文件夹,知道的同学可以私信我) 。然后进入VMD main-extensions-TKconsole 输入source xx.tcl 运行程序,最终在安装目录中生成相应的.psf .top 和.data文件。
这里你会发现键角二面角的信息都在.data文件中相信列出来啦