Class IonChargePlugin

java.lang.Object
chemaxon.marvin.plugin.CalculatorPlugin
chemaxon.marvin.calculations.IonChargePlugin
All Implemented Interfaces:
TaggedCalculator, chemaxon.license.Licensable

@PublicApi public class IonChargePlugin extends CalculatorPlugin
Plugin class for charge calculation on ionized microspecies.

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

Since:
Marvin 3.0
  • Constructor Details

    • IonChargePlugin

      public IonChargePlugin()
      Constructor. Creates the Ionizer object.
  • Method Details

    • getProductName

      public String getProductName()
      Returns the product identifier of the plugin as given by LicenseManager.
      Specified by:
      getProductName in class CalculatorPlugin
      Returns:
      The identifier LicenseManager.CHARGE_PLUGIN_GROUP
    • setParameters

      public void setParameters(Properties params) throws PluginException
      Sets the input parameters for the plugin. ioncharge parameters and value ranges:
      • pH: the pH value (default: 7.0)
      • min-percent: minimal species distribution
      • charge-type: accumulated or single (default: single)
      • max-ions: max number of ionizable atoms to be taken into account (default: 8)
      • precision: 0-8 or inf (default: 2) (number of displayed fractional digits, inf for unrounded value)
      Overrides:
      setParameters in class CalculatorPlugin
      Parameters:
      params - is the parameter table
      Throws:
      PluginException - on error
    • 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
    • setInputMolecule

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

      public boolean run() throws PluginException
      Runs the charge calculation on the microspecies with sufficiently large distribution on the given pH.
      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:
      PluginException - on error
      See Also:
    • getErrorMessage

      public String getErrorMessage()
      Returns the calculation error information message if run() returned false (calculation error): the number of ionizable atoms exceeds the specified limit (given in the "ions" parameter) or hydrogen valence error.
      Overrides:
      getErrorMessage in class CalculatorPlugin
      Returns:
      the calculation error information message
    • getResultTypes

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

      public int getResultDomain(Object type)
      Returns the calculation domain CalculatorPlugin.ATOM or CalculatorPlugin.MOLECULE. pKa always returns CalculatorPlugin.ATOM.
      Overrides:
      getResultDomain in class CalculatorPlugin
      Parameters:
      type - is the result type
      Returns:
      CalculatorPlugin.ATOM
      See Also:
    • getResultCount

      public int getResultCount(Object type)
      Returns the number of result items for the given result key. IonCharge 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 PluginException
      Returns the result item for the specified type and index. IonCharge returns one or more charge values for the specified atom index depending on whether the 'min-percent' parameter has been specified:
      • one charge value for each atom index as a Double object if type is "charge" (no 'min-percent' parameter is given),
      • a double array of charge values corresponding to the microspecies with occurrence percentage at least the given 'min-percent' value if type is "charges" ('distribution' parameter is given) - in this case the charge values are arranged according to descending microspecies distribution order (the first element of the charge array corresponds to the microspecies with maximal occurrence percentage).
      Overrides:
      getResult in class CalculatorPlugin
      Parameters:
      type - is the result type
      index - is the result index
      Returns:
      the result item for the specified type and index
      Throws:
      PluginException - if the result cannot be returned
      See Also:
    • getResultAsString

      public String getResultAsString(Object type, int index, Object result) throws PluginException
      Returns the specified result in String format. IonCharge returns the rounded ion charge value(s) in string format: the value is rounded using the 'precision' input parameter that determines the number of fractional digits displayed. Multiple values ("charges" case, double array) are separated by commas.
      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
    • 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