Class 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
    • Constructor Detail

      • HuckelAnalysisPlugin

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

      • isLicensed

        public boolean isLicensed()
        Returns true if the plugin is licensed. The license checking is based on the product name, returned by getProductName().
        Specified by:
        isLicensed in interface chemaxon.license.Licensable
        Overrides:
        isLicensed in class MajorMicrospeciesAccessorPlugin
        Returns:
        true if the plugin is licensed
      • 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 class MajorMicrospeciesAccessorPlugin
        Parameters:
        params - is the parameter table
        Throws:
        PluginException - on error
      • getErrorMessage

        public String getErrorMessage()
        Returns the calculation error information message if run() returned false (calculation error): hydrogen valence error.
        Overrides:
        getErrorMessage in class MajorMicrospeciesAccessorPlugin
        Returns:
        the calculation error information message
      • getWarningMessage

        public String getWarningMessage()
        Returns the calculation warning information message.
        Overrides:
        getWarningMessage in class CalculatorPlugin
        Returns:
        the calculation warning information message
      • getElectrophilicOrder

        @Deprecated
        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
      • 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)
        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()
        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
      • getTypeString

        public String getTypeString​(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
      • 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 class CalculatorPlugin
        Parameters:
        type - is the result type
        Returns:
        the number of result items
        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 is Double.NaN then returns the empty string.
        Overrides:
        getResultAsString 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
      • getResultsAsString

        public String getResultsAsString​(Object type,
                                         int index,
                                         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​(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 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