chemaxon.marvin.calculations
Class HuckelAnalysisPlugin

java.lang.Object
  extended bychemaxon.marvin.plugin.CalculatorPlugin
      extended bychemaxon.marvin.calculations.MajorMicrospeciesPlugin
          extended bychemaxon.marvin.calculations.HuckelAnalysisPlugin

public class HuckelAnalysisPlugin
extends MajorMicrospeciesPlugin

Plugin class for Huckel Analysis calculation.

Since:
Marvin 3.4

API usage example:

    // create plugin
    HuckelAnalysisPlugin plugin = new HuckelAnalysisPlugin();
    plugin.validate(<huckelanalysis license>);

    // read target molecule
    MolImporter mi = new MolImporter("target.mol");
    Molecule mol = mi.read();

    // set plugin parameters
    Properties params = new Properties();
    params.put("type", "order,localizationEnergy,piEnergy,piChargeDensity,totalChargeDensity");
    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(-)\tpi chg. dens.\ttotal chg. dens.");
    int count = mol.getAtomCount();
    for (int i=0; i < count; ++i) {
 	  int orderE = plugin.getElectrophilicOrder(i);
 	  int orderN = plugin.getNucleophilicOrder(i);	    
 	  double energyE = plugin.getElectrophilicEnergy(i);
 	  double energyN = plugin.getNucleophilicEnergy(i);
 	  double piChargeDensity = plugin.getPiChargeDensity(i);
 	  double totalChargeDensity = plugin.getTotalChargeDensity(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(piChargeDensity) ? plugin.format(piChargeDensity) : "-";
 	  str += "\t";
 	  str += !Double.isNaN(totalChargeDensity) ? plugin.format(totalChargeDensity) : "-";
 	  System.out.println(str);
    }
 
Author:
Nora Mate

Field Summary
 
Fields inherited from class chemaxon.marvin.plugin.CalculatorPlugin
ATOM, BLUE, CALCRGB_OFF, CHART, HYDROGEN_VALENCE_ERROR_MSG, MOLECULE, NAN, RED, SUBRESULT
 
Constructor Summary
HuckelAnalysisPlugin()
          Constructor.
 
Method Summary
 double getElectrophilicEnergy(int atom)
          Returns the electrophilic energy (localization energy L+) of an atom, Double.NaN for no value.
 int getElectrophilicOrder(int atom)
          Returns the electrophilic order of an atom, -1 for no value.
protected  java.lang.String getLicenseKey()
          Returns the built-in license key for the given plugin class.
 double getNucleophilicEnergy(int atom)
          Returns the nucleophilic energy (localization energy L-) of an atom, Double.NaN for no value.
 int getNucleophilicOrder(int atom)
          Returns the nucleophilic order of an atom, -1 for no value.
 java.lang.String getOutputClassName()
          Returns the output provider class name for the command line interface.
 double getPiChargeDensity(int atom)
          Returns the pi charge density of an atom calculated with HMO, Double.NaN for no value.
 Molecule getReferenceMolecule(java.lang.Object type, int index)
          Returns the molecule to be used as reference image for the given result type and index.
 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.
 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 getTotalChargeDensity(int atom)
          Returns the total charge density of an atom calculated with HMO, Double.NaN for no value.
 double getTotalPiEnergy()
          Returns the total pi energy of the input molecule.
 java.lang.String getTypeString(java.lang.Object type)
          Returns a string representation of the given type.
 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.
 
Methods inherited from class chemaxon.marvin.calculations.MajorMicrospeciesPlugin
checkMolecule, getErrorMessage, getMainMolecule, getMajorMicrospecies, getMolText, getpH, getSuffix, isMajorMs, setpH, standardize
 
Methods inherited from class chemaxon.marvin.plugin.CalculatorPlugin
check, checkLicense, checkLicenseKey, checkType, create, createImageMolecule, createStandardizedMolecule, dehydrogenize, format, format, format, format, getAtomCount, getAtomIndex, getChartColor, getDoublePrecision, getGUIResultTypes, getResult, getResult, getResult, getResultAsRGB, getResultAsRGB, getResultAsString, getResultCount, getResultDomain, getResultsAsRGB, getResultsAsString, getXAxisLabel, getXLabels, getYAxisLabel, handlesMultiFragmentMolecules, isLicensed, isMajorityMsCalculation, isMsCalc, isNegligibleResult, isRgrouped, removeWhitespace, saveLicense, setDoublePrecision, setDoublePrecision, setDoublePrecision, setLicense, setMolecule, setMolecule, setMolecule, standardizeGroups, validate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

HuckelAnalysisPlugin

public HuckelAnalysisPlugin()
Constructor. Creates the Huckel analysis calculator object.

Method Detail

getLicenseKey

protected final java.lang.String getLicenseKey()
Returns the built-in license key for the given plugin class. This license key has to be checked against the license key read from the property file.

Overrides:
getLicenseKey in class CalculatorPlugin
Returns:
the built-in license key for the given plugin class
See Also:
CalculatorPlugin.checkLicense()

setParameters

public void setParameters(java.util.Properties params)
                   throws PluginException
Sets the input parameters for the plugin. Huckel analysis and value ranges:

Overrides:
setParameters in class MajorMicrospeciesPlugin
Parameters:
params - is the parameter table
Throws:
PluginException - on error

setInputMolecule

protected void setInputMolecule(Molecule mol)
                         throws PluginException
Sets the input molecule.

Overrides:
setInputMolecule in class MajorMicrospeciesPlugin
Parameters:
mol - is the input molecule
Throws:
PluginException - on error

run

public boolean run()
            throws PluginException
Runs the Huckel analysis calculation.

Overrides:
run in class MajorMicrospeciesPlugin
Returns:
true if the calculation was successful, false on calculation error
Throws:
PluginException - on error

getElectrophilicOrder

public int getElectrophilicOrder(int atom)
Returns the electrophilic order of an atom, -1 for no value.

Parameters:
atom - is the atom index
Returns:
the electrophilic order of an atom

getNucleophilicOrder

public int getNucleophilicOrder(int atom)
Returns the nucleophilic order of an atom, -1 for no value.

Parameters:
atom - is the atom index
Returns:
the nucleophilic order of an atom

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

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

getTotalPiEnergy

public double getTotalPiEnergy()
Returns the total pi energy of the input molecule.

Returns:
the total pi energy of the input molecule

getPiChargeDensity

public double getPiChargeDensity(int atom)
Returns the pi charge density of an atom calculated with HMO, Double.NaN for no value.

Parameters:
atom - is the atom index
Returns:
the pi charge density of an atom

getTotalChargeDensity

public double getTotalChargeDensity(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

getResultTypes

public java.lang.Object[] getResultTypes()
Returns the result types.

Overrides:
getResultTypes in class MajorMicrospeciesPlugin
Returns:
the result types

getTypeString

public java.lang.String getTypeString(java.lang.Object type)
Returns a string representation of the given type.

Overrides:
getTypeString in class CalculatorPlugin
Parameters:
type - is the type object
Returns:
the type string

getResultDomain

public int getResultDomain(java.lang.Object type)
Returns the calculation domain CalculatorPlugin.ATOM or CalculatorPlugin.MOLECULE.

Overrides:
getResultDomain in class MajorMicrospeciesPlugin
Parameters:
type - is the result type
Returns:
CalculatorPlugin.ATOM for all types except for "pienergy"
See Also:
getResultTypes()

getResultCount

public int getResultCount(java.lang.Object type)
Returns the number of result items for the given result key. pKa returns the atom count.

Overrides:
getResultCount in class MajorMicrospeciesPlugin
Parameters:
type - is the result type
Returns:
the number of result items
See Also:
getResultTypes()

getResult

public java.lang.Object getResult(java.lang.Object type,
                                  int index)
                           throws PluginException
Returns the result item for the specified key and index.

Overrides:
getResult in class MajorMicrospeciesPlugin
Parameters:
type - is the result type
index - 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 java.lang.String getResultAsString(java.lang.Object type,
                                          int index,
                                          java.lang.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 is Double.NaN then returns the empty string.

Overrides:
getResultAsString in class MajorMicrospeciesPlugin
Parameters:
type - is the result type
index - is the result index
result - is the result item
Returns:
the specified result in String format
Throws:
PluginException - if an invalid result item is given

getResultsAsString

public java.lang.String getResultsAsString(java.lang.Object type,
                                           int index,
                                           java.lang.Object result)
                                    throws PluginException
Returns the specified results in String format.

Overrides:
getResultsAsString in class CalculatorPlugin
Parameters:
type - is the result type
index - is the result index
result - is the result item
Returns:
the specified result in String format
Throws:
PluginException - if an invalid result item is given

getResultsAsRGB

public long getResultsAsRGB(java.lang.Object type,
                            int index,
                            java.lang.Object result)
                     throws PluginException
Returns the specified result color(s) as int format (alpha<<24 + red<<16 + green<<8 + blue).

Overrides:
getResultsAsRGB in class CalculatorPlugin
Parameters:
type - is the result type
index - is the result index
result - is the result item
Returns:
the specified result in color as int
Throws:
PluginException - if an invalid result item is given

getOutputClassName

public java.lang.String getOutputClassName()
Returns the output provider class name for the command line interface.

Overrides:
getOutputClassName in class MajorMicrospeciesPlugin
Returns:
the output provider class name

getReferenceMolecule

public Molecule getReferenceMolecule(java.lang.Object type,
                                     int index)
Returns the molecule to be used as reference image for the given result type and index. The default implementation returns the original molecule clone.

Overrides:
getReferenceMolecule in class MajorMicrospeciesPlugin
Parameters:
type - is the result type
index - is the result index
Returns:
the original molecule clone