6.4. GOAT:全局几何优化和集合生成器


如果您想要找到全局最小值或其周围的集合,而不是从给定的猜测几何结构开始优化单一结构,ORCA 具有一个全球优化算法(GOAT),该算法受到 Wales 和 Doye 的盆地跳跃[878]、Goedecker 的最小值跳跃[306]、模拟退火和禁忌搜索的启发。


这个想法是从势能面(PES;图 6.24 中的红球)上的某个地方开始,首先到达最近的局部最小值(蓝球),然后从那里开始朝随机方向“向上推”直到越过一个障碍。然后找到一个新的最小值,过程重新开始,进行另一次向上推 followed by an optimization。在几次这样的 GOAT 迭代(向上 + 向下)之后,如果在最后两次全局迭代之间没有找到新的全局最小值。

../../_images/GOAT_PES.svg

图 6.24
常规几何优化(上)与 GOAT 全局优化器(下)之间差异的简单描述。使用后者,不仅可以找到一个局部最小值,还可以找到全局最小值及其周围的构象集合。


由于在达到全局最小值的过程中收集了结构,因此最终我们不仅得到了全局最小值,还得到了该分子的构象集合,这意味着它可以具有的所有构象及其相对能量。这在后续计算玻尔兹曼平均光谱和性质时也很有用。


这个想法与 Grimme 教授团队的 CREST 相似[698],不同之处在于不需要元动力学,因此所需的梯度计算大大减少。因此,它不仅适用于 XTB 和力场等超快速方法,还可以直接使用 DFT 或 ORCA 中可用的任何方法。


请注意,对于任意未知函数,没有从头开始找到全局最小值的方法,而随机方法在寻找这些最小值方面是最有效的。缺点是它基于随机选择,因此需要进行许多几何优化——在这里大约是 100× 个原子的数量。好消息是:这些可以有效地并行化(甚至是多节点),这个数量可以减少到少于 3× 个原子的数量(见下文)!


6.4.1. GOAT 简单使用示例 - 组氨酸 ¶


让我们从一个简单的例子开始,氨基酸组氨酸:

../../_images/GOAT_his.svg

图 6.25一个组氨酸分子。


仅仅通过观察其路易斯结构,根本无法明显看出在 XTB PES 的全局最小值附近实际上存在至少 20 个构象,能量范围在 3 kcal/mol 内!为了找到它们,可以运行:

!XTB GOAT #XTB version 6.4.0
* xyz 0 1
N         -0.13033       -0.28496       -0.67901
C          1.30551       -0.36383       -0.41824
C          1.51611       -1.04435        0.94169
O          0.58926       -1.43597        1.64771
C          1.97932        1.02323       -0.44331
H          2.41593        1.27074        0.53237
H          1.24598        1.81337       -0.65132
C          3.04894        1.09545       -1.48009
N          2.77779        1.01389       -2.82650
C          3.97051        1.07618       -3.48654
H          4.04071        1.01588       -4.56429
N          4.97724        1.21154       -2.65295
C          4.41545        1.24248       -1.40412
H          5.02774        1.35929       -0.51882
H          1.85722        0.88822       -3.24287
H         -0.75420       -0.54264        0.08211
H          1.72153       -1.03742       -1.17913
H         -0.47113        0.20468       -1.50142
O          2.79298       -1.20515        1.35271
H          3.59528       -0.86615        0.74156
*


调用全局优化器的命令很简单,使用 !GOAT ,就像使用 !OPT 一样,其选项可以像往常一样在 %GOAT 块下给出。您可以将其与 ORCA 中的任何其他可用方法一起使用,但它需要是快速的,因为需要进行大量的几何优化。这里我们将只使用 GFN2 (或 !XTB )。接下来会发生的事情是:


  1. 首先将进行常规几何优化,以找到最接近输入结构的最小值。


  2. 有了这些信息后,将计算所需的 GOAT 迭代次数,并在 NWorkers (默认 8 次)之间进行分配。


  3. 每个 Worker 都有其自己的参数,并将进行一定数量的几何优化。


  4. 在全球周期中的所有工作者完成后,将收集数据并开始新的周期。将至少有一个“最小全球步骤”数量的全球周期。


  5. 一旦两个全局步骤之间的差异微不足道,它就会停止,收集所有内容并打印集合能量和包含所有结构的文件。


