chemaxon.reaction
Class ConcurrentStandardizerProcessor

java.lang.Object
  extended by chemaxon.reaction.ConcurrentStandardizerProcessor

public class ConcurrentStandardizerProcessor
extends java.lang.Object

Performs standardization of molecules in concurrent mode. It requires a Standardizer object, which is used for performing the standardizations, and a MoleculeIterator, for providing input molecules.

This class can be used from command-line or from the API.
See also the Standardizer documentation:

API usage example:

 MolExporter exporter = new MolExporter(System.out, "sdf");
 MolImporter importer = new MolImporter("mols.sdf");

 // create Standardizer with XML configuration file
 Standardizer standardizer = new Standardizer(new File("config.xml"));

 // create a ConcurrentStandardizerProcessor
 ConcurrentStandardizerProcessor csp = new ConcurrentStandardizerProcessor();

 // set the standardizer and the molecule iterator for ConcurrentStandardizerProcessor
 csp.setStandardizer(standardizer);
 csp.setMoleculeIterator(importer.getMoleculeIterator());

 Molecule mol;

 // standardize the molecules and export the output (standardization is performed in concurrent mode)
 while ((mol = csp.standardize()) != null) {
     exporter.write(mol);
 }

 importer.close();
 exporter.close();
 

Since:
JChem 5.2
Version:
JChem 5.6, 06/21/2011
Author:
Zsolt Mohacsi

Field Summary
static int PREPROCESS_SET_DIM_0
          Deprecated.  
static chemaxon.util.MolTransformer TRANSFORMER_SET_DIM_0
          Transformer: sets the molecule dimension to 0.
 
Constructor Summary
ConcurrentStandardizerProcessor()
           
 
Method Summary
 java.lang.String[] getAppliedTaskIDs()
          Returns the IDs of tasks applied to the last input molecule.
 int[] getAppliedTaskIndexes()
          Returns the indexes of tasks applied to the last input molecule.
 Molecule getInputMolecule()
          Returns the input molecule (the molecule before standardization).
 double getProgress()
          Estimates the progress.
static void main(java.lang.String[] args)
          Command line entry point.
 void setMoleculeIterator(MoleculeIterator iterator)
          Sets the molecule iterator.
 void setPreprocessing(int f)
          Deprecated. Use setPreprocessor(MolTransformer)
 void setPreprocessor(chemaxon.util.MolTransformer tr)
          Sets the preprocessor.
 void setStandardizer(Standardizer standardizer)
          Sets the standardizer that will be used for performing standardizations.
 void setStoreAppliedTaskData(boolean store)
          If set, then applied task data is stored and can be retrieved with methods getAppliedTaskIDs(), getAppliedTaskIndexes(), getInputMolecule().
 void setWorkerThreadCount(int workerThreadCount)
          Sets the number of worker threads.
 Molecule standardize()
          Performs the standardization of the next input molecule, and returns the standardized molecule.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PREPROCESS_SET_DIM_0

public static final int PREPROCESS_SET_DIM_0
Deprecated. 
Preprocessing: sets the molecule dimension to 0.

See Also:
Constant Field Values

TRANSFORMER_SET_DIM_0

public static final chemaxon.util.MolTransformer TRANSFORMER_SET_DIM_0
Transformer: sets the molecule dimension to 0.

Constructor Detail

ConcurrentStandardizerProcessor

public ConcurrentStandardizerProcessor()
Method Detail

setStandardizer

public void setStandardizer(Standardizer standardizer)
Sets the standardizer that will be used for performing standardizations.

Parameters:
standardizer - the standardizer

setMoleculeIterator

public void setMoleculeIterator(MoleculeIterator iterator)
Sets the molecule iterator. The molecule iterator provides input molecules.

Parameters:
iterator - the molecule iterator
See Also:
MoleculeIteratorFactory

setWorkerThreadCount

public void setWorkerThreadCount(int workerThreadCount)
Sets the number of worker threads. (default: 0)

Parameters:
workerThreadCount - number of worker threads

setPreprocessing

public void setPreprocessing(int f)
Deprecated. Use setPreprocessor(MolTransformer)

Sets the preprocessing actions. The preprocessing modifies the input molecule. Preprocessing is performed before standardization. For internal use only.

Parameters:
f - flags specifying the preprocessing actions

Available preprocessing flags:

Since:
JChem 5.2.1

setPreprocessor

public void setPreprocessor(chemaxon.util.MolTransformer tr)
Sets the preprocessor. Preprocessor transforms the input molecule. Preprocessing is performed before standardization. For internal use only.

Parameters:
tr - the preprocessor
Since:
JChem 5.3

standardize

public Molecule standardize()
                     throws StandardizerException
Performs the standardization of the next input molecule, and returns the standardized molecule. The input molecule is transformed and returned, no new molecule object is created. If the input molecule is a reaction then each reactant/product is standardized.

Returns:
the input molecule, standardized; null if there are no more input molecules
Throws:
StandardizerException - if standardizer or molecule iterator is not set, an error occurred during standardization, or in case of concurrent processing error
chemaxon.license.LicenseException - if there is no valid license

getProgress

public double getProgress()
Estimates the progress. Returns a number between 0 and 1, or returns -1. 0: none of the input molecules are standardized, 1: all of the input molecules are standardized, -1: information about progress can not be provided.

Returns:
a number that indicates the progress

setStoreAppliedTaskData

public void setStoreAppliedTaskData(boolean store)
If set, then applied task data is stored and can be retrieved with methods getAppliedTaskIDs(), getAppliedTaskIndexes(), getInputMolecule(). Otherwise the listed methods throw NullPointerException.

Parameters:
store - if true then applied task data is stored
See Also:
getAppliedTaskIndexes(), getAppliedTaskIDs(), getInputMolecule()

getInputMolecule

public Molecule getInputMolecule()
Returns the input molecule (the molecule before standardization).

Returns:
the input molecule
Throws:
java.lang.NullPointerException - if setStoreAppliedTaskData(boolean) is not set
See Also:
setStoreAppliedTaskData(boolean)

getAppliedTaskIndexes

public int[] getAppliedTaskIndexes()
Returns the indexes of tasks applied to the last input molecule. Indexing is 0-based, with the largest index which equals to the number of tasks meaning the final clean action.

Returns:
the indexes of tasks applied to the last input molecule
Throws:
java.lang.NullPointerException - if setStoreAppliedTaskData(boolean) is not set
See Also:
setStoreAppliedTaskData(boolean)

getAppliedTaskIDs

public java.lang.String[] getAppliedTaskIDs()
Returns the IDs of tasks applied to the last input molecule. The ID Standardizer.FINAL_CLEAN_ID corresponds to the final clean action.

Returns:
the IDs of tasks applied to the last input molecule
Throws:
java.lang.NullPointerException - if setStoreAppliedTaskData(boolean) is not set
See Also:
setStoreAppliedTaskData(boolean)

main

public static void main(java.lang.String[] args)
                 throws java.lang.Exception
Command line entry point.

Parameters:
args - is the command line argument array
Throws:
java.lang.Exception - on error