Class IsoelectricPointPlugin

  • All Implemented Interfaces:
    chemaxon.license.Licensable

    @PublicAPI
    public class IsoelectricPointPlugin
    extends CalculatorPlugin
    Plugin class for isoelectric point and pH - charge distribution calculation.

    API usage example:

        // create plugin
        IsoelectricPointPlugin plugin = new IsoelectricPointPlugin();
    
        // set plugin parameters
        plugin.setpHStep(0.4);
    
        // set target molecule
        plugin.setMolecule(mol);
    
        // run the calculation
        plugin.run();
    
        // get results
    
        // isoelectric point
        double pI = plugin.getpI();
    
        // charge distribution
        double[] pHs = plugin.getpHs();
        double[] charges = plugin.getChargeDistribution();
    
        // print results
        if (Double.isNaN(pI)) {
             System.out.println("No isoelectric point.");
        } else {
           System.out.println("pI = "+plugin.format(pI));
        }   
        System.out.println("\npH\tcharge");
        for (int i=0; i < pHs.length; ++i) {
            System.out.println(plugin.format(pHs[i])+"\t"+
                                 plugin.format(charges[i]));
        }
     

    For concurrent plugin example applications using ChemAxon's concurrent framework, refer to the Concurrent plugin examples.

    Since:
    Marvin 3.6
    • Constructor Detail

      • IsoelectricPointPlugin

        public IsoelectricPointPlugin()
        Constructor. Creates the isoelectric point calculator object.
    • Method Detail

      • setProgressMonitor

        public void setProgressMonitor​(MProgressMonitor pmon)
        Sets a progress observer to be used in run() to display progress status. Short calculations may ignore the observer object. The default implementation does nothing.
        Overrides:
        setProgressMonitor in class CalculatorPlugin
        Parameters:
        pmon - is the progress monitor, may be null
      • setParameters

        public void setParameters​(Properties params)
                           throws PluginException
        Sets the input parameters for the plugin. Isoelectric point parameters and value ranges:
        • type: pI,chargedistr
        • precision: 0-8 or inf (default: 2)
        • pH: pH value - calculate charge distribution at a single pH
        • lower: pH lower limit (default: 0.0)
        • upper: pH upper limit (default: 14.0)
        • step: pH step to be taken between lower and upper limits (default: 0.5)
        Overrides:
        setParameters in class CalculatorPlugin
        Parameters:
        params - is the parameter table
        Throws:
        PluginException - on error
      • isChargeCalc

        protected boolean isChargeCalc()
        Returns true if pH-Charge calculation.
        Returns:
        true if pH-Charge calculation
      • setpHLower

        public void setpHLower​(double lower)
        Sets pH lower limit for the calculation of charge distribution (default: 0.0).
        Parameters:
        lower - is the pH lower limit
        Since:
        Marvin 5.2
      • setpHUpper

        public void setpHUpper​(double upper)
        Sets pH upper limit for the calculation of charge distribution (default: 14.0).
        Parameters:
        upper - is the pH upper limit
        Since:
        Marvin 5.2
      • setpHStep

        public void setpHStep​(double step)
        Sets pH step for the calculation of charge distribution. Range: between 0.0 and 0.5. The default value is 0.5.
        Parameters:
        step - is the pH step
      • setpH

        public void setpH​(double pH)
        Sets a single pH value for the calculation of charge distribution.
        Parameters:
        pH - is the pH value
        Since:
        Marvin 5.2
      • setConsiderTautomerization

        public void setConsiderTautomerization​(boolean considerTautomerization)
        Sets to consider tautomerization. Default: false.
        Parameters:
        considerTautomerization - the calculation will consider tautomerization and resonance if set (true)
      • checkMolecule

        public void checkMolecule​(Molecule mol)
                           throws PluginException
        Checks the input molecule. Throws exception if the molecule molecule contains R-groups.
        Overrides:
        checkMolecule in class CalculatorPlugin
        Parameters:
        mol - is the input molecule
        Throws:
        PluginException - with error message for the user if the molecule is refused
      • getErrorMessage

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

        public double getpI()
        Returns the isoelectric point.
        Returns:
        the isoelectric point
      • getpKaOfpI

        public double[][] getpKaOfpI()
        Returns the pKa values of the calculated isoelectric point.
        Returns:
        array of the pKa values acidic pKa is returned in the zero column e.g [atomindex][0] basic pKa is returned in the first column e.g. [atomindex][1]
      • getpHs

        public double[] getpHs()
        Returns the pH array.
        Returns:
        the pH array
      • getChargeDistribution

        public double[] getChargeDistribution()
        Returns the charge distribution array over pH values.
        Returns:
        the charge distribution array
        See Also:
        getpHs()
      • getChargePlusMinusDistribution

        public double[][] getChargePlusMinusDistribution()
        Returns the plus and the minus parts of the charge distribution array over pH values.
        Returns:
        the distribution array of the negative and the positive charge count. negative charge count [0..size][0] positive charge count [0..size][1] size=(pHUpper-pHLower)/pHStepSize;
        See Also:
        getpHs()
      • 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. If the type is TYPE_DISTR then returns the pH - distribution table as a 2-column tab-separated table with the 0-th element the pH array and the 1-st element the distribution array corresponding to the microspecies with the specified index (result index). Otherwise returns the rounded pI value with one fractional digit precision.
        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
      • 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
      • getWarningMessage

        public String getWarningMessage()
        Returns the calculation warning information message if no isoelectric point exists, returns the empty string otherwise.
        Overrides:
        getWarningMessage in class CalculatorPlugin
        Returns:
        the calculation warning information message
      • standardize

        public void standardize​(Molecule mol)
        Standardizes the molecule. This is done by performing the transformations necessary to run the plugin (e.g. aromatize, dehydrogenize, bring nitro groups to common form). Apart from the default standardization (aromatize and nitro) removes explicit hydrogens and stores the index-map between atom indices in the original and the new molecule. This map is used when the macropKa values and types are queried and the new atom indices should be mapped to the original ones. TODO: replace by call to chemaxon.standardizer.Standardizer
        Overrides:
        standardize in class CalculatorPlugin
        Parameters:
        mol - is the molecule to be standardized
      • setKeepExplicitHydrogens

        public void setKeepExplicitHydrogens​(boolean keepExplicitHydrogens)
        Sets if result molecule keeps explicit hydrogens or not
        Parameters:
        keepExplicitHydrogens - if the result should keep explicit hydrogens or not