Package chemaxon.marvin.calculations
Class GeometryPlugin
- java.lang.Object
-
- chemaxon.marvin.plugin.CalculatorPlugin
-
- chemaxon.marvin.calculations.GeometryPlugin
-
- All Implemented Interfaces:
chemaxon.license.Licensable
@PublicAPI public class GeometryPlugin extends CalculatorPlugin
Plugin class for geometric properties calculations. Data types:- "dreidingenergy"
- "distance"
- "angle"
- "dihedral"
- "hindrance",
- "minimalprojectionarea"
- "maximalprojectionarea"
- "minimalprojectionradius"
- "maximalprojectionradius"
- "volume",
- "minz",
- "maxz",
API usage example:
// read input molecule MolImporter mi = new MolImporter("test.mol"); Molecule mol = mi.read(); mi.close(); // create plugin GeometryPlugin plugin = new GeometryPlugin(); // set target molecule plugin.setMolecule(mol); // set parameters for calculation plugin.setCalculateForLEConformer("if2D"); plugin.setCalculateEnergy(true); // sets the energy calculation plugin.setCalculateMoleculeProjections(true); // sets the calculation of molecule projections // run the calculation plugin.run(); // get results double energy = plugin.getDreidingEnergy(); double distance = plugin.getDistance(2,4); double angle = plugin.getAngle(4,2,6); int[] atoms = { 2, 1, 4, 6 }; double dihedral = plugin.getDihedral(atoms); double hindrance = plugin.getStericHindrance(5); // steric hindrance of 5th atom double minimalProjectionArea = plugin.getMinimalProjectionArea(); double maximalProjectionArea = plugin.getMaximalProjectionArea(); double minimalProjectionRadius = plugin.getMinimalProjectionRadius(); double maximalProjectionRadius = plugin.getMaximalProjectionRadius(); // do something with the results ...
For concurrent plugin example applications using ChemAxon's concurrent framework, refer to the Concurrent plugin examples.
- Since:
- Marvin 4.1 02/21/2006
-
-
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 GeometryPlugin()
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
checkMolecule(Molecule mol)
Checks the input molecule.double
getAngle(int[] atoms)
Returns the angle of 3 atoms.double
getAngle(int atom1, int atom2, int atom3)
Returns the angle of 3 atoms.double
getDihedral(int[] atoms)
Returns the dihedral of 4 atoms.double
getDihedral(int atom1, int atom2, int atom3, int atom4)
Returns the dihedral of 4 atoms.double
getDistance(int[] atoms)
Returns the distance of 2 atoms.double
getDistance(int atom1, int atom2)
Returns the distance of 2 atoms.double
getDreidingEnergy()
Returns the energy of the conformer.int[]
getHBond(int bondIndex)
Returns a hydrogen bond.int
getHBondCount()
Returns the number of intramolecular hydrogen bonds.Molecule
getLowestEnergyConformer()
Returns the lowest energy conformer of the molecule.double
getMaximalProjectionArea()
Returns the maximal projection area in Angstrom^2.double
getMaximalProjectionRadius()
Returns the radius of the circle surrounding the maximal projection in Angstrom.double
getMaxZ()
double
getMinimalProjectionArea()
Returns the minimal projection area in Angstrom^2.double
getMinimalProjectionRadius()
Returns the radius of the circle surrounding the minimal projection in Angstrom.double
getMinZ()
double
getMMFF94Energy()
Returns the MMFF94 energy of the structure (default: kcal/mol).String
getProductName()
Returns the product identifier of the plugin as given byLicenseManager
.String
getRemark()
Returns the calculation remark: if no results (no result types) then returns remark, otherwise returnsnull
.Object
getResult(Object type, int index)
Returns the result item for the specified key and index.Object
getResult(Object type, String arg)
Returns the distance, angle or dihedral of 2, 3 or 4 atoms if type is set to "distance", "angle" or "diheral".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.Molecule[]
getResultMolecules()
Returns the result molecules, molecular results are set in the first molecule, atomic results are set in subsequent molecules as atom labels.Object[]
getResultTypes()
Returns the result types.double
getStericHindrance(int atom)
Calculates hindrance of an atom from covalent radii values and distances.String
getTypeString(Object type)
Returns a string representation of the given type.double
getVolume()
String
getWarningMessage()
Returns a warning message if lowest energy conformer calculation was unsuccessful or aborted by user,null
otherwise.boolean
handlesMultiFragmentMolecules()
Returnstrue
if the plugin handles multifragment molecules,false
otherwise.boolean
isMultiThreadedRunEnabled()
For internal use only.boolean
run()
Runs the tool.void
setCalculateEnergy(boolean e)
Sets the calculation of dreiding energy.void
setCalculateForLEConformer(String condition)
Sets the condition for lowest energy conformer calculation before geometry calculations are processed.void
setCalculateMMFF94Energy(boolean mmffe)
Sets the calculation of MMFF94 energy.void
setCalculateMoleculeProjections(boolean c)
Sets the calculation of molecule projections.void
setCalculateVolume(boolean calculateVolume)
protected void
setInputMolecule(Molecule mol)
Sets the input molecule.void
setLicenseEnvironment(String env)
Sets license environment to be stored.void
setMMFF94Optimization(boolean opt)
Sets MMFF94 optimization.void
setOptimization(int opt)
Sets the optimization criteria for lowest energy conformer calculation.void
setOptimizeProjection(boolean optimize)
void
setParameters(Properties params)
Sets the input parameters for the plugin.void
setProgressMonitor(MProgressMonitor pmon)
Sets a progress observer to be used to display progress status.void
standardize(Molecule mol)
Expands sgroups.-
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, getErrorMessage, getExplicitHydrogenData, getInputMolDim, getMainMolecule, getOriginalMolecule, getpH, getPluginResource, getQueryMoleculeErrorMessage, getResult, getResult, getResultAsRGB, getResultAsRGB, getResultAsString, getResultCount, getResultDomain, getResultMessage, getResultsAsRGB, getResultsAsRGB, getResultsAsString, getResultsAsString, getResultSource, isInputMoleculeAromatized, isLicensed, isMsCalc, isNegligibleResult, isOK, isRgrouped, loadClass, readAttribute, removeWhitespace, restoreExplicitHydrogens, setAtomIndexMap, setDoublePrecision, setDoublePrecision, setDoublePrecision, setKeepHydrogens, setMolecule, setMolecule, setMolecule, setMolecule, 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.GEOMETRY_PLUGIN_GROUP
-
setParameters
public void setParameters(Properties params) throws PluginException
Sets the input parameters for the plugin. Parameters:- type: result types, separated by ',', possible values:
- "dreidingenergy",
- "mmff94energy",
- "distance" (atomic)
- "angle" (atomic)
- "dihedral" (atomic)
- "hindrance" (atomic)
- "minimalprojectionarea"
- "maximalprojectionarea"
- "minimalprojectionradius"
- "maximalprojectionradius"
- "volume",
- "minz",
- "maxz",
- atoms: <atom1-...-atomn> valid for
type="distance"
(n=2),"angle"
(n=3) and"dihedral"
(n=4) calculations only, sets the atoms used bycxcalc
, for internal use only; API usage: callgetDistance(int,int)
orgetDistance(int[])
. - optimizeprojection: [true|false] sets projection optimization (default: false)
- Overrides:
setParameters
in classCalculatorPlugin
- Parameters:
params
- is the parameter table- Throws:
PluginException
- on error
- type: result types, separated by ',', possible values:
-
setProgressMonitor
public void setProgressMonitor(MProgressMonitor pmon)
Sets a progress observer to be used to display progress status. Short calculations may ignore the observer object. The default implementation does nothing.- Overrides:
setProgressMonitor
in classCalculatorPlugin
- Parameters:
pmon
- is the progress observer object, may benull
-
setCalculateVolume
public void setCalculateVolume(boolean calculateVolume)
-
handlesMultiFragmentMolecules
public boolean handlesMultiFragmentMolecules()
Returnstrue
if the plugin handles multifragment molecules,false
otherwise. In the latter case the plugin takes the fragment with more atoms if a multifragment molecule is given as input.- Overrides:
handlesMultiFragmentMolecules
in classCalculatorPlugin
- Returns:
- true if the plugin handles multifragment molecules, false otherwise
-
checkMolecule
public void checkMolecule(Molecule mol) throws PluginException
Checks the input molecule. Throws exception if the molecule isRxnMolecule
or if the molecule contains R-groups.- 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 input molecule- Throws:
PluginException
- on error
-
setCalculateEnergy
public void setCalculateEnergy(boolean e)
Sets the calculation of dreiding energy.- Parameters:
e
- iftrue
then dreiding energy is calculated
-
setCalculateMMFF94Energy
public void setCalculateMMFF94Energy(boolean mmffe)
Sets the calculation of MMFF94 energy.- Parameters:
mmffe
- iftrue
then MMFF94 energy is calculated- Since:
- Marvin 5.4
- See Also:
setMMFF94Optimization(boolean)
-
setMMFF94Optimization
public void setMMFF94Optimization(boolean opt)
Sets MMFF94 optimization.- Parameters:
opt
- iftrue
then MMFF94 optimization is performed- Since:
- Marvin 5.4
- See Also:
setCalculateMMFF94Energy(boolean)
-
setCalculateForLEConformer
public void setCalculateForLEConformer(String condition)
Sets the condition for lowest energy conformer calculation before geometry calculations are processed. Possible values:- "if2D" - if molecule is in 2D
- "never" - never, always use the input molecule for calculations
- "always" - always calculate with the lowest energy conformer
- Parameters:
condition
- is the condition for lowest energy conformer calculation
-
setOptimization
public void setOptimization(int opt)
Sets the optimization criteria for lowest energy conformer calculation.- Parameters:
opt
- is the optimization limit for the calculation
-
getLowestEnergyConformer
public Molecule getLowestEnergyConformer()
Returns the lowest energy conformer of the molecule.- Returns:
- the lowest energy conformer
-
setLicenseEnvironment
public void setLicenseEnvironment(String env)
Description copied from class:CalculatorPlugin
Sets license environment to be stored.- Specified by:
setLicenseEnvironment
in interfacechemaxon.license.Licensable
- Overrides:
setLicenseEnvironment
in classCalculatorPlugin
- Parameters:
env
- environment String to be stored and passed to the LicenseHandler in the isLicensed method
-
getDreidingEnergy
public double getDreidingEnergy()
Returns the energy of the conformer.- Returns:
- the energy of the conformer
-
getMMFF94Energy
public double getMMFF94Energy()
Returns the MMFF94 energy of the structure (default: kcal/mol).- Returns:
- the MMFF94 energy of the conformer
- Since:
- Marvin 5.4
-
getDistance
public double getDistance(int atom1, int atom2)
Returns the distance of 2 atoms.- Parameters:
atom1
- is the (0-based) index of the 1st atomatom2
- is the (0-based) index of the 2nd atom- Returns:
- the distance of 2 atoms
-
getDistance
public double getDistance(int[] atoms) throws PluginException
Returns the distance of 2 atoms.- Parameters:
atoms
- is the array containing (0-based) indexes of 2 atoms- Returns:
- the distance of 2 atoms
- Throws:
PluginException
- if atoms are not set properly
-
getAngle
public double getAngle(int atom1, int atom2, int atom3)
Returns the angle of 3 atoms.- Parameters:
atom1
- is the (0-based) index of the 1st atomatom2
- is the (0-based) index of the 2nd atomatom3
- is the (0-based) index of the 3rd atom- Returns:
- the angle of 3 atoms
-
getAngle
public double getAngle(int[] atoms) throws PluginException
Returns the angle of 3 atoms.- Parameters:
atoms
- is the array containing (0-based) indexes of 3 atoms- Returns:
- the angle of 3 atoms
- Throws:
PluginException
- if atoms are not set properly
-
getDihedral
public double getDihedral(int atom1, int atom2, int atom3, int atom4)
Returns the dihedral of 4 atoms.- Parameters:
atom1
- is the (0-based) index of the 1st atomatom2
- is the (0-based) index of the 2nd atomatom3
- is the (0-based) index of the 3rd atomatom4
- is the (0-based) index of the 4th atom- Returns:
- the dihedral of 4 atoms
-
getDihedral
public double getDihedral(int[] atoms) throws PluginException
Returns the dihedral of 4 atoms.- Parameters:
atoms
- is the array containing (0-based) indexes of 4 atoms- Returns:
- the dihedral of 4 atoms
- Throws:
PluginException
- if atoms are not set properly
-
getStericHindrance
public double getStericHindrance(int atom)
Calculates hindrance of an atom from covalent radii values and distances. The stericHindrance is related to the steric hindrance of the given atom.- Parameters:
atom
- index of the atom- Returns:
- the steric hindrance of the atom
-
setCalculateMoleculeProjections
public void setCalculateMoleculeProjections(boolean c)
Sets the calculation of molecule projections. Default:false
- Parameters:
c
- iftrue
then molecule projection calculations are run.- See Also:
getMinimalProjectionArea()
,getMaximalProjectionArea()
,getMinimalProjectionRadius()
,getMaximalProjectionRadius()
-
getMinimalProjectionArea
public double getMinimalProjectionArea()
Returns the minimal projection area in Angstrom^2.- Returns:
- the minimal projection area
- See Also:
setCalculateMoleculeProjections(boolean)
-
getMaximalProjectionArea
public double getMaximalProjectionArea()
Returns the maximal projection area in Angstrom^2.- Returns:
- the maximal projection area
- See Also:
setCalculateMoleculeProjections(boolean)
-
getMinimalProjectionRadius
public double getMinimalProjectionRadius()
Returns the radius of the circle surrounding the minimal projection in Angstrom.- Returns:
- the radius of the circle surrounding the minimal projection
- See Also:
setCalculateMoleculeProjections(boolean)
-
getMaximalProjectionRadius
public double getMaximalProjectionRadius()
Returns the radius of the circle surrounding the maximal projection in Angstrom.- Returns:
- the radius of the circle surrounding the maximal projection
- See Also:
setCalculateMoleculeProjections(boolean)
-
getVolume
public double getVolume()
-
setOptimizeProjection
public void setOptimizeProjection(boolean optimize)
-
getHBondCount
public int getHBondCount()
Returns the number of intramolecular hydrogen bonds.- Returns:
- the number of intramolecular hydrogen bonds
-
getHBond
public int[] getHBond(int bondIndex)
Returns a hydrogen bond.- Parameters:
bondIndex
- is the hydrogen bond index- Returns:
- the end-atom indexes of the hydrogen bond
in a 2-length
int[]
array
-
run
public boolean run() throws PluginException
Runs the tool.- Specified by:
run
in classCalculatorPlugin
- Returns:
- true if the calculation was successful, false if unsuccessful
- Throws:
PluginException
- on error- See Also:
CalculatorPlugin.getErrorMessage()
-
getResult
public Object getResult(Object type, int index) throws PluginException
Returns the result item for the specified key and index.- 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:
CalculatorPlugin.getResultTypes()
-
getMaxZ
public double getMaxZ()
-
getMinZ
public double getMinZ()
-
getResult
public Object getResult(Object type, String arg) throws PluginException
Returns the distance, angle or dihedral of 2, 3 or 4 atoms if type is set to "distance", "angle" or "diheral". For internal use only.- Overrides:
getResult
in classCalculatorPlugin
- Parameters:
type
- is the result type ("distance", "angle" or "dihedral")arg
- is the atom string as atom1-atom2 (e.g. "2-3")- Returns:
- the result item
- Throws:
PluginException
- on error- See Also:
CalculatorPlugin.getResultTypes()
-
getResultAsString
public String getResultAsString(Object type, int index, Object result) throws PluginException
Returns the specified result in String format.- 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
-
getResultCount
public int getResultCount(Object type)
Returns the number of result items for the given result key.- Overrides:
getResultCount
in classCalculatorPlugin
- Parameters:
type
- is the result type- Returns:
- the number of result items
- See Also:
getResultTypes()
-
getResultDomain
public int getResultDomain(Object type)
Returns the calculation domainCalculatorPlugin.ATOM
orCalculatorPlugin.MOLECULE
.- Overrides:
getResultDomain
in classCalculatorPlugin
- Parameters:
type
- is the result key- Returns:
- the calculation domain
- See Also:
getResultTypes()
-
getResultTypes
public Object[] getResultTypes()
Returns the result types. Possible result types:- "dreidingenergy",
- "mmff94energy",
- "distance" (atomic)
- "angle" (atomic)
- "dihedral" (atomic)
- "hindrance" (atomic)
- "minimalprojectionarea"
- "maximalprojectionarea"
- "minimalprojectionradius"
- "maximalprojectionradius"
- "volume",
- "minz",
- "maxz",
- 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
-
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
-
getResultMolecules
public Molecule[] getResultMolecules() throws PluginException
Returns the result molecules, molecular results are set in the first molecule, atomic results are set in subsequent molecules as atom labels.- Overrides:
getResultMolecules
in classCalculatorPlugin
- Returns:
- the result molecules
- Throws:
PluginException
- on error
-
getRemark
public String getRemark()
Returns the calculation remark: if no results (no result types) then returns remark, otherwise returnsnull
.- Overrides:
getRemark
in classCalculatorPlugin
- Returns:
- the calculation remark
-
getWarningMessage
public String getWarningMessage()
Returns a warning message if lowest energy conformer calculation was unsuccessful or aborted by user,null
otherwise.- Overrides:
getWarningMessage
in classCalculatorPlugin
- Returns:
- a warning message if conformer calculation aborted
-
isMultiThreadedRunEnabled
public boolean isMultiThreadedRunEnabled()
For internal use only.- Overrides:
isMultiThreadedRunEnabled
in classCalculatorPlugin
- Returns:
true
if multi-threaded run is enabled
-
standardize
public void standardize(Molecule mol)
Expands sgroups.- Overrides:
standardize
in classCalculatorPlugin
- Parameters:
mol
- is the molecule to be standardized
-
-