6.4.2. 理解输出 ¶


在常规的几何优化之后,输出如下:

Global parameters
-----------------
GOAT version                               ... default
Minimum global steps                       ... 3
Number of base workers                     ... 4
Split workers by                           ... 2
Final number of workers                    ... 8
Number of available CPUs                   ... 16
Parameter list (worker : temperature)      ...  0 : 2903.97,  1 : 1451.98,
                                                2 :  725.99,  3 :  363.00,
                                                4 : 2903.97,  5 : 1451.98,
                                                6 :  725.99,  7 :  363.00
GradComp (mean : sigma)                    ... 1.00 : 0.50
Number of atoms                            ... 20
Number of fragments                        ... 1
Flexibility parameter                      ... 0.45
Optimizations per global step              ... 160
Optimizations per worker                   ... 20


Filtering criteria
------------------
RMSD                                       ... 0.125 Angs (atom. pos.)
EnDiff                                     ... 0.100 kcal/mol
RotConst                                   ... 1.00-2.50 %
Maximum Conf. Energy                       ... 6.000 kcal/mol

Thermodynamics
--------------
Ensemble temperature                       ... 298.15 K
Degeneracy of conformers                   ... 1
*No rotamers will be included in Gconf


顶部有一些一般信息。这里最重要的是我们有 8 个工作者和 1 个 CPU,这意味着每个工作者只有在前一个完成后才会运行。如果你想加快速度,只需通过例如 !PAL8 添加更多的 CPU,工作者将并行运行,使速度提高 8 倍。GOAT 也可以运行多节点,因此可以随意通过 %PAL 使用任意数量的处理器。最后,打印出用于区分构象体和旋转异构体的过滤标准。


默认过滤与 CREST 的完全相同:原子位置的 RMSD 以及考虑其各向异性的旋转常数。对于 GOAT-EXPLORE (见下文),默认的 RMSD 度量基于距离矩阵的特征值,因为它对平移、旋转和原子顺序不变,而在这些情况下原子顺序变化相当频繁。


之后,算法开始:

------------------------------------------------------------------------------
Iter  MinTemp     MaxEn       GradComp    NOpt   NProcs    Output
------------------------------------------------------------------------------
0     2903.97     60.00    1.00 : 0.50      20        2    HIS.goat.0.0.out
1     1451.98     60.00    1.00 : 0.50      20        2    HIS.goat.0.1.out
2      725.99     60.00    1.00 : 0.50      20        2    HIS.goat.0.2.out
3      363.00     60.00    1.00 : 0.50      20        2    HIS.goat.0.3.out
4     2903.97     60.00    1.00 : 0.50      20        2    HIS.goat.0.4.out
5     1451.98     60.00    1.00 : 0.50      20        2    HIS.goat.0.5.out
6      725.99     60.00    1.00 : 0.50      20        2    HIS.goat.0.6.out
7      363.00     60.00    1.00 : 0.50      20        2    HIS.goat.0.7.out

                              GOAT Global Iter 1
                 Iter    Min En       Sconf       Gconf
                         Hartree      cal/(molK)  kcal/mol
                 =========================================

                    1    -34.346656   4.432       -0.551
	
