chemaxon.metabolizer
Class Metabolizer

java.lang.Object
  extended by chemaxon.metabolizer.Metabolizer
All Implemented Interfaces:
chemaxon.license.Licensable

public class Metabolizer
extends java.lang.Object
implements chemaxon.license.Licensable

This class can generate metabolic tree. User have to set biotransformation reactions (library), substrate(s), and MetabolizerTemporaryFileStorage instance if temporary products should store on the file system. Otherwise these products will be stored in the memory.

 Example:
                Molecule molecule = MolImporter.importMol("CNCC");
                Molecule[] substrates = new Molecule[]{molecule};
                MolImporter importer = new MolImporter("C:\\...");
                ArrayList reactionList = new ArrayList();
                RxnMolecule tempMolecule;
                while ((tempMolecule=((RxnMolecule)importer.read()))!=null) {
                        reactionList.add(tempMolecule);
                }
                MolExporter exporter = new MolExporter(new FileOutputStream("C:\\..."), METABOLIZER_SMILES_OUTPUT_FILEFORMAT_WITH_DOMINANCE);
                RxnMolecule[] reactions = (RxnMolecule[]) reactionList.toArray(new RxnMolecule[reactionList.size()]);
                Metabolizer metabolizer = new Metabolizer(2, reactions, true);
                metabolizer.setGeneratingSubstrates(true);
                metabolizer.setSubstrates(substrates);
                while (metabolizer.hasMoreLevel()) {
                        while (!metabolizer.isCurrentLevelEnded()) {
                                Molecule[] molecules = metabolizer.next();
                                if (molecules!=null) {
                                        for (int i = 0; i < molecules.length; i++) {
                                                exporter.write(molecules[i]);
                                        }
                                }
                        }
                        metabolizer.nextLevel();
                }
                exporter.close();
                storage.close();
 

Author:
Attila Szabo
See Also:
MetabolizerProperties

Constructor Summary
Metabolizer(boolean runInMemory)
           
Metabolizer(boolean runInMemory, chemaxon.marvin.modelling.util.ProgressMonitor progressMonitor)
           
Metabolizer(int levelCount, boolean runInMemory)
           
Metabolizer(int levelCount, boolean runInMemory, chemaxon.marvin.modelling.util.ProgressMonitor progressMonitor)
           
Metabolizer(int levelCount, RxnMolecule[] reactions, boolean runInMemory)
           
Metabolizer(int levelCount, RxnMolecule[] reactions, boolean runInMemory, boolean generatingSubstrates)
           
Metabolizer(int levelCount, RxnMolecule[] reactions, boolean runInMemory, boolean generatingSubstrates, chemaxon.marvin.modelling.util.ProgressMonitor progressMonitor)
           
Metabolizer(int levelCount, RxnMolecule[] reactions, boolean runInMemory, chemaxon.marvin.modelling.util.ProgressMonitor progressMonitor)
           
Metabolizer(int levelCount, RxnMolecule[] reactions, MetabolizerTemporaryStorage temporaryStorage)
           
Metabolizer(int levelCount, RxnMolecule[] reactions, MetabolizerTemporaryStorage temporaryStorage, chemaxon.marvin.modelling.util.ProgressMonitor progressMonitor)
           
Metabolizer(int levelCount, RxnMolecule[] reactions, java.lang.String termCondition, boolean runInMemory)
           
Metabolizer(int levelCount, RxnMolecule[] reactions, java.lang.String termCondition, boolean runInMemory, chemaxon.marvin.modelling.util.ProgressMonitor progressMonitor)
           
Metabolizer(int levelCount, RxnMolecule[] reactions, java.lang.String termCondition, MetabolizerTemporaryStorage temporaryStorage)
           
Metabolizer(int levelCount, RxnMolecule[] reactions, java.lang.String termCondition, MetabolizerTemporaryStorage temporaryStorage, boolean generatingSubstrates)
           
