0%

Multiwfn + VMD 绘制 ICSS 等值面图

前言

我们知道,一个化合物的芳香性可以通过 NICS 以及其改进版的 NICS_ZZ 来进行预测。而在 Sob 老师《通过 Multiwfn 绘制等化学屏蔽表面(ICSS)研究芳香性一文中,提到了使用 ICSS 等化学屏蔽表面来考察芳香性的方法。并且 Sob 老师也提出了 ICSS_ZZ 进一步精确的判断芳香性。

特别注意的是,ICSS 和 NICS 的符号定义是恰好相反的。NICS 取的是磁屏蔽值的负值,而 ICSS 直接展现的就是不同位置的磁屏蔽值,并没有取负号,ICSS 越正,在这个点上对外磁场屏蔽程度越大。 ICSS 越负则说明这个位置的去屏蔽程度越强。

本文的主要操作在 Sob 老师《通过 Multiwfn 绘制等化学屏蔽表面(ICSS)研究芳香性一文中有详细的介绍,本文主要介绍我自己的计算、绘制习惯。本文所有计算都是在 Fedora Linux 下的 Gaussian 16 完成,使用 Multiwfn 3.8(dev) 进行波函数分析,并使用 VMD 1.9.3 绘制了等值面截面图。

ICSS 计算实例

首先,需要对分子进行几何优化,以确保分子的结构是没问题的,坐标以笛卡尔坐标表示。本文的例子是在 wB97XD/def-TZVP 下进行的 opt freq。将几何优化后的结构保存为一个新的标准 Gaussian 输入文件,如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
%chk=ICSS_Origin.chk
# B972/def2SVP

wb97xd/defTZVP opted

0 1
C 2.01553800 -1.18819200 -0.00011300
C 0.70787900 -0.74630900 -0.00003800
C 0.70791300 0.74642400 -0.00000700
C 2.01557800 1.18817800 -0.00003800
C 2.78616500 -0.00007300 0.00013500
H 2.40676600 -2.19270500 -0.00019100
H 2.40702400 2.19261700 -0.00008500
H 3.87016700 -0.00007700 0.00015600
C -0.70787900 -0.74630900 0.00003100
C -2.01553800 -1.18819200 0.00010100
C -2.78616500 -0.00007300 -0.00009700
C -2.01557800 1.18817800 0.00002600
C -0.70791300 0.74642400 0.00000000
H -2.40676600 -2.19270500 0.00016700
H -2.40702400 2.19261700 0.00005900
H -3.87016700 -0.00007700 -0.00010900

计算 NMR,Sob 老师原文中是用的 B3LYP/6-31+G* 作为演示,这里我选择在 B97-2/def2-SVP 级别下计算,同样也有较好的精度。至于为什么选择这种级别,可以去浏览 Sob 老师《谈谈量子化学中基组的选择》《简谈量子化学计算中 DFT 泛函的选择》 两篇博文,这里之所以不用 def2-TZVP 纯粹是因为算不动。

启动 Multiwfn,将上文提到的 gjf 文件输入,接着输入:

1
2
3
4
5
6
200     // 其它功能(Part 2)
4 // ICSS分析
-10 // 设定格点数据计算区域的延展距离
12 // 延展距离设为12 Bohr,也就是相对于边界原子向四周扩12 Bohr。延展距离不能太小,否则绘制出来的ICSS等值面会被截断。通常12 Bohr够大了
1 // 低质量格点。Gaussian接下来将总共计算约125000个位置的磁屏蔽张量。如果用更高质量的格点计算耗时将会很高
n // 不跳过Gaussian输入文件生成的步骤

接着 Multiwfn 会在当前目录下生成多个 Gaussian NMR 任务的输入文件,接着在 Multiwfn 的 example 目录下找到 runall.sh 脚本文件。利用脚本文件将生成的 Gaussian NMR 任务全部计算,接着在 Multiwfn 窗口上输入 < NMR 所在目录/NICS >(“<>”不需要输入),然后选择你感兴趣的量。其中 Isotropic、Anisotropic 分别代表将要产生各项同性和各向异性磁屏蔽值的格点数据,XX component、YY component 和 ZZ component 分别代表将要产生 X、Y、Z 方向屏蔽值的格点数据。这里我们选择 5 观看 ICSS_ZZ 等值面图,并将等值面设为 2 后,可以看到下图:

图中,绿色的部分是对 Z 方向的外磁场产生 2 ppm 的屏蔽区域;蓝色的部分是对 Z 方向的外磁场产生 2 ppm 的去屏蔽区域。说明这个分子的内部区域磁屏蔽比较强,外部区域去屏蔽作用比较强。这正是该结构具有芳香性的原因,pi 电子可以自由运动,外磁场令 pi 电子产生的磁感应环电流会在分子内部区域显著抵消外磁场。