0     2903.97     60.00    1.00 : 0.50      20        2    HIS.goat.0.0.out
1     1451.98     60.00    1.00 : 0.50      20        2    HIS.goat.0.1.out
2      725.99     60.00    1.00 : 0.50      20        2    HIS.goat.0.2.out
3      363.00     60.00    1.00 : 0.50      20        2    HIS.goat.0.3.out
4     2903.97     60.00    1.00 : 0.50      20        2    HIS.goat.0.4.out
5     1451.98     60.00    1.00 : 0.50      20        2    HIS.goat.0.5.out
6      725.99     60.00    1.00 : 0.50      20        2    HIS.goat.0.6.out
7      363.00     60.00    1.00 : 0.50      20        2    HIS.goat.0.7.out
                     
                             GOAT Global Iter 2
                 Iter    Min En       Sconf       Gconf
                         Hartree      cal/(molK)  kcal/mol
                 =========================================
                 
                    1    -34.346656   4.432       -0.551
                    2    -34.346656   4.528       -0.559
	
0     2903.97     60.00    1.00 : 0.50      20        2    HIS.goat.0.0.out
1     1451.98     60.00    1.00 : 0.50      20        2    HIS.goat.0.1.out
2      725.99     60.00    1.00 : 0.50      20        2    HIS.goat.0.2.out
3      363.00     60.00    1.00 : 0.50      20        2    HIS.goat.0.3.out
4     2903.97     60.00    1.00 : 0.50      20        2    HIS.goat.0.4.out
5     1451.98     60.00    1.00 : 0.50      20        2    HIS.goat.0.5.out
6      725.99     60.00    1.00 : 0.50      20        2    HIS.goat.0.6.out
7      363.00     60.00    1.00 : 0.50      20        2    HIS.goat.0.7.out
	
                             GOAT Global Iter 3
                 Iter    Min En       Sconf       Gconf
                         Hartree      cal/(molK)  kcal/mol
                 =========================================
                    
                    1    -34.346656   4.432       -0.551
                    2    -34.346656   4.528       -0.559
                    3    -34.346656   4.541       -0.560
                 
	                              Global minimum found!
	                  Writing structure to HIS.globalminimum.xyz


在顶部标题中,可以看到所使用的温度、上升步骤中允许的最大能量、梯度反射的最大系数、每个工作者完成的优化次数、每个使用的处理器数量以及本地输出文件名。


输出文件的名称被选择为 BaseName.goat.globaliteration.workernumber.out 。默认情况下,这些文件在运行后会被删除,但可以通过在 %GOAT 下设置 KEEPWORKERDATA TRUE 来保留。


在每次全局迭代中,迄今为止的最低能量、构象熵 Sconf 和构象吉布斯自由能 Gconf 会被打印出来。由于这里没有旋转异构体,熵仅根据构象能量计算,其收敛性暗示了所创建的集合的完整性。


6.4.3. 最终集合 ¶


在这种情况下,正如您所看到的,它在第一次全局循环后已经找到了全局最小值,E = -34.346656 Hartree,但它仍然会按照默认设置运行至少 3 个循环。这是因为它是一个小分子,但并不一定如此,如果需要,将进行更多循环。


随后打印出该集合的最终相对能量,以及一个 BaseName.finalensemble.xyz 文件:

                # Final ensemble info #
                Conformer     Energy     Degen.   % total   % cumul.
                              (kcal/mol)
                ------------------------------------------------------
                        0     0.000          1      37.96      37.96
                        1     0.503          1      16.25      54.20
                        2     0.914          1       8.11      62.32
                        3     1.159          1       5.37      67.68
                        4     1.297          1       4.25      71.94
                        5     1.320          1       4.09      76.03
                                           (...)
                       41     5.180          1       0.01      99.98
                       42     5.199          1       0.01      99.99
                       43     5.491          1       0.00      99.99
                       44     5.547          1       0.00      99.99
                       45     5.861          1       0.00     100.00

Conformers below 3 kcal/mol: 22
Lowest energy conformer    : -34.346656 Eh
Sconf at 298.15 K          :  4.54 cal/(molK)
Gconf at 298.15 K          : -0.56 kcal/mol

Writing final ensemble to HIS.finalensemble.xyz


