Using quantum chemical computation to find important reactions without requiring human intuition.
This repository contains Python code for automatically discovering chemical reactions using a freezing string method with a subsequent exact transition state search and reaction path verification by intrinsic reaction coordinate calculation.
There are two parts required in order to run the whole program. First, initial
geometries and transition state jobs have to be generated by executing
python ard.py input.txt from the command line. This will generate a reactions
folder containing input files for each job. Each transition state job can then
be run by python tssearch.py input.txt.
It is also possible to only run a freezing string method (without exact TS
search and IRC calculation) by executing
python sm.py input.txt
A full transition state search (for only one reaction) can be run by executing
python tssearch.py input.txt
Several arguments can be specified in the input file in the format arg value. The possible arguments are:
reac_smi- Valid SMILES string describing the reactant structurenbreak- Maximum number of bonds that may be brokennform- Maximum number of bonds that may be formeddH_cutoff- Heat of reaction cutoff (kcal/mol)forcefield- Force field for 3D geometry generation (mmff94oruff)distance- Initial distance between moleculesgeometry- Reactant and product geometry (seemain.pyfor details)nsteps- Number or gradient calculations per optimization stepnnode- Number of nodes for calculation of interpolation distancelsf- Line search factor for Newton-Raphson optimizationtol- Perpendicular gradient tolerancenLSTnodes- Number of high density LST nodesqprog- Program for quantum calculations (currently onlygau)theory- Level of theory (e.g., m062x/cc-pvtz)theory_low- Low level of theory for pre-optimizationsnproc- Number of processors per jobmem- Memory requirements for quantum software
Only reac_smi has to be specified for a full automatic discovery, all other
arguments have default values or are set by running ard.py.
Default values are:
nbreak= 3nform= 3dH_cutoff= 20forcefield= mmff94distance= 3.5nsteps= 4nnode= 15lsf= 0.7tol= 0.1nLSTnodes= 100qprog= gautheory= m062x/cc-pvtztheory_low= Nonenproc= 1mem= 2000mb
The input file arguments can be specified in any order and comments can be
added. An example is given in input.txt. If a freezing string method or
single transition state search is run, geometry has to be specified.
Gaussian 03 or 09 has to be available at the command line and the appropriate environment variables have to be set.