Package chemaxon.marvin.calculations
Class RefractivityPlugin
- java.lang.Object
-
- chemaxon.marvin.plugin.CalculatorPlugin
-
- chemaxon.marvin.calculations.RefractivityPlugin
-
- All Implemented Interfaces:
chemaxon.license.Licensable
@PublicAPI public class RefractivityPlugin extends CalculatorPlugin
Plugin class for refractivity calculation. Both the incremental values for atoms and the overal refractivity value for the molecule can be calculated by this plugin.API usage example:
// read input molecule MolImporter mi = new MolImporter("test.mol"); Molecule mol = mi.read(); mi.close(); // create plugin RefractivityPlugin plugin = new RefractivityPlugin(); // set double precision for string conversion (optional) plugin.setDoublePrecision(3); // set target molecule plugin.setMolecule(mol); // run the calculation plugin.run(); // get molecular refractivity double refractivity = plugin.getRefractivity(); System.out.println("molecular refractivity: "+plugin.format(refractivity)); // get refractivity increments values for each atom String str = ""; int count = mol.getAtomCount(); for (int i=0; i < count; ++i) { double increment = plugin.getRefractivityIncrement(i); str += plugin.format(increment); str += ";"; } System.out.println("refractivity increments for atoms: "+str);
For concurrent plugin example applications using ChemAxon's concurrent framework, refer to the Concurrent plugin examples.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class chemaxon.marvin.plugin.CalculatorPlugin
CalculatorPlugin.HydrogenData
-
-
Field Summary
-
Fields inherited from class chemaxon.marvin.plugin.CalculatorPlugin
ATOM, BLUE, CALCRGB_OFF, COVALENT_HYDRATION_ERROR_REMARK, CRITICAL_ERROR_MSG, EPSILON, explicitHydrogens, INCORRECT_AROMATIC_NITROGEN_REMARK, INSTABLE_TAUTOMERIC_FORM_REMARK, KEEP_HYDROGENS, keepHydrogens, licenseEnvironment, MOLECULE, MOLECULES, NAN, PLUGIN_CLASS_KEY, PLUGIN_DIR, RED, TRUE
-
-
Constructor Summary
Constructors Constructor Description RefractivityPlugin()
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
checkMolecule(Molecule mol)
Checks the input molecule.String
getErrorMessage()
Returns the calculation error information message ifrun()
returned false (calculation error): hydrogen valence error.String
getProductName()
Returns the product identifier of the plugin as given byLicenseManager
.double
getRefractivity()
Returns the refractivity value.double
getRefractivityHIncrement(int index)
Returns the refractivity increment on the H atoms attached to a given atom.double
getRefractivityIncrement(int index)
Returns the refractivity increment for a given atom.Object
getResult(Object type, int index)
Returns the result item for the specified key and index.String
getResultAsString(Object type, int index, Object result)
Returns the specified result in String format.int
getResultCount(Object type)
Returns the number of result items for the given result key.int
getResultDomain(Object type)
Returns the calculation domainCalculatorPlugin.ATOM
orCalculatorPlugin.MOLECULE
.Molecule
getResultMolecule()
Returns the result molecule for display.Object[]
getResultTypes()
Returns the result types.String
getTypeString(Object type)
Returns a string representation of the given type.boolean
run()
Runs the refractivity calculation.protected void
setInputMolecule(Molecule mol)
Sets the input molecule.void
setParameters(Properties params)
Sets the input parameters for the plugin.void
standardize(Molecule mol)
Standardizes the molecule.-
Methods inherited from class chemaxon.marvin.plugin.CalculatorPlugin
addHeavyAtomLimitChecker, addInputChecker, arrangeHydrogenIncerments, canRepeat, checkLicense, checkType, containsCoordinateBond, containsMulticenterSgroup, containsPseudoAtom, containsSRUSgroup, create, createModifiedInputMolecule, createStandardizedMolecule, createStandardizedMolecule, dehydrogenize, format, format, format, format, getAtomCount, getAtomIndex, getAtomIndexMap, getCalcMolecule, getDisplayMolecule, getDocument, getDoublePrecision, getExplicitHydrogenData, getInputMolDim, getMainMolecule, getOriginalMolecule, getpH, getPluginResource, getQueryMoleculeErrorMessage, getRemark, getResult, getResult, getResult, getResultAsRGB, getResultAsRGB, getResultAsString, getResultCount, getResultDomain, getResultMessage, getResultMolecules, getResultsAsRGB, getResultsAsRGB, getResultsAsString, getResultsAsString, getResultSource, getWarningMessage, handlesMultiFragmentMolecules, isInputMoleculeAromatized, isLicensed, isMsCalc, isMultiThreadedRunEnabled, isNegligibleResult, isOK, isRgrouped, loadClass, readAttribute, removeWhitespace, restoreExplicitHydrogens, setAtomIndexMap, setDoublePrecision, setDoublePrecision, setDoublePrecision, setKeepHydrogens, setLicenseEnvironment, setMolecule, setMolecule, setMolecule, setMolecule, setProgressMonitor, standardizeIonicGroups, standardizeNeutralGroups
-
-
-
-
Method Detail
-
getProductName
public String getProductName()
Returns the product identifier of the plugin as given byLicenseManager
.- Specified by:
getProductName
in classCalculatorPlugin
- Returns:
- The identifier
LicenseManager.REFRACTIVITY_PLUGIN
-
setParameters
public void setParameters(Properties params) throws PluginException
Sets the input parameters for the plugin. Refractivity parameters and value ranges:- precision: 0-8 or inf (number of displayed fractional digits, inf for unrounded value)
- type: increments,refractivity
- h: true or false (display increments on H atoms)
- Overrides:
setParameters
in classCalculatorPlugin
- Parameters:
params
- is the parameter table- Throws:
PluginException
- on error
-
checkMolecule
public void checkMolecule(Molecule mol) throws PluginException
Checks the input molecule. Throws exception if the molecule isRxnMolecule
, if the molecule contains R-groups or if the molecule consists of more than one fragments.- Overrides:
checkMolecule
in classCalculatorPlugin
- Parameters:
mol
- is the input molecule- Throws:
PluginException
- with error message for the user if the molecule is refused
-
setInputMolecule
protected void setInputMolecule(Molecule mol) throws PluginException
Sets the input molecule.- Specified by:
setInputMolecule
in classCalculatorPlugin
- Parameters:
mol
- is the (standardized) input molecule- Throws:
PluginException
- on error
-
run
public boolean run() throws PluginException
Runs the refractivity calculation.- Specified by:
run
in classCalculatorPlugin
- Returns:
- true if the calculation was successful, false on calculation problems
- Throws:
PluginException
- on error- See Also:
CalculatorPlugin.getErrorMessage()
-
getErrorMessage
public String getErrorMessage()
Returns the calculation error information message ifrun()
returned false (calculation error): hydrogen valence error.- Overrides:
getErrorMessage
in classCalculatorPlugin
- Returns:
- the calculation error information message
-
getRefractivity
public double getRefractivity()
Returns the refractivity value. The refractivity calculation should be run beforehand byrun()
.- Returns:
- the refractivity value
-
getRefractivityIncrement
public double getRefractivityIncrement(int index)
Returns the refractivity increment for a given atom. The refractivity calculation should be run beforehand byrun()
.- Parameters:
index
- is the atom index- Returns:
- the refractivity increment for a given atom
-
getRefractivityHIncrement
public double getRefractivityHIncrement(int index)
Returns the refractivity increment on the H atoms attached to a given atom. The refractivity calculation should be run beforehand byrun()
.- Parameters:
index
- is the atom index- Returns:
- the refractivity increment on the H atoms attached to a given atom
-
getResultTypes
public Object[] getResultTypes()
Returns the result types. Possible result types: refractivity,increments,inch- Overrides:
getResultTypes
in classCalculatorPlugin
- Returns:
- the result types
-
getTypeString
public String getTypeString(Object type)
Returns a string representation of the given type.- Overrides:
getTypeString
in classCalculatorPlugin
- Parameters:
type
- is the type object- Returns:
- the type string
-
getResultDomain
public int getResultDomain(Object type)
Returns the calculation domainCalculatorPlugin.ATOM
orCalculatorPlugin.MOLECULE
. ReturnsCalculatorPlugin.ATOM
for type "increments" or "inch" andCalculatorPlugin.MOLECULE
otherwise.- Overrides:
getResultDomain
in classCalculatorPlugin
- Parameters:
type
- is the result type- Returns:
CalculatorPlugin.MOLECULE
orCalculatorPlugin.ATOM
- See Also:
getResultTypes()
-
getResultCount
public int getResultCount(Object type)
Returns the number of result items for the given result key. Refractivity returns the atom count for types "increments" and "inch"1
otherwise.- Overrides:
getResultCount
in classCalculatorPlugin
- Parameters:
type
- is the result type- Returns:
- the number of result items
- See Also:
getResultTypes()
-
getResult
public Object getResult(Object type, int index) throws PluginException
Returns the result item for the specified key and index. Refractivity returns the required refractivity value or atomic increment as a Double object.- Overrides:
getResult
in classCalculatorPlugin
- Parameters:
type
- is the result typeindex
- is the result index- Returns:
- the result item for the specified key and index
- Throws:
PluginException
- if the result cannot be returned- See Also:
getResultTypes()
-
getResultAsString
public String getResultAsString(Object type, int index, Object result) throws PluginException
Returns the specified result in String format. Refractivity returns the rounded refractivity value in string format: the value is rounded using the 'precision' input parameter that determines the number of fractional digits displayed.- Overrides:
getResultAsString
in classCalculatorPlugin
- Parameters:
type
- is the result typeindex
- is the result indexresult
- is the result item- Returns:
- the specified result in String format
- Throws:
PluginException
- if an invalid result item is given
-
getResultMolecule
public Molecule getResultMolecule() throws PluginException
Returns the result molecule for display. Atomic results are stored in atom extra labels (MolAtom.getExtraLabel()
). Molecular results are stored in molecule properties with keys being the result types (Molecule.getProperty(String)
).- Overrides:
getResultMolecule
in classCalculatorPlugin
- Returns:
- the result molecule
- Throws:
PluginException
- on error- Since:
- Marvin 4.0
-
standardize
public void standardize(Molecule mol)
Standardizes the molecule. This is done by performing the transformations necessary to run the plugin (e.g. aromatize, dehydrogenize, bring nitro groups to common form). Apart from the default standardization (aromatize and nitro) removes explicit hydrogens. TODO: replace by call to chemaxon.standardizer.Standardizer- Overrides:
standardize
in classCalculatorPlugin
- Parameters:
mol
- is the molecule to be standardized
-
-