Template-directed automatic generation of transition state structures.
In the examples folder there is a file named "diels-alder.xyz"
16
$BONDS [(11, 13)]
C -3.46574864260342 1.77088632015575 -0.16311078701627
C -3.49550998605753 0.27443775558135 -0.15603892442953
C -2.36972681927264 2.50418505449590 -0.17351916425689
C -2.42904768633870 -0.50124324598883 -0.15760941840735
H -4.48176991352500 -0.16930455206401 -0.15100777179991
H -1.42493224653502 -0.10043694286412 -0.16105606253181
H -2.51297761507080 -1.57912373404936 -0.15432999921591
H -4.43364207803270 2.25344991914619 -0.16110283979145
H -1.38178370765096 2.06513110820159 -0.17482130383439
H -2.41166048186494 3.58450139619875 -0.18065814642947
C 1.22774489419428 1.52134395177924 0.40814107652367
C 1.23393648406324 0.21075036034713 0.30390307440365
H 1.44909318063717 2.16629828787655 -0.43231376674039
H 0.99857022519162 2.02270762138127 1.33954253086686
H 1.46004380854851 -0.29130438948581 -0.62783788120206
H 1.01072058431690 -0.43348891071158 1.14444938386124
16
PM3 optimized product geometry from ORCA
C -3.34111272936289 1.67952156408045 -0.03118114836469
C -3.35932381213093 0.36807207448268 -0.03474392064539
C -2.04894441299143 2.39107122290433 -0.41349823748806
C -2.08963017678120 -0.37792516077461 -0.42643204721710
H -4.23800031262286 -0.20075113617795 0.22772964334484
H -1.92677795976780 -0.26860493027758 -1.49470512449698
H -2.17802531316755 -1.43745841246442 -0.21991283760675
H -4.20341505381809 2.27119506220297 0.23501259364480
H -1.87982110286603 2.28052422978528 -1.48062533947238
H -2.10820399423185 3.45183895233645 -0.20296462372431
C -0.85000896189861 1.76665704148623 0.35653146780699
C -0.86288786088763 0.20610442849286 0.33278094314982
H 0.07655474947872 2.13819959992739 -0.06448760531150
H -0.89219823341812 2.10758169308058 1.38358877376230
H 0.04597340827824 -0.16710754503404 -0.12381158792139
H -0.88288823381197 -0.16492868405061 1.35003905053980
The line with $BONDS define a list of bonds in the complex that can be replaced, in this case a single C-H bond is defined.
In the "mutations" folder you can find a bunch of xyz-files with functional groups. You can add more yourself. The format is standard xyz-format, with the two first atoms being the atoms that replace the e.g. C-H bond in the reaction molecule.
Reactant/product xyz-files and functional group xyz-files are parsed into two different classes.
A simple example to use Auto-TS is the following code (also found in the example.py file):
from autots import Molecule
from autots import Mutation
from autots import connect
mol = Molecule("examples/diels-alder.xyz")
mut = Mutation("mutations/nh2.xyz")
output = connect(mol, mut, mol.bonds[0])
print output
The above code will print the following output, which is simply the reactant and complexes with an -NH2 group instead of the -H group defined by the $BONDS section:
18
Reactant for GSM generated by Auto-TS
C -3.46574864260342 1.77088632015575 -0.16311078701627
C -3.49550998605753 0.27443775558135 -0.15603892442953
C -2.36972681927264 2.50418505449590 -0.17351916425689
C -2.42904768633870 -0.50124324598883 -0.15760941840735
H -4.48176991352500 -0.16930455206401 -0.15100777179991
H -1.42493224653502 -0.10043694286412 -0.16105606253181
H -2.51297761507080 -1.57912373404936 -0.15432999921591
H -4.43364207803270 2.25344991914619 -0.16110283979145
H -1.38178370765096 2.06513110820159 -0.17482130383439
H -2.41166048186494 3.58450139619875 -0.18065814642947
C 1.22774489419428 1.52134395177924 0.40814107652367
C 1.23393648406324 0.21075036034713 0.30390307440365
H 0.99857022519162 2.02270762138127 1.33954253086686
H 1.46004380854851 -0.29130438948581 -0.62783788120206
H 1.01072058431690 -0.43348891071158 1.14444938386124
N 1.52839038859427 2.39735080214816 -0.73340361729164
H 2.26028470582304 1.99187030732888 -1.28104973856096
H 0.70937739802646 2.50283694651046 -1.29739865482859
18
Product for GSM generated by Auto-TS
C -3.34111272936289 1.67952156408045 -0.03118114836469
C -3.35932381213093 0.36807207448268 -0.03474392064539
C -2.04894441299143 2.39107122290433 -0.41349823748806
C -2.08963017678120 -0.37792516077461 -0.42643204721710
H -4.23800031262286 -0.20075113617795 0.22772964334484
H -1.92677795976780 -0.26860493027758 -1.49470512449698
H -2.17802531316755 -1.43745841246442 -0.21991283760675
H -4.20341505381809 2.27119506220297 0.23501259364480
H -1.87982110286603 2.28052422978528 -1.48062533947238
H -2.10820399423185 3.45183895233645 -0.20296462372431
C -0.85000896189861 1.76665704148623 0.35653146780699
C -0.86288786088763 0.20610442849286 0.33278094314982
H -0.89219823341812 2.10758169308058 1.38358877376230
H 0.04597340827824 -0.16710754503404 -0.12381158792139
H -0.88288823381197 -0.16492868405061 1.35003905053980
N 0.40715417995865 2.27076658556631 -0.21470789139119
H 0.72664820365434 1.64234064293283 -0.92393592302837
H 0.25289356654463 3.17420408521937 -0.61471333523832
There is no input for charges, since this is handled by the GSM code. E.g. for MOPAC you'd have to recompile GSM for each charge since the MOPAC header is hard-codede in GSM (which is an external program by the Zimmerman group).
I will probably update GSM with this capability in the near future. Otherwise just recompile and rename to gsm_+0 gsm_+1 etc.