计算化学工作流程的自动化变得越来越重要,AMS 中的 PyFrag2019 就是这方面的一个工具$^{[1,2]}$。其作用是深度分析化学键,并使用活化应变模型(activation strain model)分析化学键在化学反应过程中的变化$^{[2]}$。
PyFrag 2019 已用于多项有关均相催化的计算研究,例如使用 PyFrag 详细分析相邻芳香结构对金属催化活化 C-H 键的影响,分析表明它的活化势垒与脂肪族对应物相比更低,可以用所涉及的前沿轨道来解释$^{[3]}$。
下图展示了,在不同催化交叉偶联反应的复合中心,观察到的行为差异。特别是研究了各种不同类型的铁催化剂,并将它们的反应势垒高度与钯络合物进行了比较。因此,闭壳层 Fe d$^8$ 配合物被认为是此类反应中,常规使用的昂贵钯催化剂的潜在优秀替代品$^{[4]}$。
在目前正在准备出版的进一步的研究成果中,更详细地研究了此类铁催化剂的空间效应和电子效应。由此获得的知识和理解,对于系统地筛选不同的复合配体,来设计和优化新型廉价催化剂,至关重要。
如下是一个完整的*.run作业文件(下载解压得到):
#!/bin/bash # The trajectory is a concatenated xyz-file: cat << eor > coords.xyz C -1.741968 -2.220880 0.000000 Pd -2.137509 -0.237843 0.000000 H -2.809570 -2.499547 0.000000 H -1.265288 -2.629932 0.895677 H -1.265288 -2.629932 -0.895677 H -0.755099 -0.885698 0.00000 C -1.741968 -2.220880 0.000000 Pd -2.137509 -0.250000 0.000000 H -2.809570 -2.499547 0.000000 H -1.265288 -2.629932 0.895677 H -1.265288 -2.629932 -0.895677 H -0.755099 -0.885698 0.00000 eor # Input options for ADF: # One should generally symmetrize the coordinates by setting AMS.System.Symmetrize=Yes cat << eor > adfinputfile AMS.Task=SinglePoint AMS.System.Charge=0 AMS.System.Symmetrize=Yes ADF.NumericalQuality=VeryGood ADF.XC.GGA=OPBE ADF.basis.core=None ADF.Symmetry=AUTO ADF.Relativity.Level=Scalar ADF.Relativity.Formalism=ZORA ADF.eprint.sfo=eig ovl eor # Here we call the PyFrag script. # PyFrag conducts a total of six single point calculations, one for each fragment and the # whole system for each of the two geometries in the trajectory, respectively. # The intermediate results for each geometry are printed during the calculation. # At the end of its run PyFrag summarizes all results in a table which is also written # to an output file PyFrag<SystemName>.txt $AMSBIN/amspython $AMSHOME/scripting/standalone/pyfrag/PyFrag.py \ --xyzpath coords.xyz \ --fragment 2 --fragment 1 3 4 5 6 --strain 0 --strain -554.1 \ --bondlength 1 6 1.093 \ --angle 2 1 6 180 \ --VDD 2 1 6 \ --hirshfeld frag1 \ --irrepOI AA \ --irrepOI AAA \ --orbitalenergy frag1 HOMO \ --orbitalenergy frag2 LUMO \ --orbitalenergy AA frag2 5 \ --population frag1 HOMO \ --population AA frag2 5 \ --overlap frag1 HOMO frag2 LUMO \ --overlap S frag1 5 AA frag2 4 \ --adfinput ADF.basis.type=DZP \ --adfinputfile adfinputfile
cat << eor > coords.xyz C -1.741968 -2.220880 0.000000 Pd -2.137509 -0.237843 0.000000 H -2.809570 -2.499547 0.000000 H -1.265288 -2.629932 0.895677 H -1.265288 -2.629932 -0.895677 H -0.755099 -0.885698 0.00000 C -1.741968 -2.220880 0.000000 Pd -2.137509 -0.250000 0.000000 H -2.809570 -2.499547 0.000000 H -1.265288 -2.629932 0.895677 H -1.265288 -2.629932 -0.895677 H -0.755099 -0.885698 0.00000 eor
上面的格式,指定了2个结构,只有其中一个原子有微小位移,后面的计算即为了研究这个小小的形变,对成键的影响,例如电荷的变化、前线轨道(例如其中一个片段的占据轨道与另一个片段的空轨道)之间的轨道重叠情况等。
坐标不仅可以手动输入,也可以读取势能面扫描、IRC的结果,读取格式详见手册:https://www.scm.com/doc/ADF/Input/PyFrag.html
cat << eor > adfinputfile AMS.Task=SinglePoint AMS.System.Charge=0 AMS.System.Symmetrize=Yes ADF.NumericalQuality=VeryGood ADF.XC.GGA=OPBE ADF.basis.core=None ADF.Symmetry=AUTO ADF.Relativity.Level=Scalar ADF.Relativity.Formalism=ZORA ADF.eprint.sfo=eig ovl eor
熟悉ADF的用户,对这些参数应该相当眼熟了,不过这里的格式,是PLAMS的标准格式,希望了解AMS的Python功能的用户,可以参考:https://www.scm.com/doc/plams/index.html
$AMSBIN/amspython $AMSHOME/scripting/standalone/pyfrag/PyFrag.py \ --xyzpath coords.xyz \ --fragment 2 --fragment 1 3 4 5 6 --strain 0 --strain -554.1 \ --bondlength 1 6 1.093 \ --angle 2 1 6 180 \ --VDD 2 1 6 \ --hirshfeld frag1 \ --irrepOI AA \ --irrepOI AAA \ --orbitalenergy frag1 HOMO \ --orbitalenergy frag2 LUMO \ --orbitalenergy AA frag2 5 \ --population frag1 HOMO \ --population AA frag2 5 \ --overlap frag1 HOMO frag2 LUMO \ --overlap S frag1 5 AA frag2 4 \ --adfinput ADF.basis.type=DZP \ --adfinputfile adfinputfile
其中PyFrag.py是软件自带的一个Python脚本,位于$AMSHOME/scripting/standalone/pyfrag/PyFrag.py。 第二行指定Python计算时,分子结构坐标来自于前面的coords.xyz,即第一部分内容。 指定2个片段,各自包含哪些原子,并通过–strain设定片段发生应变,能量的变化情况。 –orbitalenergy 打印指定片段、指定轨道的能量 –population 打印打印指定片段、指定轨道的占据情况 –overlap 打印打印指定片段、轨道之间的轨道重叠值 详细说明参考:https://www.scm.com/doc/ADF/Input/PyFrag.htm
在AMSJobs中可以直接选中该作业,像普通作业一样运行。运行结束后,SCM → Output 最后显示2个(应变)结构的数据情况:
#IRC Elstat EnergyTotal Int OI Pauli Steric StrainTotal VDD_1 VDD_2 VDD_3 angle bondlength frag1Strain frag2Strain hirshfeld irrepOI_1 irrepOI_2 orbitalenergy_1 orbitalenergy_2 orbitalenergy_3 overlap_1 overlap_2 population_1 population_2 1 -200.186 10.465 -54.914 -106.886 252.158 51.973 65.379 -0.071 0.251 -0.134 -126.390 0.567 0.000 65.379 0.163 -101.946 -4.940 -0.141 -0.071 -0.071 0.022 0.394 1.904 0.429 2 -205.327 10.530 -54.848 -108.902 259.381 54.054 65.379 -0.072 0.254 -0.135 -126.043 0.567 -0.000 65.379 0.165 -103.759 -5.143 -0.141 -0.071 -0.071 0.022 0.394 1.901 0.432 [25.04|16:50:50] PLAMS run finished. Goodbye
观察占据轨道与空轨道之间的重叠情况的变化,或许能知道该体系成键受哪些轨道的重叠所影响。