总之,芳香化合物的磁性质,可以在 ICSS 中有着充分的体现。在环里侧,感生磁场方向和外磁场相反,产生了屏蔽。而在环外侧,pi 环流产生的磁场和外磁场方向一致,对它产生了增强效果,因此环外侧对磁场是去屏蔽的。

绘制生动的 ICSS 填色图和等值面截面图

绘制 XY 和 XZ 平面的填色图

在 Multiwfn 选 2 Export the grid data to ICSSZZ.cub current folder 把当前格点数据导出到 ICSSZZ.cub 文件中,然后把 settings.ini 里的 iuserfunc 改为 -1,这样自定义函数就变为了通过格点数据插值获得的数值。启动新的 Multiwfn,然后输入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
ICSSZZ.cub
4 // 绘制平面图
100 // 自定义函数。此时这个函数在任意一点的数值即是基于ICSSZZ.cub插值得到的值
1 // 填色图
[回车]
1 // XY平面
1.89 // Z=1.89 Bohr,相当于Z=1埃
在刚出现的图上点右键关闭之,并输入
1 // 更改色彩刻度
-8,35 // 根据第一次出现的数值进行调整
4 // 显示原子标号
1 // 文字为红色
17 // 设定显示文字的距离阈值
2 // 只要原子核距离作图平面小于2埃则这个原子的符号就显示在图上
n
2 // 显示等值线
-1 // 重新作图

用以上方法绘制的图像是该分子在 XY 平面上方 1 埃处的 ICSS_ZZ 填色图。如果想要绘制在 XZ 平面的 ICSS_ZZ 填色图,则需要输入:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
ICSSZZ.cub
4 // 绘制平面图
100 // 自定义函数。此时这个函数在任意一点的数值即是基于ICSSZZ.cub插值得到的值
1 // 填色图
[回车]
0 // Set extension distance of the plot
8 // 8 Bohr
2 // XZ平面
0 // Y=0
在刚出现的图上点右键关闭之,并输入
1 // 更改色彩刻度
-30,60 // 根据第一次出现的数值进行调整
4 // 显示原子标号
3 // 文字为蓝色
17 // 设定显示文字的距离阈值
2 // 只要原子核距离作图平面小于2埃则这个原子的符号就显示在图上
n
2 // 显示等值线
-1 // 重新作图

绘制艺术级的等值面截面图

要绘制艺术级的 ICSS 等值面的图,需要依靠另一个可视化程序 VMD,本文使用的 VMD 1.9.3 版本对上述分子的绘制一个艺术级的 ICSS 等值面截面图。首先,在获得当前体系的 ICSS_ZZ 格点数据后将之导出到 ICSSZZ.cub 文件里,然后启动 VMD,将这个文件拖入至 VMD 主窗口。然后选 Graphics-representations,然后点 Create Rep 新建显示方式,Drawing Method 改为 IsosurfaceIsovalue 改为 2,Draw 改为 Solid surfaceShow 改为 IsosurfaceColoring Method 改为 ColorID,并且选一种喜欢的颜色比如 Red,之后重复上述操作就可以了。

然后选 Extensions-Visualization-Clipping plane tool,点 Active 按钮,取消 Normal follow view 复选框。由于我们这次作的是平行于 YZ 平面的截面,所以把 Normal(法矢量)改为1 0 0。虽然效果已经有了,但是分子自身也被截断了。因此,我们再次把 ICSSZZ.cub 拖进 VMD 主窗口,可以看到 VMD 主窗口中就又多了一个 ID,并且开头写着 T(Top)字样。切换回 Clip Tool 窗口,把 Active 按钮取消掉,此时分子结构没被截断了,我们再修改分子结构显示方式。进入 Graphics-representations,确认第一栏已经切换到了 ID = 1 的体系,把默认的 Lines 显示方式改为 CPK。然后控制台窗口运行 color Display Background white 把背景改为白色,便得到了等值面截面图。

上述方法是 Sob 老师在其博文里提到的方法,但是笔者还有另外一种习惯,在处理颜色时和等值面数值时,笔者一般都是按照以下习惯绘制,以 Go 语言中的结构体的形式展示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
type IsoSurface struct{
isovalue float64
colorID int
}

surface_1 := IsoSurface{2.5, 9}
surface_2 := IsoSurface{3.0, 13}
surface_3 := IsoSurface{4.5, 28}
surface_4 := IsoSurface{6.0, 3}
surface_5 := IsoSurface{10.0, 30}
surface_6 := IsoSurface{15.0, 11}
surface_7 := IsoSurface{-0.6, 18}
surface_8 := IsoSurface{-1.0, 12}
surface_9 := IsoSurface{-1.5, 21}
surface_10 := IsoSurface{-2.5, 24}

以下是使用上述方法结合 VMD + Multiwfn 绘制的 ICSS 等值面截面图,最后再次感谢 Sob 老师的博文教程。

  • 本文作者: Hsiun YuBin
  • 本文链接: https://ikuns.icu/004/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!