Skip to content

Hydrogen Abstraction Transition State Explorer (HyATraX)

License

Notifications You must be signed in to change notification settings

bastianschnieder/HyATraX

Repository files navigation

HyATraX

Description

The Hydrogen Abstraction Transition State Explorer (HyATraX) is a workflow to find and optimize transition states of hydrogen abstraction reactions by hydrogen atoms or hydroxyl radicals from polyaromatic hydrocarbons (PAHs) and is also capable of handling PAHs with heteroatomic functional groups. Presently, HyATraX can handle H-abstractions of

  • C-H bonds (aromatic)
  • C-H bonds (aldehyde)
  • O-H bonds
  • N-H bonds

that can exist in pyrrole, hydroxyl or aldehyde groups in PAHs. It was developed for studying the combustion of PAHs in radical-rich atmospheres. The initial steps are typically hydrogen abstractions from the edge of the PAHs by hydrogen atoms or hydroxyl radicals that create aryl or oxo radicals. These steps usually require considerable amounts of computation time throughout reactive forcefield molecular dynamics simulations. Applying HyATraX can skip these initial abstractions by generating reactive intermediates as input structures for MD simulations that already went through common reaction channels. 

How does it work?

HyATraX generates approximate transition state geometries that are further optimized with trust-region image minimization. It creates a mol object of the given molecule, detects C-H, N-H, and O-H bonds, and subdivides the C-H bonds in aromatic and aldehyde functionalities. Then, the former R-H bond (R=C,N,O) is elongated to a fixed transition state length before a radical (hydrogen atoms or hydroxyl radicals) is added to the hydrogen atom that is about to be abstracted. The transition state bond lengths and angles were determined empirically for the DFT-D3 TPSS/TZVP method and can be adjusted in main.py. Reaction products are generated by deleting the respective hydrogen atom of each R-H bond. Before the refinement process, all R-H vectors along with the added radical positions can be visualized. Moreover, various functional groups, abstraction radicals, and modifications of bond lengths and angles for the transition states can be easily added to the source code. Additionally, the reaction products and transition states are optimized using the quantum chemistry program TURBOMOLE. Presently, the major drawback is the addition of radicals in bay- and fjord-regions in PAHs due to steric effects. Therefore, we advise checking the bond vectors and added radical positions prior to the refinement step. 

How to use

HyATrax requires an input of the Cartesian coordinates (xyz format) for the molecule of interest. The main routine is invoked by

  • python3 main_H.py [coord.xyz] for abstractions by H atoms or
  • python3 main_OH.py [coord.xyz] for abstractions by hydroxyl radicals.

The program generates for each R-H bond (R=C,N,O) a respective xyz-file with the [index] of the hydrogen atom:

  • coord_hidx_[index].xyz

The user can refine the transition state guess in three steps using the TURBOMOLE program package.

  • default: DFT-D3 TPSS/TZVP

If the user decides to change the basis set and functional, the reference values for the bond distances must be adjusted accordingly.

  • calulate Hessian using ridft and aoforce (submit_level1.sh)
  • transition state optimization using by jobex (submit_level2.sh)
  • verification by calcualting Hessian of optimized transition state using ridft and aoforce (submit_level3.sh)

Transition state refinement scripts 1-3 (bash) are invoked by:

  • ./submit_level[1,2,3].sh

Remember to make the submission scripts executable with:

  • chmod u+x submit_level[1,2,3].sh

In the first refinement step, HyATraX generates for each detected R-H bond a directory named hidx_[index].xyz in which the quantum chemical calculations are performed.

For each abstracted hydrogen atom the reaction product is also saved in Products/ as idx_[index].xyz. The reaction products can be optimized within the Products/ directory in two levels:

  • geometry optimization using jobex (products_1.sh)
  • single point energy using ridft and aoforce (products_2.sh)

The product refinement scripts 1-2 (bash) can be invoked by:

  • ./products_[1,2].sh

Remember to make the submission scripts executable with:

  • chmod u+x products_[1,2].sh

After the successful refinement of the transition states and reaction products, the directories can be cleaned using the clean.sh script. Clean the directory by invoking:

  • ./clean.sh

Lastly, the single point energies of the transition states and reaction products can be extracted and used for the calculation of activation and reaction energies of H-abstraction reactions.

Adjustments

  • If your molecule is charged adjust this parameter in rdDetermineBonds.DetermineBonds(mol,charge=[your charge])
  • Change RAM, number of Cores/Nodes and TURBOMOLE paths in the submission scripts accordingly to your local machine/cluster (user-guide)
  • Check the paths for the input files in the submission scripts as well (default user is "/home/USERNAME")

Requirements

HyATraX requires the following Python modules/packages:

Acknowledgments

The HyATraX code uses the RDKit package, an open-source cheminformatics software, to detect R-H bonds in PAHs.