30. Reactions

Reaction processing in OEChem is divided into two categories: unimolecular reactions and library generation. Unimolecular reactions are useful for (although not limited to) normalization reactions. The OEUniMolecularRxn class in OEChem applies chemical transformations to individual molecules. Reactions can also be used to generate combinatorial libraries using OEChem. Both 'clipping' and reaction based enumeration can be achieved using the OELibraryGen class.

Reactions are represented in OEChem as query molecules (OEQMolBase). Sets of chemical transform operations are derived from reaction molecules by differences between the reactant and product patterns and in the reaction molecule. For example, atoms and bonds that appear in the reactant pattern, but are absent the in the product pattern are 'destroyed'. Atoms and bonds that appear in the product pattern but not in the reactant pattern are 'created'. Atoms are tracked between reactants and products by means atom maps. Atom maps are stored and retrieved using the OEAtomBase::SetMapIdx and OEAtomBase::GetMapIdx methods. Product atoms that have the same map index as reactant atoms originate from their reactant counterpart. Reactions are completely defined by a fields in a query molecule. Reaction molecules can be created from virtually any reaction file format (SMIRKS, MDL RXN, etc.), and can even be constructed programmatically.


Subsections