Package CHEM :: Package CombiCDB :: Module RetroSynthesis :: Class RetroSynthesis
[hide private]
[frames] | no frames]

Class RetroSynthesis



Initialized with a set of reagent objects, generates a retro version
of each reagent.  Also needs a link to some pool of reactants including
a similarity measure / score between intermediate products found to items
in the pool.

Given a desired target structure, will attempt to find a path from starting
components in the reactant pool to the target via a series of reagent reactions,
by searching backwards.

General algorithm:
    While the target mol(s) are not found in the reactant pool (closest item has < 1.0 similarity)
    and we haven't exceeded the maximum number of steps for consideration:
        Apply each retro reagent to the target mol and see if it yields any retro products (source reactants).
        Pick one or more of these retro steps based on how some scoring function of the retro products.
        Recurse with the retro products being target molecules themselves.

Limitations:
    - Assumes all retro-reactions expect a single (non-inherent) reactant
    - If no exact match is found, just returns the last one tried, rather than sum integration over all or even a ranked list



Instance Methods [hide private]
 
__init__(self, reagentList, reactantPool, retroProductSelector)
Constructor
 
__call__(self, targetMol, depth=0)
Generate a series of reaction steps to produce the targetMol.
Static Methods [hide private]
 
main(argv)
Main method, callable from command line
Class Variables [hide private]
  maxDepth = 0
  reagentList = <CHEM.DB.rdb.search.NameRxnPatternMatchingModel....
  retroReagentList = <CHEM.DB.rdb.search.NameRxnPatternMatchingM...
  reactantPool = <CHEM.DB.rdb.search.NameRxnPatternMatchingModel...
  retroProductSelector = <CHEM.DB.rdb.search.NameRxnPatternMatch...
Method Details [hide private]

__call__(self, targetMol, depth=0)
(Call operator)

 
Generate a series of reaction steps to produce the targetMol. The starting reactants for the steps should be as similar as possible (if not exactly matching) the reactants in the asssociated reactantPool. Return a 2-ple, the first item being the reaction steps and the second being a boolean as to whether an exact match was successfully found.

Class Variable Details [hide private]

reagentList

Value:
None

retroReagentList

Value:
None

reactantPool

Value:
None

retroProductSelector

Value:
None