@PublicAPI public class HuckelAnalysisPlugin extends MajorMicrospeciesAccessorPlugin
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.
CalculatorPlugin.HydrogenData
ionizer
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 and Description |
---|
HuckelAnalysisPlugin()
Constructor.
|
Modifier and Type | Method and 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.
|
java.lang.String |
getErrorMessage()
Returns the calculation error information message if
run()
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.
|
java.lang.String |
getProductName()
Returns the product identifier of the plugin as given by
LicenseManager . |
double[] |
getRealEigenValue()
Deprecated.
|
java.lang.Object |
getResult(java.lang.Object type,
int index)
Returns the result item for the specified key and index.
|
java.lang.String |
getResultAsString(java.lang.Object type,
int index,
java.lang.Object result)
Returns the specified result in String format.
|
int |
getResultCount(java.lang.Object type)
Returns the number of result items for the given result key.
|
int |
getResultDomain(java.lang.Object type)
Returns the calculation domain
CalculatorPlugin.ATOM or
CalculatorPlugin.MOLECULE . |
Molecule |
getResultMolecule()
Returns the result molecule for display.
|
long |
getResultsAsRGB(java.lang.Object type,
int index,
java.lang.Object result)
Returns the specified result color(s) as int format
(alpha<<24 + red<<16 + green<<8 + blue).
|
java.lang.String |
getResultsAsString(java.lang.Object type,
int index,
java.lang.Object result)
Returns the specified results in String format.
|
java.lang.Object[] |
getResultTypes()
Returns the result types.
|
double |
getTotalPiEnergy()
Deprecated.
|
java.lang.String |
getTypeString(java.lang.Object type)
Returns a string representation of the given type.
|
java.lang.String |
getWarningMessage()
Returns the calculation warning information message.
|
boolean |
isLicensed()
Returns
true if the plugin is licensed. |
boolean |
run()
Runs the Huckel analysis calculation.
|
protected void |
setInputMolecule(Molecule mol)
Sets the input molecule.
|
void |
setParameters(java.util.Properties params)
Sets the input parameters for the plugin.
|
checkMolecule, createModifiedInputMolecule, getIonizerErrorMessage, getpH, setpH, standardize
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
public HuckelAnalysisPlugin()
public boolean isLicensed()
true
if the plugin is licensed. The license checking
is based on the product name, returned by getProductName()
.isLicensed
in interface chemaxon.license.Licensable
isLicensed
in class MajorMicrospeciesAccessorPlugin
true
if the plugin is licensedpublic java.lang.String getProductName()
LicenseManager
.getProductName
in class CalculatorPlugin
LicenseManager.HUCKEL_ANALYSIS_PLUGIN
public void setParameters(java.util.Properties params) throws PluginException
Types starting with "hmo" are calculated using standard HMO parameters.
setParameters
in class MajorMicrospeciesAccessorPlugin
params
- is the parameter tablePluginException
- on errorprotected void setInputMolecule(Molecule mol) throws PluginException
setInputMolecule
in class CalculatorPlugin
mol
- is the input moleculePluginException
- on errorpublic boolean run() throws PluginException
run
in class CalculatorPlugin
PluginException
- on errorCalculatorPlugin.getErrorMessage()
public java.lang.String getErrorMessage()
run()
returned false (calculation error): hydrogen valence error.getErrorMessage
in class MajorMicrospeciesAccessorPlugin
public java.lang.String getWarningMessage()
getWarningMessage
in class CalculatorPlugin
@Deprecated public int getElectrophilicOrder(int atom)
getHMOElectrophilicOrder(int)
-1
for no value.atom
- is the atom indexpublic int getHMOElectrophilicOrder(int atom)
-1
for no value.
Standard HMO parameters are used in calculation.atom
- is the atom index@Deprecated public int getNucleophilicOrder(int atom)
getHMONucleophilicOrder(int)
-1
for no value.atom
- is the atom indexpublic int getHMONucleophilicOrder(int atom)
-1
for no value.
Standard HMO parameters are used in calculation.atom
- is the atom indexpublic double getElectrophilicEnergy(int atom)
Double.NaN
for no value.atom
- is the atom indexpublic double getHMOElectrophilicEnergy(int atom)
Double.NaN
for no value.
Standard HMO parameters are used in calculation.atom
- is the atom indexpublic double getNucleophilicEnergy(int atom)
Double.NaN
for no value.atom
- is the atom indexpublic double getHMONucleophilicEnergy(int atom)
Double.NaN
for no value.
Standard HMO parameters are used in calculation.atom
- is the atom index@Deprecated public double getTotalPiEnergy()
getHMOTotalPiEnergy()
public double getHMOTotalPiEnergy()
@Deprecated public double[] getRealEigenValue()
getHMORealEigenValue()
public double[] getHMORealEigenValue()
@Deprecated public double[][] getEigenVector()
getHMOEigenVector()
public double[][] getHMOEigenVector()
@Deprecated public double[][] getHuckelOrbitalCoefficients()
getHMOHuckelOrbitalCoefficients()
public double[][] getHMOHuckelOrbitalCoefficients()
public double getElectronDensity(int atom)
Double.NaN
for no value.atom
- is the atom indexpublic double getHMOElectronDensity(int atom)
Double.NaN
for no value.
Standard HMO parameters are used in calculation.atom
- is the atom indexpublic double getChargeDensity(int atom)
Double.NaN
for no value.atom
- is the atom indexpublic double getHMOChargeDensity(int atom)
Double.NaN
for no value.
Standard HMO parameters are used in calculation.atom
- is the atom indexpublic java.lang.Object[] getResultTypes()
getResultTypes
in class CalculatorPlugin
public java.lang.String getTypeString(java.lang.Object type)
getTypeString
in class CalculatorPlugin
type
- is the type objectpublic int getResultDomain(java.lang.Object type)
CalculatorPlugin.ATOM
or
CalculatorPlugin.MOLECULE
.getResultDomain
in class CalculatorPlugin
type
- is the result typeCalculatorPlugin.ATOM
for all types except for "pienergy"getResultTypes()
public int getResultCount(java.lang.Object type)
getResultCount
in class CalculatorPlugin
type
- is the result typegetResultTypes()
public java.lang.Object getResult(java.lang.Object type, int index) throws PluginException
getResult
in class CalculatorPlugin
type
- is the result typeindex
- is the result indexPluginException
- if the result cannot be returnedgetResultTypes()
public java.lang.String getResultAsString(java.lang.Object type, int index, java.lang.Object result) throws PluginException
Double.NaN
then returns the empty string.getResultAsString
in class CalculatorPlugin
type
- is the result typeindex
- is the result indexresult
- is the result itemPluginException
- if an invalid result item is givenpublic java.lang.String getResultsAsString(java.lang.Object type, int index, java.lang.Object result) throws PluginException
getResultsAsString
in class CalculatorPlugin
type
- is the result typeindex
- is the result indexresult
- is the result itemPluginException
- if an invalid result item is givenpublic long getResultsAsRGB(java.lang.Object type, int index, java.lang.Object result) throws PluginException
getResultsAsRGB
in class CalculatorPlugin
type
- is the result typeindex
- is the result indexresult
- is the result itemPluginException
- if an invalid result item is givenpublic Molecule getResultMolecule() throws PluginException
MolAtom.getExtraLabel()
).
Molecular results are stored in molecule properties
with keys being the result types
(Molecule.getProperty(String)
).getResultMolecule
in class CalculatorPlugin
PluginException
- on error