仅供参考,以下是四个最低能量构象的外观:

../../_images/GOAT_his_ensemble.svg

图 6.26
在 XTB PES 上找到的组氨酸的四个最低构象。


每当使用 GOAT 时,ORCA 优化器的 EnforceStrictConvergence 策略被设置为 TRUE 。在这里推荐这样做,以确保集合中不同分子的标准相等。可以通过设置 %GEOM EnforceStrictConvergence FALSE END 来关闭此功能。


常规优化阈值已经很好,但使用 !TIGHTOPT 来确保所有的集合分子都很好地收敛,特别是对于 GOAT-EXPLORE 来说,可能也是个好主意!


6.4.4. GOAT-ENTROPY:通过最大化熵来扩展集合的完整性


如果您希望在集合方面尽可能完整,可以改用 !GOAT-ENTROPY 关键字。这不仅会尝试找到全局最小值直到能量收敛,而且实际上只有在 ΔSconf 也收敛到小于 0.1 cal/(molK) 时才会停止,这相当于最大化构象熵(阈值可以更改 - 请参见下面的关键字列表)。


这将推动算法,使得所有围绕全局最小值的构象都应与其一起被找到。温度和 ΔSconf 可以通过下面列表中显示的特定关键字进行更改。更高的温度将使 ΔSconf 对高能构象区域的变化更加敏感,并应使搜索更加完整。


更明确地说,构象熵、焓和吉布斯自由能的计算公式为:

Sconf=R[lngieEiβ+gi(Eiβ)eEiβgi(Eiβ)eEiβ]
[H(T)H(0)]conf=RTgi(Eiβ)eEiβgi(Eiβ)eEiβ


其中 β=1kBTgi 是构象 i 的“简并性”,即其旋转异构体的数量。这是处理简并态的正确方法 [700]。与上述参考文献的唯一区别是 gi 始终为一,我们不区分“几何对映体”的任何因素。


6.4.5. 更多关于 ΔSconf


重要的是要说明,默认情况下, ΔSconf 与默认的 CREST 运行所找到的结果并不相同。在那里,它还包括在熵计算中的旋转异构体简并,而在这里则为 1。造成这种情况的原因是:


  1. 有正式的论据支持仅使用一个,假设旋转异构体是不可区分的。有关详细信息,请查看 Grimme 的参考文献[700]。


  2. 对于具有许多旋转异构体的系统,例如具有 3 个叔丁基基团的分子,每个构象至少会产生 ( 273 ) 19683 个旋转异构体,该算法无论如何都无法找到所有这些。


  3. 当调用 GOAT-ENTROPY 时,最大化的是构象体的熵,而不是集合的熵。这保证了在这些搜索过程中不同构象体的最大分布。


一旦找到最终的集合,如果你知道每个构象有多少个旋转异构体(假设数量是恒定的,比如叔丁基的情况),可以使用 READENSEMBLE "ensemble.xyz" 来读取该数量,并使用 CONFDEGEN 来设置简并度。在前面的例子中,这将是 CONFDEGEN 19683 ,并会为该给定集合提供所需的 ΔGconf


6.4.5.1. 自动寻找旋转异构体 ¶


始终可以通过设置 CONFDEGEN AUTO 来开启对旋转异构体及其简并度的自动搜索,如果这是您所希望的。它们将被添加到集合中,而不是被过滤掉,完整的集合将保存在名为 .confrot.xyz 的文件中。


另一种方法是假设,由于算法可能会找到某些构象的所有旋转异构体,但并非所有构象的旋转异构体,因此可以将所有的简并度设置为迄今为止找到的最大值( CONFDEGEN AUTOMAX )。以一个含有叔丁基和甲基的系统为例,每个构象有 81 个旋转异构体。GOAT 几乎不可能为每个构象找到 81 个旋转异构体,但如果它为一个构象找到了这些旋转异构体,那么所有其他构象也将具有相同的数量。


