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
|
__init__(self,
reagentList,
reactantPool,
retroProductSelector)
Constructor |
|
|
|
__call__(self,
targetMol,
depth=0)
Generate a series of reaction steps to produce the targetMol. |
|
|
|
main(argv)
Main method, callable from command line |
|
|
__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.
|
retroProductSelector
- Value:
-
|