前言
水杨酸(Salicylic acid)是一种植物激素,可调节植物的生长发育,在有机合成中十分重要。由于水杨酸特殊的结构,导致了内氢键的形成,所以水杨酸可能存在着两种构象,分别对应于下图中的 Structure 1 和 Structure 2。为了节省时间,本文只对水杨酸的 Structure 1 进行了研究。本文涉及到的 NMR 计算数据都是在 Rocky Linux 8.8 下使用 Gaussian 16 A.03 计算得到的,使用 Multiwfn 3.8(dev) 处理 NMR 数据,并绘制了 NMR 谱。
本文主要参考了计算化学公社社长 Sob 老师有关 NMR 计算的相关文章:
Sob 老师在其文章中提到,较为精确计算 NMR 主要有两种方法,分别为常规法和标度法。下面分别介绍这两种方法计算水杨酸的 1H-NMR 并且使用 Multiwfn 处理 Gaussian 输出的 NMR 数据,从而得到较为精确的 NMR 化学位移。
常规方法计算 1H-NMR
使用常规方法计算 1H-NMR 的思路就是在同一计算级别下分别计算 TMS 和水杨酸的 1H 的磁屏蔽值,然后以 TMS 的 1H 的磁屏蔽值为基准,对水杨酸的 1H 的磁屏蔽值进行处理,就可以得到相对精确的 1H-NMR 化学位移。于是笔者首先将 TMS 和 水杨酸在水溶液模型下使用 B3LYP/6-31G* 这个组合做几何优化和振动分析之后,接着再在 revTPSS/pcSseg-1 级别下结合水溶液环境做 NMR 计算。
之所以使用 revTPSS/pcSseg-1 这个组合,在 Sob 老师《revTPSS 泛函结合 pcSseg-1 基组是计算 NMR 很好的选择》一文中有着详细的解释。与 Sob 老师博文中不同的是,本文所介绍的例子是在 IEFPCM 水溶液模型下计算的,可能并没有在氯仿溶剂模型下计算这么精准。
值得注意的是 revTPSS 在 Gaussian 中要写成 revTPSSrevTPSS,pcSseg 基组在 Gaussian 16 中没有内置,需要自行从 Basis Set Exchange (BSE) 基组数据库中拷定义来使用,以下是计算 NMR 的输入文件。
1 | # nmr revTPSSrevTPSS/gen scrf(solvent=water) |
根据这种思路,计算完 TMS 的 NMR 后,可以在 GaussView 的 result
中的 NMR
中查看 TMS 的 1H 的磁屏蔽值。也可以在 Gaussian 的输出文件中查看。从这两个地方可以知道参考物质,也就是 TMS 的 1H 的磁屏蔽值 为 31.7130 ppm
,请记住这个数值!
1 | 3 H Isotropic = 31.7130 Anisotropy = 9.4865 |
接着启动 Multiwfn,并将 Gaussian 计算水杨酸 NMR 的输出文件载入 Multiwfn 中,接着输入:
1 | 11 // 绘制光谱 |
保存之后,则会在当前目录下输出 NMRdata.txt
,内容如下,其中 Shielding(iso)
就是 Gaussian 输出文件里的原子的磁屏蔽值。
1 | Note: The data shown below are in ppm |
同时可以使用 Multiwfn 继续处理 NMR 数据,比如使用洛伦兹函数对 NMR 谱进行展宽,在之前的操作下接着输入:
1 | 8 // 设置 FWHM |
使用 Multiwfn 导出坐标数据之后,会在当前目录生成 NMR_curve.txt
和 NMR_line.txt
文件。可以选择使用 Origin 这种绘图软件导入坐标数据绘制 NMR 谱,也可以使用 Multiwfn 自带的绘制光谱功能。
标度法计算 1H-NMR
根据 Sob 老师在其博文《谈谈如何又好又快地计算 NMR 化学位移》中的介绍,标度法是用来计算化学位移的一种又准又便宜的方法。其核心思想是使用统计学的方法将计算得到的 NMR 通过某些矫正因子矫正,这个矫正因子通过统计学的方法拟合得到。不同文献报道了不同级别、不同方式得到标度参数,在 Chemical Shift Repository 中的 Scaling Factors
目录下有汇总。由于本文需要计算水溶液环境下的 NMR,所以在网站中找到带有 Water 的目录,即为 Table #5 - Water
表格。
从表格中可以看到,使用 B3LYP/6-31+G** 在气象下进行几何优化后,再使用 B3LYP/6-311+G(2d,p) 在水溶剂下进行 NMR 计算的 RMSD 非常小,只有 0.1303。所以可以在这两个级别下分别做优化和 NMR 任务,然后使用 Multiwfn 处理数据,就可以使用标度法得到比较精确的化学位移。启动 Multiwfn,载入上述任务得到的 NMR 输出文件,并输入:
1 | 11 // 绘制光谱 |
同样,保存之后会在当前目录下输出 NMRdata.txt
,内容如下:
1 | Note: The data shown below are in ppm |
此体系有现成的水溶液下的实验 NMR 谱。为了对比水杨酸水溶液在常规法、标度法的计算结果和实验结果的区别,笔者绘制了下表。
可以看见使用常规法,即使用 B3LYP/6-31G* 做几何优化后使用 revTPSS/pcSseg-1 级别计算 NMR 任务得到的化学位移还是相当接近实验的,仅仅只有一点点的误差。但是标度法得到的结果却有点差强人意了,除了 Ha 拟合得非常好,Hb 和 Hd 都差了很多。这些误差是因为实际上的水杨酸肯定存在不止一种构象,并且由于氢键的存在,还可能存在二聚体、团簇等多种情况,这些都会影响氢的化学位移。
同时,实验的 1H-NMR 没有提供羟基和羧基上活泼氢的化学位移,这是因为这个 NMR 实验是在重水中测的,水杨酸中的羧基和羟基的活泼氢会被氘取代,这些氢是没有 NMR 信号的。
考虑构象权重的 1H-NMR
在《Gaussian + orca + xtb + molclus 对阿司匹林做构象搜索》一文中,笔者计算得到了阿司匹林(Aspirin)的构象分布比例。Multiwfn 可以绘制各个构象以及构象权重平均的NMR谱,笔者将绘制阿司匹林构象权重的 1H-NMR 谱。笔者将使用常规方法对阿司匹林最主要的三个构象计算 NMR,为了绘制构象权重的 NMR 谱,需要创建一个含有每个构象 NMR 任务输出文件的文本文件,里面也写上构象的权重(0至1之间,总和必须为1),文件名要么是 multiple.txt
,要么末尾是 _multiple.txt
。比如创建一个名为 Aspirin_multiple.txt
,内容如下:
1 | cluster1_NMR.out 0.5478 |
启动 Multiwfn 载入 Aspirin_multiple.txt
后输入:
1 | 11 // 绘制光谱 |
得到的加权之后的数据为可以在当前目录下的 NMRdata.txt
文件中看见构象加权之后的的 1H-NMR 化学位移。
1 | Weighted data: |
如果想只绘制构象加权之后的 NMR 谱,可以接着输入:
1 | 17 // 更改光谱设置 |
此时就得到了根据构象加权的 1H-NMR 谱,如下图所示。
阿司匹林也有现成的实验谱,通过对比实验谱,可以发现计算的结果还是相当接近实验的。