目录

PyFrag:自动化深度分析化学键,及化学键在化学反应过程中的变化

前言

计算化学工作流程的自动化变得越来越重要,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

DFT参数

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

运行PyFrag.py,并指定输出哪些数据

$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

观察占据轨道与空轨道之间的重叠情况的变化,或许能知道该体系成键受哪些轨道的重叠所影响。

文件

在*.results\plams_workdir文件夹,可以看到两个结构,对应的2个基于ADF的EDA分析计算作业:

包括2个结构在主任务,以及各自的两个碎片任务,总共6个文件夹。

参考文献

  1. X. Sun, T. M. Soini, J. Poater, T. A. Hamlin, F. M. Bickelhaupt, “PyFrag 2019—Automating the exploration and analysis of reaction mechanisms” J. Comput. Chem. 40 (2019), 2227-2233
  2. Also see the PyFrag documentation and the corresponding GitHub page
  3. P. Vermeeren, X. Sun, F. M. Bickelhaupt, “Arylic C–X Bond Activation by Palladium Catalysts: Activation Strain Analyses of Reactivity Trends” Scientific Reports 8 (2018), 10729
  4. X. Sun, M V. J. Rocha, T. A. Hamlin, J. Poater, F. M. Bickelhaupt, “Understanding the differences between iron and palladium in cross-coupling reactions” Phys. Chem. Chem. Phys. 21 (2019), 9651-9664