Metabolizer(int levelCount, RxnMolecule[] reactions, java.lang.String termCondition, MetabolizerTemporaryStorage temporaryStorage, boolean generatingSubstrates, chemaxon.marvin.modelling.util.ProgressMonitor progressMonitor)
           
Metabolizer(int levelCount, RxnMolecule[] reactions, java.lang.String termCondition, MetabolizerTemporaryStorage temporaryStorage, chemaxon.marvin.modelling.util.ProgressMonitor progressMonitor)
           
 
Method Summary
 void closeTemporaryStorage()
          Closes temporary storage
 long getCurrentLevelLength()
          Rerturns currentLevelLength
 int getLevelCount()
          Returns levelCount
 int getLevelCounter()
          Return current level's ordinal number
 float getMetabolicPathwayTolerance()
           
 java.util.Set<java.lang.String> getNeededMetaboliteSmiles()
           
 int getSubstrateCounter()
          Return currentSubstrate's ordinal number
 java.lang.String getTermCondition()
          Returns termination condition
 boolean hasMoreLevel()
          Returns true if the iteration has more level
 void ignoreSelectivity()
           
 boolean isCurrentLevelEnded()
          Returns true if the current level has more element to process
 boolean isGeneratingSubstrates()
          Return generatingSubstrates
 boolean isLicensed()
           
static void main(java.lang.String[] args)
           
 Molecule[] next()
          Returns the next element in the iteration or null if iteration's end reached before correctly calculated results
 void nextLevel()
          Need to call after current level ended
 void setExcludedMetabolites(Molecule[] molecules)
          Sets the excluded metabolites.
 void setGeneratingSubstrates(boolean generatingSubstrates)
          Set generatingSubstrates.
 void setLevelCount(int levelCount)
          Sets levelCount
 void setLicenseEnvironment(java.lang.String env)
           
 void setMetabolicPathwayTolerance(float metabolicPathwayTolerance)
           
 void setNeededMetabolites(Molecule[] molecules)
          Sets the needed metabolites.
 void setProgressMonitor(chemaxon.marvin.modelling.util.ProgressMonitor progressMonitor)
          Sets progress monitor
 void setReactions(RxnMolecule[] reactions)
          This method sets the biotransformation reactions
 void setRunInMemory(boolean runInMemory)
          If runInMemory is true class will calculate in memory (can cause memory out of exception)
 void setSubstrates(Molecule[] substrates)
          This method can set the substrates if it is needed
 void setTemporaryStorage(MetabolizerTemporaryStorage temporaryStorage)
          Sets temporaryStorage
 void setTermCondition(java.lang.String termCondition)
          Sets termination condition
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Metabolizer

public Metabolizer(int levelCount,
                   RxnMolecule[] reactions,
                   java.lang.String termCondition,
                   MetabolizerTemporaryStorage temporaryStorage,
                   boolean generatingSubstrates)
            throws MetabolizerException
Parameters:
levelCount -
reactions -
termCondition -
temporaryStorage -
generatingSubstrates -
Throws:
MetabolizerException

Metabolizer

public Metabolizer(int levelCount,
                   RxnMolecule[] reactions,
                   java.lang.String termCondition,
                   MetabolizerTemporaryStorage temporaryStorage,
                   boolean generatingSubstrates,
                   chemaxon.marvin.modelling.util.ProgressMonitor progressMonitor)
            throws MetabolizerException
Parameters:
levelCount -
reactions -
termCondition -
temporaryStorage -
generatingSubstrates -
progressMonitor -
Throws:
MetabolizerException

Metabolizer

public Metabolizer(int levelCount,
                   RxnMolecule[] reactions,
                   boolean runInMemory,
                   boolean generatingSubstrates)
            throws MetabolizerException
Parameters:
levelCount -
reactions -
runInMemory -
generatingSubstrates -
Throws:
MetabolizerException

Metabolizer

public Metabolizer(int levelCount,
                   RxnMolecule[] reactions,
                   boolean runInMemory,
                   boolean generatingSubstrates,
                   chemaxon.marvin.modelling.util.ProgressMonitor progressMonitor)
            throws MetabolizerException
