Package chemaxon.marvin.calculations
Class HuckelAnalysisPlugin
- java.lang.Object
-
- chemaxon.marvin.plugin.CalculatorPlugin
-
- chemaxon.marvin.calculations.MajorMicrospeciesAccessorPlugin
-
- chemaxon.marvin.calculations.HuckelAnalysisPlugin
-
- All Implemented Interfaces:
chemaxon.license.Licensable
@PublicAPI public class HuckelAnalysisPlugin extends MajorMicrospeciesAccessorPlugin
Plugin class for Huckel Analysis calculation.API usage example:
// create plugin HuckelAnalysisPlugin plugin = new HuckelAnalysisPlugin(); // read target molecule MolImporter mi = new MolImporter("target.mol"); Molecule mol = mi.read(); mi.close(); // set plugin parameters Properties params = new Properties(); params.put("type", "hmoorder,hmolocalizationEnergy,hmopiEnergy,hmoelectronDensity,hmochargeDensity"); plugin.setParameters(params); // optional: take major microspecies at pH=7.4 // skip this if you want to calculate Huckel analysis for the input molecule as it is plugin.setpH(7.4); // set target molecule plugin.setMolecule(mol); // run the calculation plugin.run(); // get results double piEnergy = plugin.getTotalPiEnergy(); System.out.println("pi energy: "+piEnergy); System.out.println(); // get and print atomic results in a table System.out.println("atom\torder E(+)\torder Nu(-)\tenergy E(+)\tenergy Nu(-)\telectron dens.\tcharge dens."); int count = mol.getAtomCount(); for (int i=0; i < count; ++i) { int orderE = plugin.getHMOElectrophilicOrder(i); int orderN = plugin.getHMONucleophilicOrder(i); double energyE = plugin.getHMOElectrophilicEnergy(i); double energyN = plugin.getHMONucleophilicEnergy(i); double electronDensity = plugin.getHMOElectronDensity(i); double chargeDensity = plugin.getHMOChargeDensity(i); String str = ""+(i+1); str += "\t"; str += (orderE != -1) ? ""+orderE : "-"; str += "\t"; str += (orderN != -1) ? ""+orderN : "-"; str += "\t"; str += !Double.isNaN(energyE) ? plugin.format(energyE) : "-"; str += "\t"; str += !Double.isNaN(energyN) ? plugin.format(energyN) : "-"; str += "\t"; str += !Double.isNaN(electronDensity) ? plugin.format(electronDensity) : "-"; str += "\t"; str += !Double.isNaN(chargeDensity) ? plugin.format(chargeDensity) : "-"; System.out.println(str); }
For concurrent plugin example applications using ChemAxon's concurrent framework, refer to the Concurrent plugin examples.
- Since:
- Marvin 3.4
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class chemaxon.marvin.plugin.CalculatorPlugin
CalculatorPlugin.HydrogenData
-
-
Field Summary
-
Fields inherited from class chemaxon.marvin.calculations.MajorMicrospeciesAccessorPlugin
ionizer
-
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 HuckelAnalysisPlugin()
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description double
getChargeDensity(int atom)
Returns the total charge density of an atom calculated with HMO,Double.NaN
for no value.double[][]
getEigenVector()
Deprecated.double
getElectronDensity(int atom)
Returns the electron density of an atom calculated with HMO,Double.NaN
for no value.double
getElectrophilicEnergy(int atom)
Returns the electrophilic energy (localization energy L+) of an atom,Double.NaN
for no value.int
getElectrophilicOrder(int atom)
Deprecated.String
getErrorMessage()
Returns the calculation error information message ifrun()
returned false (calculation error): hydrogen valence error.double
getHMOChargeDensity(int atom)
Returns the total charge density of an atom calculated with HMO,Double.NaN
for no value.double[][]
getHMOEigenVector()
Returns the eigenvector.double
getHMOElectronDensity(int atom)
Returns the electron density of an atom calculated with HMO,Double.NaN
for no value.double
getHMOElectrophilicEnergy(int atom)
Returns the electrophilic energy (localization energy L+) of an atom,Double.NaN
for no value.int
getHMOElectrophilicOrder(int atom)
Returns the electrophilic order of an atom,-1
for no value.double[][]
getHMOHuckelOrbitalCoefficients()
Returns the huckel orbital coefficients.double
getHMONucleophilicEnergy(int atom)
Returns the nucleophilic energy (localization energy L-) of an atom,Double.NaN
for no value.int
getHMONucleophilicOrder(int atom)
Returns the nucleophilic order of an atom,-1
for no value.double[]
getHMORealEigenValue()
Returns the real part of the eigenvalue.double
getHMOTotalPiEnergy()
Returns the total pi energy of the input molecule.double[][]
getHuckelOrbitalCoefficients()
Deprecated.double
getNucleophilicEnergy(int atom)
Returns the nucleophilic energy (localization energy L-) of an atom,Double.NaN
for no value.int
getNucleophilicOrder(int atom)
Deprecated.String
getProductName()
Returns the product identifier of the plugin as given byLicenseManager
.double[]
getRealEigenValue()
Deprecated.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.long
getResultsAsRGB(Object type, int index, Object result)
Returns the specified result color(s) as int format (alpha<<24 + red<<16 + green<<8 + blue).String
getResultsAsString(Object type, int index, Object result)
Returns the specified results in String format.Object[]
getResultTypes()
Returns the result types.double
getTotalPiEnergy()
Deprecated.String
getTypeString(Object type)
Returns a string representation of the given type.String
getWarningMessage()
Returns the calculation warning information message.boolean
isLicensed()
Returnstrue
if the plugin is licensed.boolean
run()
Runs the Huckel analysis calculation.protected void
setInputMolecule(Molecule mol)
Sets the input molecule.void
setParameters(Properties params)
Sets the input parameters for the plugin.-
Methods inherited from class chemaxon.marvin.calculations.MajorMicrospeciesAccessorPlugin
checkMolecule, createModifiedInputMolecule, getIonizerErrorMessage, getpH, setpH, standardize
-
Methods inherited from class chemaxon.marvin.plugin.CalculatorPlugin
arrangeHydrogenIncerments, canRepeat, checkLicense, checkType, containsCoordinateBond, containsMulticenterSgroup, containsPseudoAtom, containsSRUSgroup, create, createStandardizedMolecule, createStandardizedMolecule, dehydrogenize, format, format, format, format, getAtomCount, getAtomIndex, getAtomIndexMap, getCalcMolecule, getDisplayMolecule, getDocument, getDoublePrecision, getExplicitHydrogenData, getInputMolDim, getMainMolecule, getOriginalMolecule, getPluginResource, getQueryMoleculeErrorMessage, getRemark, getResult, getResult, getResult, getResultAsRGB, getResultAsRGB, getResultAsString, getResultCount, getResultDomain, getResultMessage, getResultMolecules, getResultsAsRGB, getResultsAsString, getResultSource, handlesMultiFragmentMolecules, isInputMoleculeAromatized, isMsCalc, isMultiThreadedRunEnabled, isNegligibleResult, isOK, isRgrouped, loadClass, readAttribute, removeWhitespace, restoreExplicitHydrogens, setAtomIndexMap, setDoublePrecision, setDoublePrecision, setDoublePrecision, setKeepHydrogens, setLicenseEnvironment, setMolecule, setMolecule, setMolecule, setMolecule, setProgressMonitor, standardizeIonicGroups, standardizeNeutralGroups
-
-
-
-
Method Detail
-
isLicensed
public boolean isLicensed()
Returnstrue
if the plugin is licensed. The license checking is based on the product name, returned bygetProductName()
.- Specified by:
isLicensed
in interfacechemaxon.license.Licensable
- Overrides:
isLicensed
in classMajorMicrospeciesAccessorPlugin
- Returns:
true
if the plugin is licensed
-
getProductName
public String getProductName()
Returns the product identifier of the plugin as given byLicenseManager
.- Specified by:
getProductName
in classCalculatorPlugin
- Returns:
- The identifier
LicenseManager.HUCKEL_ANALYSIS_PLUGIN
-
setParameters
public void setParameters(Properties params) throws PluginException
Sets the input parameters for the plugin. Huckel analysis and value ranges:- type:
- hmoorder: Aromatic E(+)/Nu(-) order
- hmoorder:e: Aromatic E(+) order
- hmoorder:n: Aromatic Nu(-) order
- hmolocalizationEnergy: Localization energy L(+)/L(-)
- hmolocalizationEnergy:e: Localization energy L(+)
- hmolocalizationEnergy:n: Localization energy L(-)
- hmopiEnergy: Pi energy
- hmoeigenValue: eigenvalue
- hmoeigenVector: eigenvector
- hmoorbitals: huckel orbital coefficients
- hmoelectronDensity: electron density
- hmochargeDensity: charge density
- order: Aromatic E(+)/Nu(-) order
- order:e: Aromatic E(+) order
- order:n: Aromatic Nu(-) order
- localizationEnergy: Localization energy L(+)/L(-)
- localizationEnergy:e: Localization energy L(+)
- localizationEnergy:n: Localization energy L(-)
- piEnergy: Pi energy
- eigenValue: eigenvalue
- eigenVector: eigenvector
- orbitals: huckel orbital coefficients
- electronDensity: electron density
- chargeDensity: charge density
- precision: 0-8 or inf (default: 2) (number of displayed fractional digits, inf for unrounded value)
Types starting with "hmo" are calculated using standard HMO parameters.
- Overrides:
setParameters
in classMajorMicrospeciesAccessorPlugin
- Parameters:
params
- is the parameter table- Throws:
PluginException
- on error
- type:
-
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
-
run
public boolean run() throws PluginException
Runs the Huckel analysis calculation.- Specified by:
run
in classCalculatorPlugin
- Returns:
- true if the calculation was successful, false on calculation error
- 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 classMajorMicrospeciesAccessorPlugin
- Returns:
- the calculation error information message
-
getWarningMessage
public String getWarningMessage()
Returns the calculation warning information message.- Overrides:
getWarningMessage
in classCalculatorPlugin
- Returns:
- the calculation warning information message
-
getElectrophilicOrder
@Deprecated public int getElectrophilicOrder(int atom)
Deprecated.Returns the electrophilic order of an atom,-1
for no value.- Parameters:
atom
- is the atom index- Returns:
- the electrophilic order of an atom
-
getHMOElectrophilicOrder
public int getHMOElectrophilicOrder(int atom)
Returns the electrophilic order of an atom,-1
for no value. Standard HMO parameters are used in calculation.- Parameters:
atom
- is the atom index- Returns:
- the electrophilic order of an atom
- Since:
- Marvin 5.3
-
getNucleophilicOrder
@Deprecated public int getNucleophilicOrder(int atom)
Deprecated.Returns the nucleophilic order of an atom,-1
for no value.- Parameters:
atom
- is the atom index- Returns:
- the nucleophilic order of an atom
-
getHMONucleophilicOrder
public int getHMONucleophilicOrder(int atom)
Returns the nucleophilic order of an atom,-1
for no value. Standard HMO parameters are used in calculation.- Parameters:
atom
- is the atom index- Returns:
- the nucleophilic order of an atom
- Since:
- Marvin 5.3
-
getElectrophilicEnergy
public double getElectrophilicEnergy(int atom)
Returns the electrophilic energy (localization energy L+) of an atom,Double.NaN
for no value.- Parameters:
atom
- is the atom index- Returns:
- the electrophilic energy of an atom
-
getHMOElectrophilicEnergy
public double getHMOElectrophilicEnergy(int atom)
Returns the electrophilic energy (localization energy L+) of an atom,Double.NaN
for no value. Standard HMO parameters are used in calculation.- Parameters:
atom
- is the atom index- Returns:
- the electrophilic energy of an atom
- Since:
- Marvin 5.3
-
getNucleophilicEnergy
public double getNucleophilicEnergy(int atom)
Returns the nucleophilic energy (localization energy L-) of an atom,Double.NaN
for no value.- Parameters:
atom
- is the atom index- Returns:
- the nucleophilic energy of an atom
-
getHMONucleophilicEnergy
public double getHMONucleophilicEnergy(int atom)
Returns the nucleophilic energy (localization energy L-) of an atom,Double.NaN
for no value. Standard HMO parameters are used in calculation.- Parameters:
atom
- is the atom index- Returns:
- the nucleophilic energy of an atom
- Since:
- Marvin 5.3
-
getTotalPiEnergy
@Deprecated public double getTotalPiEnergy()
Deprecated.Returns the total pi energy of the input molecule.- Returns:
- the total pi energy of the input molecule
-
getHMOTotalPiEnergy
public double getHMOTotalPiEnergy()
Returns the total pi energy of the input molecule. Standard HMO parameters are used in calculation.- Returns:
- the total pi energy of the input molecule
- Since:
- Marvin 5.3
-
getRealEigenValue
@Deprecated public double[] getRealEigenValue()
Deprecated.Returns the real part of the eigenvalue.- Returns:
- the real part of the eigenvalue
- Since:
- Marvin 5.1
-
getHMORealEigenValue
public double[] getHMORealEigenValue()
Returns the real part of the eigenvalue. Standard HMO parameters are used in calculation.- Returns:
- the real part of the eigenvalue
- Since:
- Marvin 5.3
-
getEigenVector
@Deprecated public double[][] getEigenVector()
Deprecated.Returns the eigenvector.- Returns:
- the eigenvector
- Since:
- Marvin 5.1
-
getHMOEigenVector
public double[][] getHMOEigenVector()
Returns the eigenvector. Standard HMO parameters are used in calculation.- Returns:
- the eigenvector
- Since:
- Marvin 5.3
-
getHuckelOrbitalCoefficients
@Deprecated public double[][] getHuckelOrbitalCoefficients()
Deprecated.Returns the huckel orbital coefficients.- Returns:
- the huckel orbital coefficients
- Since:
- Marvin 5.1.3
-
getHMOHuckelOrbitalCoefficients
public double[][] getHMOHuckelOrbitalCoefficients()
Returns the huckel orbital coefficients. Standard HMO parameters are used in calculation.- Returns:
- the huckel orbital coefficients
- Since:
- Marvin 5.3
-
getElectronDensity
public double getElectronDensity(int atom)
Returns the electron density of an atom calculated with HMO,Double.NaN
for no value.- Parameters:
atom
- is the atom index- Returns:
- the electron density of an atom
- Since:
- Marvin 5.1
-
getHMOElectronDensity
public double getHMOElectronDensity(int atom)
Returns the electron density of an atom calculated with HMO,Double.NaN
for no value. Standard HMO parameters are used in calculation.- Parameters:
atom
- is the atom index- Returns:
- the electron density of an atom
- Since:
- Marvin 5.3
-
getChargeDensity
public double getChargeDensity(int atom)
Returns the total charge density of an atom calculated with HMO,Double.NaN
for no value.- Parameters:
atom
- is the atom index- Returns:
- the total charge density of an atom
- Since:
- Marvin 5.1
-
getHMOChargeDensity
public double getHMOChargeDensity(int atom)
Returns the total charge density of an atom calculated with HMO,Double.NaN
for no value. Standard HMO parameters are used in calculation.- Parameters:
atom
- is the atom index- Returns:
- the total charge density of an atom
- Since:
- Marvin 5.3
-
getResultTypes
public Object[] getResultTypes()
Returns the result types.- 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
.- Overrides:
getResultDomain
in classCalculatorPlugin
- Parameters:
type
- is the result type- Returns:
CalculatorPlugin.ATOM
for all types except for "pienergy"- See Also:
getResultTypes()
-
getResultCount
public int getResultCount(Object type)
Returns the number of result items for the given result key. pKa returns the atom count.- 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.- 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. This is the rounded charge value in string format: the value is rounded using the 'precision' input parameter that determines the number of fractional digits displayed. If the result isDouble.NaN
then returns the empty string.- 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
-
getResultsAsString
public String getResultsAsString(Object type, int index, Object result) throws PluginException
Returns the specified results in String format.- Overrides:
getResultsAsString
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
-
getResultsAsRGB
public long getResultsAsRGB(Object type, int index, Object result) throws PluginException
Returns the specified result color(s) as int format (alpha<<24 + red<<16 + green<<8 + blue).- Overrides:
getResultsAsRGB
in classCalculatorPlugin
- Parameters:
type
- is the result typeindex
- is the result indexresult
- is the result item- Returns:
- the specified result in color as int
- 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
-
-