请注意,某些构象可能具有不同数量的旋转异构体(例如,癸烷或长烷基链),这些情况应谨慎处理。


6.4.6. GOAT-EXPLORE: 原子簇的全局最小值或无拓扑自由势能面搜索


如果您想为一个簇找到最低能量的构象,或者根本不想保留初始拓扑,您可以使用 !GOAT-EXPLORE 选项。这可能会断开所有键,并为给定的原子集找到最低能量结构,无论是纳米颗粒还是有机分子。


例如,让我们在 GFN1 PES 上找到 Au 8 纳米粒子的最小值,从一个随机聚集的金原子开始:

!XTB1 GOAT-EXPLORE PAL16 #XTB version 6.4.0
%GOAT NWORKERS 16 END
* xyz 0 1
Au        -1.39858        2.62611       -0.79278
Au        -2.50552       -0.07122        0.67538
Au        -0.52174       -2.57892       -0.02415
Au         0.78881        0.39733        0.21816
Au         1.21116        1.90621       -2.64617
Au        -1.19205       -0.30099       -2.30429
Au        -0.33808       -1.07129        2.90822
Au        -0.85565        2.15342        2.41956
*


请注意,每个工作者必须遵守最小优化次数,以使算法有意义。否则,在极限情况下,每个工作者进行一次优化几乎意味着没有任何事情发生。对于常规 GOAT,这个最小值是 max(N, 15) ,而对于 GOAT-EXPLORE 和 GOAT-REACT(见下文),这个最小值是 max(3N, 45) ,其中 N 是原子数量。使用自由拓扑的搜索要求更高,因为自由度更多。


当每个工作者的最小优化次数达到时,信息将打印在标题底部,如下所示:

GOAT version                               ... explore
Minimum global steps                       ... 3
Number of base workers                     ... 4
Split workers by                           ... 4
Final number of workers                    ... 16
Number of available CPUs                   ... 1
Parameter list (worker : temperature)      ...  0 : 2903.97,  1 : 1451.98, 
                                                2 :  725.99,  3 :  363.00, 
                                                4 : 2903.97,  5 : 1451.98, 
                                                6 :  725.99,  7 :  363.00, 
                                                8 : 2903.97,  9 : 1451.98, 
                                                10 :  725.99, 11 :  363.00, 
                                                12 : 2903.97, 13 : 1451.98, 
                                                14 :  725.99, 15 :  363.00 
GradComp (mean : sigma)                    ... 1.00 : 0.50
Number of atoms                            ... 8
Number of fragments                        ... 1
Flexibility parameter                      ... 1.00
Optimizations per global step              ... 528
Optimizations per worker                   ... 66
*Reached the minimum optimizations per worker [fmax(3 * NAtoms, 45)]!


找到的全局最小值是一个 D4h 平面结构,与文献中使用其他 DFT 方法找到的 Au 8 簇相同 [ 54]:

../../_images/GOAT_au8.svg

图 6.27
Au 8 簇在 GFN1 PES 上的最低能量构象。


6.4.7. GOAT-REACT:一种自动反应路径探索算法


GOAT 算法的另一个变体被创建以允许自动反应探索,这最终不过是在反应物和产物的集体势能面上的探索。


在这里,用户可以发挥创造力,有许多不同的方法来探索这个算法,但让我们从一个简单的反应开始:乙烯与单态氧的气相反应。

../../_images/GOAT_react_o2.png

图 6.28
乙烯与单态氧反应的产物可能是什么?


在运行以下输入后:

!XTB GOAT-REACT
* XYZ 0 1
C         -3.26482       -0.47497        0.33191
C         -2.16518        0.24269        0.35382
H         -4.23539       -0.01923        0.27823
H         -3.23979       -1.54754        0.37118
H         -2.19035        1.31540        0.31866
H         -1.19481       -0.21295        0.41157
O         -3.42426       -0.30941        2.30779
O         -2.17088        0.05188        2.32517
*