Parameters:
levelCount -
reactions -
runInMemory -
generatingSubstrates -
progressMonitor -
Throws:
MetabolizerException

Metabolizer

public Metabolizer(int levelCount,
                   RxnMolecule[] reactions,
                   java.lang.String termCondition,
                   MetabolizerTemporaryStorage temporaryStorage)
            throws MetabolizerException
Parameters:
levelCount -
reactions -
termCondition -
temporaryStorage -
Throws:
MetabolizerException

Metabolizer

public Metabolizer(int levelCount,
                   RxnMolecule[] reactions,
                   java.lang.String termCondition,
                   MetabolizerTemporaryStorage temporaryStorage,
                   chemaxon.marvin.modelling.util.ProgressMonitor progressMonitor)
            throws MetabolizerException
Parameters:
levelCount -
reactions -
termCondition -
temporaryStorage -
progressMonitor -
Throws:
MetabolizerException

Metabolizer

public Metabolizer(int levelCount,
                   RxnMolecule[] reactions,
                   MetabolizerTemporaryStorage temporaryStorage)
            throws MetabolizerException
Parameters:
levelCount -
reactions -
temporaryStorage -
Throws:
MetabolizerException

Metabolizer

public Metabolizer(int levelCount,
                   RxnMolecule[] reactions,
                   MetabolizerTemporaryStorage temporaryStorage,
                   chemaxon.marvin.modelling.util.ProgressMonitor progressMonitor)
            throws MetabolizerException
Parameters:
levelCount -
reactions -
temporaryStorage -
progressMonitor -
Throws:
MetabolizerException

Metabolizer

public Metabolizer(int levelCount,
                   RxnMolecule[] reactions,
                   java.lang.String termCondition,
                   boolean runInMemory)
            throws MetabolizerException
Parameters:
levelCount -
reactions -
termCondition -
runInMemory -
Throws:
MetabolizerException

Metabolizer

public Metabolizer(int levelCount,
                   RxnMolecule[] reactions,
                   java.lang.String termCondition,
                   boolean runInMemory,
                   chemaxon.marvin.modelling.util.ProgressMonitor progressMonitor)
            throws MetabolizerException
Parameters:
levelCount -
reactions -
termCondition -
runInMemory -
progressMonitor -
Throws:
MetabolizerException

Metabolizer

public Metabolizer(int levelCount,
                   RxnMolecule[] reactions,
                   boolean runInMemory)
            throws MetabolizerException
Parameters:
levelCount -
reactions -
runInMemory -
Throws:
MetabolizerException

Metabolizer

public Metabolizer(int levelCount,
                   RxnMolecule[] reactions,
                   boolean runInMemory,
                   chemaxon.marvin.modelling.util.ProgressMonitor progressMonitor)
            throws MetabolizerException
Parameters:
levelCount -
reactions -
runInMemory -
progressMonitor -
Throws:
MetabolizerException

Metabolizer

public Metabolizer(int levelCount,
                   boolean runInMemory)
Parameters:
levelCount -
runInMemory -

Metabolizer

public Metabolizer(int levelCount,
                   boolean runInMemory,
                   chemaxon.marvin.modelling.util.ProgressMonitor progressMonitor)
Parameters:
levelCount -
runInMemory -
progressMonitor -

Metabolizer

public Metabolizer(boolean runInMemory,
                   chemaxon.marvin.modelling.util.ProgressMonitor progressMonitor)
Parameters:
runInMemory -
progressMonitor -

Metabolizer

public Metabolizer(boolean runInMemory)
Parameters:
runInMemory -
Method Detail

setProgressMonitor

public void setProgressMonitor(chemaxon.marvin.modelling.util.ProgressMonitor progressMonitor)
Sets progress monitor

Parameters:
progressMonitor -

hasMoreLevel

public boolean hasMoreLevel()
Returns true if the iteration has more level

