Package chemaxon.marvin.calculations
Class HuckelAnalysisPlugin
java.lang.Object
chemaxon.marvin.plugin.CalculatorPlugin
chemaxon.marvin.calculations.MajorMicrospeciesAccessorPlugin
chemaxon.marvin.calculations.HuckelAnalysisPlugin
- All Implemented Interfaces:
TaggedCalculator,chemaxon.license.Licensable
Plugin class for Huckel Analysis calculation.
API usage example:
// create plugin
HuckelAnalysisPlugin plugin = new HuckelAnalysisPlugin();
// read target molecule
Molecule mol = null;
try (MolImporter mi = new MolImporter("target.mol")) {
mol = mi.read();
}
// 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.getHMOTotalPiEnergy();
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
ionizerFields 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 TypeMethodDescriptiondoublegetChargeDensity(int atom) Returns the total charge density of an atom calculated with HMO,Double.NaNfor no value.double[][]Deprecated.doublegetElectronDensity(int atom) Returns the electron density of an atom calculated with HMO,Double.NaNfor no value.doublegetElectrophilicEnergy(int atom) Returns the electrophilic energy (localization energy L+) of an atom,Double.NaNfor no value.intgetElectrophilicOrder(int atom) Deprecated.Returns the calculation error information message ifrun()returned false (calculation error): hydrogen valence error.doublegetHMOChargeDensity(int atom) Returns the total charge density of an atom calculated with HMO,Double.NaNfor no value.double[][]Returns the eigenvector.doublegetHMOElectronDensity(int atom) Returns the electron density of an atom calculated with HMO,Double.NaNfor no value.doublegetHMOElectrophilicEnergy(int atom) Returns the electrophilic energy (localization energy L+) of an atom,Double.NaNfor no value.intgetHMOElectrophilicOrder(int atom) Returns the electrophilic order of an atom,-1for no value.double[][]Returns the huckel orbital coefficients.doublegetHMONucleophilicEnergy(int atom) Returns the nucleophilic energy (localization energy L-) of an atom,Double.NaNfor no value.intgetHMONucleophilicOrder(int atom) Returns the nucleophilic order of an atom,-1for no value.double[]Returns the real part of the eigenvalue.doubleReturns the total pi energy of the input molecule.double[][]Deprecated.doublegetNucleophilicEnergy(int atom) Returns the nucleophilic energy (localization energy L-) of an atom,Double.NaNfor no value.intgetNucleophilicOrder(int atom) Deprecated.Returns the product identifier of the plugin as given byLicenseManager.double[]Deprecated.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.longgetResultsAsRGB(Object type, int index, Object result) Returns the specified result color(s) as int format (alpha<<24 + red<<16 + green<<8 + blue).getResultsAsString(Object type, int index, Object result) Returns the specified results in String format.Object[]Returns the result types.doubleDeprecated.getTypeString(Object type) Returns a string representation of the given type.Returns the calculation warning information message.booleanReturnstrueif the plugin is licensed.booleanrun()Runs the Huckel analysis calculation.protected voidsetInputMolecule(Molecule mol) Sets the input molecule.voidsetParameters(Properties params) Sets the input parameters for the plugin.Methods inherited from class chemaxon.marvin.calculations.MajorMicrospeciesAccessorPlugin
checkMolecule, createModifiedInputMolecule, getIonizerErrorMessage, getpH, setChemicalTermsArgument, setpH, standardizeMethods inherited from class chemaxon.marvin.plugin.CalculatorPlugin
addHeavyAtomLimitChecker, addInputChecker, arrangeHydrogenIncerments, canRepeat, checkLicense, checkType, containsCoordinateBond, containsMulticenterSgroup, containsPseudoAtom, containsSRUSgroup, create, create, createStandardizedMolecule, createStandardizedMolecule, dehydrogenize, format, format, format, format, getAtomCount, getAtomIndex, getAtomIndexMap, getAtomIndexMapping, 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, loadPluginClass, loadPluginClass, readAttribute, removeWhitespace, restoreExplicitHydrogens, setAtomIndexMap, 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
-
HuckelAnalysisPlugin
public HuckelAnalysisPlugin()Constructor. Creates the Huckel analysis calculator object.
-
-
Method Details
-
isLicensed
public boolean isLicensed()Returnstrueif the plugin is licensed. The license checking is based on the product name, returned bygetProductName().- Specified by:
isLicensedin interfacechemaxon.license.Licensable- Overrides:
isLicensedin classMajorMicrospeciesAccessorPlugin- Returns:
trueif the plugin is licensed
-
getProductName
Returns the product identifier of the plugin as given byLicenseManager.- Specified by:
getProductNamein classCalculatorPlugin- Returns:
- The identifier
LicenseManager.HUCKEL_ANALYSIS_PLUGIN
-
setParameters
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:
setParametersin classMajorMicrospeciesAccessorPlugin- Parameters:
params- is the parameter table- Throws:
PluginException- on error
- type:
-
setInputMolecule
Sets the input molecule.- Specified by:
setInputMoleculein classCalculatorPlugin- Parameters:
mol- is the input molecule- Throws:
PluginException- on error
-
run
Runs the Huckel analysis calculation.- Specified by:
runin classCalculatorPlugin- Returns:
- true if the calculation was successful, false on calculation error
- Throws:
PluginException- on error- See Also:
-
getErrorMessage
Returns the calculation error information message ifrun()returned false (calculation error): hydrogen valence error.- Overrides:
getErrorMessagein classMajorMicrospeciesAccessorPlugin- Returns:
- the calculation error information message
-
getWarningMessage
Returns the calculation warning information message.- Overrides:
getWarningMessagein classCalculatorPlugin- Returns:
- the calculation warning information message
-
getElectrophilicOrder
Deprecated.Returns the electrophilic order of an atom,-1for 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,-1for 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.Returns the nucleophilic order of an atom,-1for 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,-1for 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.NaNfor 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.NaNfor 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.NaNfor 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.NaNfor 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.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.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.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.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.NaNfor 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.NaNfor 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.NaNfor 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.NaNfor 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
Returns the result types.- 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.- Overrides:
getResultDomainin classCalculatorPlugin- Parameters:
type- is the result type- Returns:
CalculatorPlugin.ATOMfor all types except for "pienergy"- See Also:
-
getResultCount
Returns the number of result items for the given result key. pKa returns the atom count.- 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.- 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. 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.NaNthen returns the empty string.- 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
-
getResultsAsString
Returns the specified results in String format.- Overrides:
getResultsAsStringin 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
Returns the specified result color(s) as int format (alpha<<24 + red<<16 + green<<8 + blue).- Overrides:
getResultsAsRGBin 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
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
-
getHMOEigenVector()