输出看起来或多或少与常规 GOAT-EXPLORE 相似,除了几个不同之处:


  1. GOAT 允许跨越的最大障碍更高。


  2. 默认情况下,初始的几何优化会被跳过。


  3. AUTOWALL 被设置为 TRUE ,这意味着使用分子的最大 x、y、z 尺寸加上 5 Angs 作为半径,添加了一个椭球壁势。


另一个重要因素是最大拓扑差异( MAXTOPODIFF ),默认设置为 8,如输出中所示:

Global parameters
-----------------
  GOAT version                               ... react
  Max. topological diff.                     ... 8
  Minimum global steps                       ... 3
  Number of base workers                     ... 4 


MAXTOPODIFF 是这里的一个关键概念。如果仅仅寻找反应物和产物之间所有可能的拓扑排列,即使是这样的简单系统也可能导致大量的组合。


我们将拓扑差异简单定义为从某个参考结构中断裂的键的总和加上形成的键,该参考结构取自 GOAT 迭代中第一次几何优化后的结构(在任何上升步骤之前)。


将会打印比平常更多的文件,最重要的文件是:


  1. Basename.products.xyz – 包含反应的所有反应物及其所有构象。它通常是一个非常大的文件。


  2. Basename.products.topodiff2.xyz – 仅包含与参考结构通过 topodiff 2 分离的那些,依此类推。


  3. Basename.products.unique.xyz – 包含所有拓扑唯一产品的列表,不包括其构象体或旋转异构体,仅打印最低能量构象体。这里参考结构将排在首位,其他结构将显示其相对能量差异,单位为 kcal/mol。


此反应的一个示例中发现的一些产品是:

../../_images/GOAT_react_o2_products.svg

图 6.29
一些产品是通过 GOAT-REACT 自动找到的,使用了上述给定的输入。

注意


请注意,单态氧的反应性非常强,以至于即使是第一次优化也会导致环化反应,反应产物随后被作为参考结构。

重要


在这里不推荐使用像 GFN-FF 这样的力场,因为它不应该断裂键。


6.4.8. 一些一般性观察 ¶


6.4.8.1. 上升步骤中的默认冻结坐标 ¶


在上升阶段,仅在默认情况下,GOAT 将冻结:

  1. 所有键合,


  2. 同一环内涉及两个 sp2 原子的所有角度,


  3. 所有强键周围的二面角(d(B,C) < [0.9 x (共价半径之和)])。


“sp2 原子”在这里仅对 C、N 和 O 进行了宽松定义,分别为少于 4、3 和 2 个键。


第一次冻结是为了避免通过断裂键改变拓扑。第二和第三次冻结是为了避免在改变这些角度时越过非常高的能量障碍,实际上,除非在非常特殊的情况下,否则这些角度是不会翻转的!


这些约束会自动解除为 GOAT-EXPLORE ,也可以通过其特定关键字设置为 FALSE


6.4.8.2. GOAT 的并行化 ¶


GOAT 将以与大多数 ORCA 作业不同的方式利用大量核心,因为它将必要的工作分配给不同的工作者。它还可以进行多任务处理,并通过不同的节点分配这些工作者。


由于在开始 GOAT 之前通常会有一个常规的第一次优化步骤,而这个步骤不会从大量核心中受益,因此通过标志 MAXCORESOPT 将其限制为最多 32 个核心。之后,GOAT 将切换回使用所有可用核心。我们不建议更改这个最大值,因为这可能只会使事情变得更慢,但可以在%GOAT 块内进行控制。


6.4.8.3. 提示和额外细节 ¶