Returns:
boolean

isCurrentLevelEnded

public boolean isCurrentLevelEnded()
Returns true if the current level has more element to process

Returns:
boolean

next

public Molecule[] next()
                throws MetabolizerException
Returns the next element in the iteration or null if iteration's end reached before correctly calculated results

Returns:
the next element in the iteration or null
Throws:
MetabolizerException

nextLevel

public void nextLevel()
               throws MetabolizerException
Need to call after current level ended

Throws:
MetabolizerException

setReactions

public void setReactions(RxnMolecule[] reactions)
                  throws MetabolizerException
This method sets the biotransformation reactions

Parameters:
reactions -
Throws:
MetabolizerException

setSubstrates

public void setSubstrates(Molecule[] substrates)
                   throws MetabolizerException
This method can set the substrates if it is needed

Parameters:
substrates -
Throws:
MetabolizerException

getLevelCount

public int getLevelCount()
Returns levelCount

Returns:
levelCount

getLevelCounter

public int getLevelCounter()
Return current level's ordinal number

Returns:
current level's ordinal number

getSubstrateCounter

public int getSubstrateCounter()
Return currentSubstrate's ordinal number

Returns:
currentSubstrate's ordinal number

setLevelCount

public void setLevelCount(int levelCount)
Sets levelCount

Parameters:
levelCount -

getTermCondition

public java.lang.String getTermCondition()
Returns termination condition

Returns:
termCondition

setTermCondition

public void setTermCondition(java.lang.String termCondition)
                      throws MetabolizerException
Sets termination condition

Parameters:
termCondition -
Throws:
MetabolizerException

setRunInMemory

public void setRunInMemory(boolean runInMemory)
If runInMemory is true class will calculate in memory (can cause memory out of exception)

Parameters:
runInMemory -

isGeneratingSubstrates

public boolean isGeneratingSubstrates()
Return generatingSubstrates

Returns:
generatingSubstrates

setGeneratingSubstrates

public void setGeneratingSubstrates(boolean generatingSubstrates)
Set generatingSubstrates. If true substrates will be exported too.

Parameters:
generatingSubstrates -

setTemporaryStorage

public void setTemporaryStorage(MetabolizerTemporaryStorage temporaryStorage)
                         throws MetabolizerException
Sets temporaryStorage

Parameters:
temporaryStorage -
Throws:
MetabolizerException

closeTemporaryStorage

public void closeTemporaryStorage()
                           throws MetabolizerException
Closes temporary storage

Throws:
MetabolizerException

getCurrentLevelLength

public long getCurrentLevelLength()
                           throws MetabolizerException
Rerturns currentLevelLength

Returns:
currentLevelLength
Throws:
MetabolizerException

getMetabolicPathwayTolerance

public float getMetabolicPathwayTolerance()

setMetabolicPathwayTolerance

public void setMetabolicPathwayTolerance(float metabolicPathwayTolerance)

setExcludedMetabolites

public void setExcludedMetabolites(Molecule[] molecules)
Sets the excluded metabolites.

Parameters:
molecules - the excluded molecule array. If length equals 0 or the arrray is null exclude is denied else allowed.

setNeededMetabolites

public void setNeededMetabolites(Molecule[] molecules)
Sets the needed metabolites.

Parameters:
molecules - the needed molecule array. If length equals 0 or the arrray is null validating is denied else allowed.

ignoreSelectivity

public void ignoreSelectivity()

getNeededMetaboliteSmiles

public java.util.Set<java.lang.String> getNeededMetaboliteSmiles()

main

public static void main(java.lang.String[] args)
                 throws java.lang.Exception
Parameters:
args -
Throws:
java.lang.Exception

isLicensed

public boolean isLicensed()
Specified by:
isLicensed in interface chemaxon.license.Licensable

setLicenseEnvironment

public void setLicenseEnvironment(java.lang.String env)
Specified by:
setLicenseEnvironment in interface chemaxon.license.Licensable