Class IsoelectricPointPlugin

java.lang.Object
chemaxon.calculations.CalculatorPlugin
chemaxon.calculations.IsoelectricPointPlugin
All Implemented Interfaces:
TaggedCalculator, Licensable

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

API usage example:


    // Import molecule
    Molecule mol = MolImporter.importMol("CC(=O)OC1=CC=CC=C1C(O)=O");

    // 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 iep = plugin.getIsoelectricPoint();

    // Charge distribution
    double[] phValues = plugin.getPhValues();
    double[] charges = plugin.getChargeDistribution();

    // Print results
    if (Double.isNaN(iep)) {
        System.out.println("No isoelectric point.");
    } else {
        System.out.println("pI = "+plugin.format(iep));
    }
    System.out.println("\npH\tcharge");
    for (int i=0; i < phValues.length; ++i) {
        System.out.println(plugin.format(phValues[i]) + "\t" + plugin.format(charges[i]));
    }
 

For calculator plugin example applications using Chemaxon's concurrent framework, refer to the Calculator Plugins Developer's Guide.

Since:
Marvin 3.6
  • Field Details

  • Constructor Details

    • IsoelectricPointPlugin

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

    • getProductName

      public String getProductName()
      Description copied from class: CalculatorPlugin
      Returns the product identifier of the plugin. For internal use only!
      Specified by:
      getProductName in class CalculatorPlugin
    • setProgressMonitor

      public void setProgressMonitor(ProgressMonitor 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 CalculatorPluginException
      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:
      CalculatorPluginException - on error
    • setChemicalTermsArgument

      @Deprecated protected void setChemicalTermsArgument(String arg) throws CalculatorPluginException
      Deprecated.
      Description copied from class: CalculatorPlugin
      Sets the argument string as specified in Chemical Terms expressions. This method may only be called from CalculatorPlugin.setChemicalTermsParameters(Properties, String).
      Overrides:
      setChemicalTermsArgument in class CalculatorPlugin
      Parameters:
      arg - The argument, never null. Its meaning is implementation-dependent.
      Throws:
      CalculatorPluginException - on error
    • isChargeCalc

      public 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
    • setpHLower

      @Deprecated(forRemoval=true) @SubjectToRemoval(date=JUL_01_2027) public void setpHLower(double lower)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Use setPhLower(double) instead. This method will be removed in a future version.
      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
    • setpHUpper

      @Deprecated(forRemoval=true) @SubjectToRemoval(date=JUL_01_2027) public void setpHUpper(double upper)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Use setPhUpper(double) instead. This method will be removed in a future version.
      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
    • setpHStep

      @Deprecated(forRemoval=true) @SubjectToRemoval(date=JUL_01_2027) public void setpHStep(double step)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Use setPhStep(double) instead. This method will be removed in a future version.
      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
    • setpH

      @Deprecated(forRemoval=true) @SubjectToRemoval(date=JUL_01_2027) public void setpH(double ph)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Use setPh(double) instead. This method will be removed in a future version.
      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 CalculatorPluginException
      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:
      CalculatorPluginException - with error message for the user if the molecule is refused
    • setInputMolecule

      protected void setInputMolecule(Molecule mol) throws CalculatorPluginException
      Sets the input molecule.
      Specified by:
      setInputMolecule in class CalculatorPlugin
      Parameters:
      mol - is the input molecule
      Throws:
      CalculatorPluginException - on error
    • createModifiedInputMolecule

      protected final Molecule createModifiedInputMolecule(Molecule mol) throws CalculatorPluginException
      Returns the major tautomeric form of the molecule.
      Overrides:
      createModifiedInputMolecule in class CalculatorPlugin
      Parameters:
      mol - is the input molecule
      Returns:
      the major tautomeric form of the molecule
      Throws:
      CalculatorPluginException - on error
    • run

      public boolean run() throws CalculatorPluginException
      Runs the isoelectric point and charge distribution calculations.
      Specified by:
      run in class CalculatorPlugin
      Returns:
      true if the calculation was successful, false if the number of ionizable atoms exceeds the specified limit
      Throws:
      CalculatorPluginException - on error
      See Also:
    • 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
    • getIsoelectricPoint

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

      Deprecated, for removal: This API element is subject to removal in a future version.
      Use getIsoelectricPoint() instead. This method will be removed in a future version.
      Returns the isoelectric point.
      Returns:
      the isoelectric point
    • getPkaOfIsoelectricPoint

      public double[][] getPkaOfIsoelectricPoint()
      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]
    • getpKaOfpI

      @Deprecated(forRemoval=true) @SubjectToRemoval(date=JUL_01_2027) public double[][] getpKaOfpI()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Use getPkaOfIsoelectricPoint() instead. This method will be removed in a future version.
      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]
    • getPhValues

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

      @Deprecated(forRemoval=true) @SubjectToRemoval(date=JUL_01_2027) public double[] getpHs()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Use getPhValues() instead. This method will be removed in a future version.
      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:
    • 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:
    • getResultTypes

      public Object[] getResultTypes()
      Returns the result types.
      Overrides:
      getResultTypes in class CalculatorPlugin
      Returns:
      the result types
    • getResultDomain

      public int getResultDomain(Object type)
      Returns the calculation domain.
      Overrides:
      getResultDomain in class CalculatorPlugin
      Parameters:
      type - is the result type
      Returns:
      the calculation domain
      See Also:
    • 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:
    • getResult

      public Object getResult(Object type, int index) throws CalculatorPluginException
      Returns the result item for the specified key and index.
      Overrides:
      getResult in class CalculatorPlugin
      Parameters:
      type - is the result type
      index - is the result index
      Returns:
      the result item for the specified key and index
      Throws:
      CalculatorPluginException - if the result cannot be returned
      See Also:
    • getResultAsString

      public String getResultAsString(Object type, int index, Object result) throws CalculatorPluginException
      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:
      CalculatorPluginException - 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
    • getResultMolecule

      public Molecule getResultMolecule() throws CalculatorPluginException
      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:
      getResultMolecule in class CalculatorPlugin
      Returns:
      the result molecule
      Throws:
      CalculatorPluginException - on error
      Since:
      Marvin 4.0
    • 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 macro pKa 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
    • tags

      public Set<CalculatorTag> tags()
      Description copied from interface: TaggedCalculator
      Returns the set of tags reported by this calculator. The same tags should be returned unless the calculator is modified using a mutator method, e.g. if some settings are changed.

      New tags can be introduced and reported in the future by existing calculators, so do not depend on the exact set of reported tags, only check for the presence of certain tags.

      Returns:
      the tags