ChemTraYzer

General information

The ChemTraYzer scripts, developed in the Leonhard group at Aachen University, provide a methodology for deducing quantitative reaction models from reactive molecular dynamics simulations by identifying, quantifying, and evaluating elementary reactions of ReaxFF trajectories.

For usage with ADF’s ReaxFF the scripts have been slightly modified and use RDKit instead of the openbabel-bindings. A GUI-tutorial is available here . The original paper, Automated Discovery of Reaction Pathways, Rate Constants, and Transition States Using Reactive Molecular Dynamics Simulations, can be found here.

Command line execution

1. Open a terminal:

  • on Linux: Ctrl+Alt+T usually works, otherwise browse your application menus
  • on Windows: double click adf_command_line.bat in your ADF installation directory (e.g. C:/ADF2016.106), enter ‘sh’ to go to a shell

2. cd into the directory where your trajectories are located with the terminal

3. Assuming your trajectory file is called traj.rxkf, running ChemTraYzer is a two step procedure

  • run the processing step (with default values)

$AMSBIN/amspython $AMSHOME/scripting/standalone/chemtrayzer/processing_scm.py traj.rxkf

  • run the analysis step (with default values)

$AMSBIN/amspython $AMSHOME/scripting/standalone/chemtrayzer/analyzing_scm.py traj.rxkf

You will probably want to adjust the settings. A list of all available options is shown by calling the scripts without arguments, e.g. $AMSBIN/amspython $AMSHOME/scripting/standalone/chemtrayzer/analyzing_scm.py

Results

ChemTraYzer creates several output files, the most relevant ones being:

reac.spec.tab

1st line: indices of the species, e.g. S1;S2;S3;etc…

2nd line: SMILES of the species, e.g. ;C;CC;CCO;CCOO;CO;O;[H];etc…

3rd - end: timestep, counts of the species, e.g. 150;0;0;2;… // step 150, current count of S3 == 2

reac.rate.tab

1st line: indices of the reactions, e.g. t [steps];R0;R0*;R1;R1*; // a “*” marks the back reaction

2nd line: the reactions formulated with the species indices, e.g. S0 + S0 + S0 + S13 -> S65; // see reac.spec.tab

3rd line: the reactions formulated with sum formulas, e.g. CH3 + H -> CH4, etc…

4th -…: timestep; rate constant of the reaction; rate constant of the back reaction; etc…

reac.pic/

folder containing the 2D structures (if obabel was able to create them) reac.pic/xyz/ xyz files of the species as they first appeared in the trajectory

Very large trajectories

When a long simulation has been run, the files handled and generated by ChemTraYzer can become very large. Sometimes even too large to handle. In such a situation, you can request the information required by ChemTraYzer to be written to a separate file at a separate frame rate. The advantage of this approach is that you can drastically increase the frame rate for the rxkf file which will speed up the calculation and save a lot of disc space.

To apply the two different frame rates, add a new command to the control file in the run script:

100 lmpsbo     LAMMPS bonding table!

ReaxFF will now generate a file called tatb with all required bonding information written every 100th iteration. You can adjust the number as needed. Next, decrease the frame rate for the rxkf file by altering these existing parameters in the control file:

5000 iout1      Output frequency to unit 71 and unit 73 5000 iout2      Save coordinates (xmolout, moldyn.vel, Molfra) 5000 iout7      Frequency of reaxout.kf writing

Once the calculation has finished, you will find a file called tatb in the results folder. This file has to be renamed to the same filename as the rxkf trajectory file and placed in the same location as that file. For example, if your rxkf file is called traj.rxkf:

Rename the file from tatb to traj.tatb

cp tatb traj.tatb

and place it in the same folder as the file traj.rxkf. Run the ChemTraYzer processing and analysis as explained above. To double check if the file tatb file has been read, check for the following confirmation log message of the processing script:

!----------------------------------------------------------------------!
! RXKF: Using Existing Bonding Table: traj.tatb                        !
!----------------------------------------------------------------------!