|
2015-11-08 20:33:55
在涉及小分子溶液体系的模拟中, 经常需要构建一些特殊的构型, 如溶剂球, 板块体系(slab)等. 虽然GROMACS提供的gmx select模块可用以获得特定的构型, VMD中也可以使用选择语法或是TCL脚本完成同样的任务, 但使用起来都不是很方便. 前者经常需要先准备tpr文件, 而后者当构型较多时处理较慢. 因此, 我写了一个bash脚本getConf, 用于从一个较大的水(或其他溶剂)盒子中抽取特殊的构型. 这里我简单地介绍下这个脚本的使用.
脚本下载及设置(Linux)
下载脚本getConf, 放于自己指定的目录下
将脚本变为可执行文件: chmod u+x getConf
执行./getConf
如果你想在任意目录下使用这个脚本, 可以将其加入path环境变量中, 或是使用alias. 个人建议使用后一种方法. 具体操作是编辑你home目录下的.bashrc文件, 在其中加入一行alias getconf='/路径/getConf'. 然后source ~/.bashrc就可以在任意目录下使用getconf来调用getConf脚本了.
如果想在Windows下使用这个脚本, 你需要一个简单的bash环境以及awk程序. 可用的选择可参看在Windows下执行Linux命令的几种方式.
命令行选项说明
单纯执行getConf, 会给出使用方法的简单提示:
>>>>>>>>>>>>>>>> getConf <<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>> Jerkwin@gmail.com <<<<<<<<<<<<<<<<>>>>>>>>>> 2015-08-24 13:48:56 <<<<<<<<<>> Usage: getConf <File.(gro|xyz)> {-cent Ibgn:Istp:Iend} # Atom index to define the center {-geom sph|cyl|cub|slab|hollow} # Geometry of the configuration {-box a:b:c} # Box size in Angstrom {-rad Ra:Rb:Rc} # Radius for sph, cyl, cub in Angstrom {-tran Ta:Tb:Tc} # Translation vector in Angstrom {-zmin} # Translate based on zmin of atoms {-dsurf Dsurf} # Distance of center atom from the slab surface {-pbc x/y/z} # Apply PBC to X/Y/Z {-out (gro|xyz)} # Output File Format>> Default: getConf <File.gro> -c 1:1:1 -g sph -b 1f:1f:1f -r 1f:1f:1f -t 0.5f:0.5f:0.5f -p xyz -o gro"
可见, 此脚本的主要功能是, 以指定的原子为中心, 构建(椭)球形, 圆柱形, 立方体, 板块或中空板块的结构, 同时还可以控制这些结构的大小及位置. 脚本可处理gro或xyz格式的输入文件, 输出文件格式也可以选择gro或xyz格式.
下面是几个选项的说明:
-cent或-c: 定义结构的中心, 可使用系列值, 格式为: 起始值:递增值:终止值, 如1:1:10表示分别使用从1到10的原子作为中心构建结构.
-geom或-g: 定义结构的类型, 可用选项为
sph: (椭)球
cyl: 圆柱
cub: (长)方体
slab: 板块
hollow 中空板块(板块的一种显示方式, 不影响模拟结果)
-box或-b: 输出盒子的大小, 单位埃
-rad或-r: 结构的参数值, 单位埃, 对不同结构, 含义不同
-g sph: (椭)球X, Y, Z三个方向的半径值
-g cyl: 圆柱底面X, Y两个方向的半径值, Z方向的高度
-g cub: (长)方体X, Y, Z三个方向的边长值
-tran或-t: 中心原子的平移向量
-zmin或-z: 指定此选项时会根据选取原子中Z方向的最小值来平移原子
-dsurf或-d: 中心原子距离板块表面的距离, 单位埃
-pbc或-p: 周期性边界条件施加的方向
-out或-o: 输出文件的类型
此外, 利用-r或-t选项指定数值时可使用两种方法, 一种是以埃为单位的数值, 一种是以输入盒子边长为单位的相对数值(数字后添加f).
应用示例
设我们有一个立方盒子, 其中包含一个Cl^-^和2224个水分子(gro文件).
视图: 投影正交
模型: 球棍范德华球棍状线框线型
左键: 转动 滚轮: 缩放 双击: 开关自动旋转 Alt+左键: 移动
Fig.1
构建以Cl^-^为中心, 距其5埃范围内水分子的水球
getconf ClW2224.gro -cent 1:1:1 -geom sph -rad 5:5:5
或简写为getconf ClW2224.gro -c 1 -g sph -r 5
视图: 投影正交
模型: 球棍范德华球棍状线框线型
左键: 转动 滚轮: 缩放 双击: 开关自动旋转 Alt+左键: 移动
Fig.2
构建以Cl^-^为中心, 底面半径为原盒子边长1/4, 高度为原盒子边长1/2的圆柱
getconf ClW2224.gro -c 1 -g cyl -r .25f:.25f:.5f
视图: 投影正交
模型: 球棍范德华球棍状线框线型
左键: 转动 滚轮: 缩放 双击: 开关自动旋转 Alt+左键: 移动
Fig.3
构建以Cl^-^为中心, 边长为原盒子边长1/2的立方体
getconf ClW2224.gro -c 1 -g cub -r .5f
视图: 投影正交
模型: 球棍范德华球棍状线框线型
左键: 转动 滚轮: 缩放 双击: 开关自动旋转 Alt+左键: 移动
Fig.4
构建以Cl^-^为中心的板块, 盒子Z方向长度变为原来的3倍
getconf ClW2224.gro -c 1 -g slab -b 1f:1f:3f
视图: 投影正交
模型: 球棍范德华球棍状线框线型
左键: 转动 滚轮: 缩放 双击: 开关自动旋转 Alt+左键: 移动
Fig.5
构建以Cl^-^为中心的中空板块, 盒子Z方向长度变为原来的3倍
getconf ClW2224.gro -c 1 -g hollow -b 1f:1f:3f
视图: 投影正交
模型: 球棍范德华球棍状线框线型
左键: 转动 滚轮: 缩放 双击: 开关自动旋转 Alt+左键: 移动
Fig.6
构建以Cl^-^为中心的板块, 盒子Z方向长度变为原来的3倍, 根据原子的最小Z值进行平移
getconf ClW2224.gro -c 1 -g slab -b 1f:1f:3f -zmin
视图: 投影正交
模型: 球棍范德华球棍状线框线型
左键: 转动 滚轮: 缩放 双击: 开关自动旋转 Alt+左键: 移动
Fig.7
构建以Cl^-^为中心的板块, 盒子Z方向长度变为原来的3倍, 使中心原子处于表面2埃处
getconf ClW2224.gro -c 1 -g slab -b 1f:1f:3f -d 2
视图: 投影正交
模型: 球棍范德华球棍状线框线型
左键: 转动 滚轮: 缩放 双击: 开关自动旋转 Alt+左键: 移动
Fig.8
◆本文地址: http://jerkwin.github.io/2015/11/08/构建特殊构型的GROMACS脚本/, 转载请注明◆
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-5-21 14:22
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社