Package chemaxon.marvin.calculations
Class RefractivityPlugin
java.lang.Object
chemaxon.marvin.plugin.CalculatorPlugin
chemaxon.marvin.calculations.RefractivityPlugin
- All Implemented Interfaces:
TaggedCalculator,chemaxon.license.Licensable
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:
try (MolImporter mi = new MolImporter("test.mol")) {
// read input molecule
Molecule mol = mi.read();
// 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 -
Method Summary
Modifier and TypeMethodDescriptionvoidcheckMolecule(Molecule mol) Checks the input molecule.Returns the calculation error information message ifrun()returned false (calculation error): hydrogen valence error.Returns the product identifier of the plugin as given byLicenseManager.doubleReturns the refractivity value.doublegetRefractivityHIncrement(int index) Returns the refractivity increment on the H atoms attached to a given atom.doublegetRefractivityIncrement(int index) Returns the refractivity increment for a given atom.Returns the result item for the specified key and index.getResultAsString(Object type, int index, Object result) Returns the specified result in String format.intgetResultCount(Object type) Returns the number of result items for the given result key.intgetResultDomain(Object type) Returns the calculation domainCalculatorPlugin.ATOMorCalculatorPlugin.MOLECULE.Returns the result molecule for display.Object[]Returns the result types.getTypeString(Object type) Returns a string representation of the given type.booleanrun()Runs the refractivity calculation.protected voidsetInputMolecule(Molecule mol) Sets the input molecule.voidsetParameters(Properties params) Sets the input parameters for the plugin.voidstandardize(Molecule mol) Standardizes the molecule.Methods inherited from class chemaxon.marvin.plugin.CalculatorPlugin
addHeavyAtomLimitChecker, addInputChecker, arrangeHydrogenIncerments, canRepeat, checkLicense, checkType, containsCoordinateBond, containsMulticenterSgroup, containsPseudoAtom, containsSRUSgroup, create, create, createModifiedInputMolecule, createStandardizedMolecule, createStandardizedMolecule, dehydrogenize, format, format, format, format, getAtomCount, getAtomIndex, getAtomIndexMap, getAtomIndexMapping, 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, loadPluginClass, loadPluginClass, readAttribute, removeWhitespace, restoreExplicitHydrogens, setAtomIndexMap, setChemicalTermsArgument, setChemicalTermsParameters, setDoublePrecision, setDoublePrecision, setDoublePrecision, setKeepHydrogens, setLicenseEnvironment, setMolecule, setMolecule, setMolecule, setMolecule, setProgressMonitor, standardizeIonicGroupsMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface chemaxon.calculator.TaggedCalculator
tags
-
Constructor Details
-
RefractivityPlugin
public RefractivityPlugin()Constructor. Creates the refractivity calculator object.
-
-
Method Details
-
getProductName
Returns the product identifier of the plugin as given byLicenseManager.- Specified by:
getProductNamein classCalculatorPlugin- Returns:
- The identifier
LicenseManager.REFRACTIVITY_PLUGIN
-
setParameters
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:
setParametersin classCalculatorPlugin- Parameters:
params- is the parameter table- Throws:
PluginException- on error
-
checkMolecule
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:
checkMoleculein classCalculatorPlugin- Parameters:
mol- is the input molecule- Throws:
PluginException- with error message for the user if the molecule is refused
-
setInputMolecule
Sets the input molecule.- Specified by:
setInputMoleculein classCalculatorPlugin- Parameters:
mol- is the (standardized) input molecule- Throws:
PluginException- on error
-
run
Runs the refractivity calculation.- Specified by:
runin classCalculatorPlugin- Returns:
- true if the calculation was successful, false on calculation problems
- Throws:
PluginException- on error- See Also:
-
getErrorMessage
Returns the calculation error information message ifrun()returned false (calculation error): hydrogen valence error.- Overrides:
getErrorMessagein 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
Returns the result types. Possible result types: refractivity,increments,inch- Overrides:
getResultTypesin classCalculatorPlugin- Returns:
- the result types
-
getTypeString
Returns a string representation of the given type.- Overrides:
getTypeStringin classCalculatorPlugin- Parameters:
type- is the type object- Returns:
- the type string
-
getResultDomain
Returns the calculation domainCalculatorPlugin.ATOMorCalculatorPlugin.MOLECULE. ReturnsCalculatorPlugin.ATOMfor type "increments" or "inch" andCalculatorPlugin.MOLECULEotherwise.- Overrides:
getResultDomainin classCalculatorPlugin- Parameters:
type- is the result type- Returns:
CalculatorPlugin.MOLECULEorCalculatorPlugin.ATOM- See Also:
-
getResultCount
Returns the number of result items for the given result key. Refractivity returns the atom count for types "increments" and "inch"1otherwise.- Overrides:
getResultCountin classCalculatorPlugin- Parameters:
type- is the result type- Returns:
- the number of result items
- See Also:
-
getResult
Returns the result item for the specified key and index. Refractivity returns the required refractivity value or atomic increment as a Double object.- Overrides:
getResultin 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:
-
getResultAsString
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:
getResultAsStringin 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
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 (MPropHandler.convertToString(MPropertyContainer, String)).- Overrides:
getResultMoleculein classCalculatorPlugin- Returns:
- the result molecule
- Throws:
PluginException- on error- Since:
- Marvin 4.0
-
standardize
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:
standardizein classCalculatorPlugin- Parameters:
mol- is the molecule to be standardized
-