Package chemaxon.standardizer
Class ConcurrentStandardizerProcessor
java.lang.Object
chemaxon.standardizer.ConcurrentStandardizerProcessor
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();
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic interface
Molecule transformer. -
Field Summary
Modifier and TypeFieldDescriptionstatic final ConcurrentStandardizerProcessor.MolTransformer
Transformer: sets the molecule dimension to 0. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionString[]
Returns the IDs of tasks applied to the last input molecule.int[]
Returns the indexes of tasks applied to the last input molecule.Returns the input molecule (the molecule before standardization).double
Estimates the progress.static void
Deprecated, for removal: This API element is subject to removal in a future version.Will be removed, no replacement.void
setMoleculeIterator
(MoleculeIterator iterator) Sets the molecule iterator.void
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 methodsgetAppliedTaskIDs()
,getAppliedTaskIndexes()
,getInputMolecule()
.void
setWorkerThreadCount
(int workerThreadCount) Sets the number of worker threads.Performs the standardization of the next input molecule, and returns the standardized molecule.
-
Field Details
-
TRANSFORMER_SET_DIM_0
Transformer: sets the molecule dimension to 0.
-
-
Constructor Details
-
ConcurrentStandardizerProcessor
public ConcurrentStandardizerProcessor()
-
-
Method Details
-
setStandardizer
Sets the standardizer that will be used for performing standardizations.- Parameters:
standardizer
- the standardizer
-
setMoleculeIterator
Sets the molecule iterator. The molecule iterator provides input molecules.- Parameters:
iterator
- the molecule iterator- See Also:
-
setWorkerThreadCount
public void setWorkerThreadCount(int workerThreadCount) Sets the number of worker threads.0
: worker thread count = number of available CPU cores
0
)- Parameters:
workerThreadCount
- number of worker threads
-
setPreprocessor
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
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:
IllegalArgumentException
- if standardizer or molecule iterator is not setRuntimeException
- if an error occurred during standardization and in the case of concurrent processing errorLicenseException
- if there is no valid license
-
getProgress
public double getProgress()Estimates the progress. Returns a number between0
and1
, 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 methodsgetAppliedTaskIDs()
,getAppliedTaskIndexes()
,getInputMolecule()
. Otherwise the listed methods throwNullPointerException
.- Parameters:
store
- iftrue
then applied task data is stored- See Also:
-
getInputMolecule
Returns the input molecule (the molecule before standardization).- Returns:
- the input molecule
- Throws:
NullPointerException
- ifsetStoreAppliedTaskData(boolean)
is not set- See Also:
-
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:
NullPointerException
- ifsetStoreAppliedTaskData(boolean)
is not set- See Also:
-
getAppliedTaskIDs
Returns the IDs of tasks applied to the last input molecule.- Returns:
- the IDs of tasks applied to the last input molecule
- Throws:
NullPointerException
- ifsetStoreAppliedTaskData(boolean)
is not set- See Also:
-
main
@SubjectToRemoval(date=JUL_01_2025) @Deprecated(forRemoval=true) public static void main(String[] args) throws Exception Deprecated, for removal: This API element is subject to removal in a future version.Will be removed, no replacement.Command line entry point.- Parameters:
args
- is the command line argument array- Throws:
Exception
- on error
-