静电势图

1.实验原理

分子范德华表面的定义非常多,最常用的是Bader的定义,也就是对于气相分子,使用电子密度为0.001 e/bohr^3的等值面作为分子范德华表面。
也有将每个分子球的半径设置成对应原子范德华半径,放到一起就表现出了近似的分子范德华表面,由于这种近似的范德华表面比0.001 e/bohr^3定义的范德华表面一般略小。

2.表面静电势图

2.1文件准备

需要准备结构的波函数即可,使用同一个结构其他任务保存下来的含有波函数的文件,如.wfn、.fch、.molden,如果之前没有保存,可以只写泛函和基组并运行(即计算单点能),得到波函数文件。
如果是chk文件,需要先在服务器上转为fchk文件
  • formchk xxx.chk xxx.fchk
就会将xxx.chk转化为xxx.fchk,直接修改后缀名成fch。
或者直接:
  • formchk xxx.chk xxx.fch

2.2使用GV绘制

假设做完计算产生了名为ABC.chk的文件
在linux下运行
cubegen 20 density=scf ABC.fch ABC-den.cube  -2 h
cubegen 20 potential=scf ABC.fch ABC-pot.cube  -2 h
20:使用的核数
-2 是格点粗糙程度,-2,-3,-4 分别对应粗糙,中等和精细。也可以设为0,对于大分子而言0是最粗糙的格点。可以把ABC-den.cube 的精度提高一些,因为这个格点的精度决定了最后图形的平滑程度。而 ABC-pot.cube可以把精度设低一些,因为静电势算的慢。对图形质量影响比较小。
运行完上面两个命令后,得到ABC-den.cube 和ABC-pot.cube两个文件
使用GaussianView6绘静电势图,打开ABC-den.cube文件
results-surface-cubes available中导入pot,选中density。下一格选map......导入potential。density数值注意调整为0.001 e/bohr^3。
右键-view-display可以调整各种视觉效果。可视化界面上方的颜色scale左右两侧可以调整数值

2.2使用multiwfn+VMD绘制

2.2.1生成格点文件
multiwfn载入含波函数的文件,依次输入12,0即可完成计算
将multiwfn自带的example文件夹中的以下文件取出
ESPiso.bat:用于产生电子密度和静电势的cube文件,即density[序号].cub和ESP[序号].cub
ESPpt.bat:用于产生分子结构和表面顶点的pdb文件,即mol[序号].pdb和vtx[序号].pdb
ESPext.bat:在ESPpt.bat基础上,还会额外产生分子表面静电势极值点的pdb文件(surfanalysis.pdb)
以及ESPiso.txt、ESPpt.txt、ESPext.txt
bat文件中
以下三个.vmd文件都是VMD的绘图脚本,在使用VMD绘图前读者必须将之拷到VMD目录下。
ESPiso.vmd和ESPiso2.vmd:其中ESPiso2.vmd用于读取VMD目录下density1.cub、ESP1.cub、density2.cub、ESP2.cub...绘制成静电势填色等值面图。读者可以自行编辑这个文件修改里面默认的色彩刻度下限和上限,以及设置文件序号最多读取到多少,文件中的#开头的注释行都写得非常明白。ESPiso.vmd和ESPiso2.vmdfch的差异在于前者只是用于绘制单个分子的,而且一些作图设定不一样。
ESPpt.vmd和ESPpt2.vmd:其中ESPpt2.vmd用于读取VMD目录下mol1.pdb, vtx1.pdb, mol2.pdb, vtx2.pdb...绘制静电势着色的分子表面顶点图。读者可以自行编辑这个文件修改里面默认的色彩刻度下限和上限、点的尺寸、文件序号最多考虑到多少。ESPpt.vmd和ESPpt2.vmd的差异在于前者只是用于绘制单个分子的,而且一些作图设定不一样。
ESPext.vmd:用于读取VMD目录下的surfanalysis.pdb,将其中记录的分子表面静电势极值点绘制成圆球,里面默认用的颜色都可以自己改
最后,为了绘图时敲的命令更简短,读者应当用文本编辑器打开VMD目录下的vmd.rc文件(对Windows版VMD而言),在最后添加以下内容:
  • proc iso {} {source ESPiso.vmd}
  • proc iso2 {} {source ESPiso2.vmd}
  • proc pt {} {source ESPpt.vmd}
  • proc pt2 {} {source ESPpt2.vmd}
  • proc ext {} {source ESPext.vmd}
之后在VMD的文本窗口里只要输入比如pt,就等价于输入source ESPpt.vmd来执行这个作图脚本了。
1.表面顶点着色
ESPpt.bat
pt
2.电子密度等值面着色
ESPiso.bat
iso
3.极值点
ESPext.bat开始计算,它所干的事和ESPpt.bat一样,只不过还额外产生一个记录极值点的surfanalysis.pdb文件。按照如上任意一种方法显示出静电势图后,在文本窗口输入ext即会看到极值点也显示出来了。黄球对应静电势极大点,青球对应静电势极小点。
后在Graphics - Representation里把Selected Molecule切换为density1.cub,把Material选项材质改为Transparent,此时背面的极值点才能看到。如果你想默认就用这种材质,把ESPiso.vmd里的$id EdgyGlass替换为$id Transparent即可
基本过程是先点击VMD的OpenGL图形窗口将之激活,点击键盘上的0进入VMD的查询模式,然后点击一个表面极值点对应的圆球(必须点正中心。如果目前同时显示了表面顶点则先关闭显示表面顶点免得妨碍选取),文本窗口里如果提示比如index 1,那么把这个数加上1就是它在surfanalysis.pdb中的实际序号,要加1是因为VMD的index编号是从0开始计的。要查看index 1的表面极值点对应的数值,就把surfanalysis.pdb里开头的注释行内容删掉,找到第2行,其倒数第2列的数值就是静电势的数值了。
还有一种更方便的查询极值点静电势数值的方法:比如某个极值点是index 3,就在VMD窗口中输入[atomselect top "index 3"] get beta即可显示出数值。
4.颜色刻度
如果想把色彩刻度轴显示出来,一个做法是进入Graphics - Colors,选择Color Scale标签页,然后把色彩刻度条截图截出来,用photoshop旋转、拉伸一下,然后把上下限数值标注上去即可。
另一个做法是先把静电势图显示出来,在VMD里选择Extensions - Visualization - Color Scale Bar,Autoscale选On,Use Molecule旁边的项目选density1.cub(假设你是通过iso命令来显示静电势着色的分子表面的),Use Representation选Isosurface。Color of labels选black,Label format选Decimal,然后点Draw Color Scale Bar。然后在VMD Main窗口里,把Color Scale Bar以外的项目的F字母都双击点成黑色将它们固定住,然后双击Color Scale Bar旁边的F将之变成红色使之可以移动。然后点击VMD的OpenGL图形窗口将之激活,点t键进入视角平移模式,按住鼠标在画面里拖动,把色彩刻度条挪到合适的位置。之后再按r恢复默认的旋转模式,在VMD Main窗口里把Color Scale Bar的F双击变成黑色使之固定住,而其它体系的F双击变成红色使之解除固定
Graphics - Representation的Trajectory标签页的文本框里调节色彩刻度的下限和上限,

3.静电势等值线图

multiwfn载入波函数文件
4
12
2
100,100
4
7,1,2
鼠标右键
2
30
15
-8
0