注意


  • GOAT 将与 ORCA 中的任何方法一起工作,您所需要的只是梯度。这包括使用 DFT、QM/MM、ONIOM、破对称态、激发态等。


  • 请注意,DFT 的成本远高于 XTB。使用 R2SCAN-3C 运行 GOAT 是完全可能的,但要准备使用多个核心或等待几天 :D。我们建议至少 %PAL NPROCS 32 END ,以便有 8 个工作者,每个工作者 4 个核心。混合 DFT 甚至更重,因此如果您想使用 B3LYP,请至少使用 NPROCS 64 - 并且不要着急。这里的目标是进行全局搜索,这不是免费的!


  • 在许多情况下,使用 GFNUPHILL GFNFF 在上升步骤中使用 GFN-FF 力场 PES 可能是有用的。在那里,实际上并不需要精确的势能,因为主要目标是将结构从其当前的最小值中移出,GOAT 将运行得更快,仅在实际优化中使用所选择的方法。GFN2XTB、GFN1XTB 或 GFN0XTB 也是有效的选项。


  • 对于需要断键的方法,例如 GOAT-EXPLOREGOAT-REACT ,GFNUPHILL GFNFF 不能使用,因为 GFN-FF 不允许断键。请选择 GFN2XTB、GFN1XTB 或 GFN0XTB。


  • 您可以通过查看 Basename.goat.x.x.out 文件随时检查工人的工作情况。第一个数字指的是全局迭代,第二个数字指的是特定工人。这是一个 ORCA 输出(为了节省空间,某些打印被抑制),可以在大多数图形用户界面中打开。


  • GOAT 将在一开始自动检测片段,甚至在第一次几何优化之前。它还会尊重通过几何块给出的片段。您可以通过在 %GOAT 下将 AUTOFRAG 设置为 FALSE 来关闭此功能。


  • 酰胺键的手性默认情况下不是固定的,这意味着您为酰胺提供的输入拓扑(顺式或反式)可能会改变。如果您想要固定它,请将 FREEZEAMIDES 设置为 TRUE


  • 类似地,环外的双键也可以改变它们的拓扑。选择 FREEZECISTRANS TRUE 以冻结这些二面角。


  • 对于某些分子,限制某些原子的配位数可能是有趣的,在这种情况下使用 MAXCOORDNUMBER


  • GOAT 将尊重 %GEOM 块中的几何选择,因此您可以使用所需的各种约束来进行其他类型的坐标冻结。它还可以与所有可用的任意壁势相结合(见第 6.3.8 节)。


  • 如果您只想推动某些原子向上,可以将列表提供给 UPHILLATOMS 。在这种情况下,图 6.24 中显示的向上力将仅应用于涉及这些原子的坐标,其余分子将仅对此作出反应。这对于对更大系统的部分进行构象搜索非常有用。


  • 默认情况下,包含距离全局最小值最多 12.0 kcal/mol 的构象,可以通过设置 MAXEN 来更改。


6.4.9. 基本关键字列表 ¶


在这里,我们提供一个基本的选项列表,以在 %GOAT 下给出:

