Given a mixture of molecules (usually a pair) and solvent / reagent
molecules if relevant, try finding the most reactive electrons (higest
occupied molecular orbital: HOMO) and most accepting atom (lowest
unoccupied molecular orbital: LUMO). Then move the orbital electrons
over to produce another product (probably a transition state
intermediate). Recurse until a product with much greater stability
results, presumably an intermediate closing into a stable product.
Record each series of (intermediate) products as well as a stability
rating for each to allow for subsequent sorting by product stability or
intermediate stability (indicative of activation energy).
|
__init__(self)
Default constructor. |
|
|
|
predictReactionsStream(self,
molstreamFactory,
productFile)
Given an input molecule stream factory containg several chemical
mixtures, try the predictReactions method for every molecule
mixture. |
|
|
|
|
|
__buildProductInfo(self,
mol,
prevSmi,
productInfoBySmi,
inputEnergy,
homo=None,
lumo=None,
arrowStr=None)
Primary recursive function. |
|
|
|
__terminationCondition(self,
smi,
productInfoBySmi,
inputEnergy)
A productInfo record should have just been created and recorded
for the molecule represented by the smi SMILES string. |
|
|
|
__highestOccupiedMolecularOrbitals(self,
mol)
Given a molecule, produce an iterator over the "most
reactive" occupied molecular orbitals of the molecule that we
want to consider for reaction possibilities. |
|
|
|
__lowestUnoccupiedMolecularOrbitals(self,
mol)
Given a molecule, produce an iterator over the "most
reactive" unoccupied molecular orbitals of the molecule that we
want to consider for reaction possibilities. |
|
|