%GOAT

   #
   # general options
   #
   
   MAXITER        128  # defines an arbitrary number of max GOAT geom opt iters per worker.
   MAXOPTITER     256  # maximum number of geometry optimizations per GOAT iter.

   SKIPINITIALOPT TRUE # if you want to skip the initial optimization (default FALSE).
   
   RANDOMSEED     TRUE # set it to FALSE to have a deterministic GOAT run. since the 
                       # geometry optimization can change due to numerical differences
                       # it might not be fully deterministic in some cases.
   
   READENSEMBLE "name.xyz" # an ensemble file to be read. the comment line should 
                           # have the format "Energy (float)", as generated by GOAT.
                           # nothing will be done, except that the filters
                           # will be reapplied.
                         
   AUTOWALL       TRUE  # automatically create an ellipsoid wall potential
                        # around the structure (+5 Angs)? (default is FALSE).
                      
   TEMPLIST       3000, 2000, 750, 500 # a list of temperatures, defines the number
                                       # of basic workers, in Kelvin. do not change
                                       # unless you know what to do. 
                                       
   MAXCORESOPT    32    # the max. number of cores used during the very first opt
                           
   #
   # worker options
   #
   
   NWORKERS       AUTO # define the number of workers (default AUTO). 
                       # AUTO for an automatic ideal assignment,
                       # or give any number multiple of 4 (number of temperatures).
   MAXITERMULT    3 # a simple keyword to multiply the number of geometry
                    # optimizations per worker. will quickly
                    # increase MAXITER.
   KEEPWORKERDATA FALSE # set to TRUE to keep the worker outputs
                        # (might be a lot of data!).
   WORKERRANDOMSTART TRUE  # after the first cycle, each worker starts with a random
                           # structure from the previous set up to 3 kcal/mol 
                           # instead of the lowest energy only.
                           # at least one starts from the lowest (default TRUE).
    
   #
   # uphill step
   #
                        
   UPHILLATOMS {0:2 5 14:29} END # if given, only those atoms listed will be pushed, 
                                 # uphill others will just respond to it.                              
   GFNUPHILL    GFNFF      # use GFN-FF only during the uphill steps? GFN2XTB, GFN1XTB or
                           # GFN0XTB are also valid options for the respective methods.
                                 
   
   #
   # filtering and screening      
   #
   
   ALIGN          FALSE # align all final conformers with respect to the
                        # lowest energy one?
   ENDIFF         0.1   # minimum energy difference needed to differentiate
                        # conformers, in kcal/mol.
   MAXEN          6.0   # the maximum relative energy of a conformer to
                        # be taken, in kcal/mol. 6 kcal/mol by default.
   RMSD           0.125 # minimum RMSD to differentiate conformers, in Angstroem.
   ROTCONSTDIFF   0.01  # maximum difference for the  rotational constant, in %.
   RMSDMETRIC     EIGENVALUE # use eigenvalues of distance matrix for RMSD? 
                             # default is RMSD in general 
                             # and EIGENVALUE for GOAT-EXPLORE.
   
   #
   # entropy mode
   #

   MAXENTROPY     FALSE  # add delta Gconf as convergence criteria (default FALSE)?
   CONFTEMP       298.15 # temperature used to compute the free energy, in Kelvin.
   MINDELS        0.1    # the minimum entropy difference between two iterations
                         # to signal convergence, in cal/(molK).
   CONFDEGEN      2        # set an arbitrary degeneracy per conformer?
                  AUTO     # find that automatically based on the RMSD.
                  AUTOMAX  # same as AUTO, but take the largest value as reference
                           # for all conformers.
   
   #
   # free topology
   #
   
   FREEHETEROATOMS FALSE # free all atoms besides H and C.
   FREENONHATOMS   FALSE # self explained.
   FREEFRAGMENTS   FALSE # free interfragment topology, i.e., bonds between fragments
                           might be formed or broken during the search but bonds 
                           within the same fragment will be kept.
                             
   # we don't recommend changing these unless you really need to!
   FREEZEBONDS    FALSE # freeze bonds uphill (default TRUE)?
   FREEZEANGLES   FALSE # freeze sp2 angles and dihedrals uphill (default TRUE)?
   FREEZECISTRANS FALSE # freeze cis-trans isomers outside rings (default FALSE)?
   FREEZEAMIDES   FALSE # freeze amide cis/trans chirality (default FALSE)?
   
   MAXCOORDNUMBER 10, 4, 11, 6 # a list of "atom number, coordination number" that
                               # will define the maximum coordination number for
                               # those listed atoms, taken from distance-based criteria.
                               # in this case atom 10 will have a maximum of 4 and 
                               # atom 11 a maximum of 6. others follow defaults.
                               
   #
   # goat react
   #
   
   MAXTOPODIFF 8  # the maximum topological difference that is allow. Topodiff
                  # is simply defined based on number of broken + number of formed bonds
                  # using ORCA's regular distance based criteria [1.3 * (sum of Cov. Radii)] 
   
END