chemaxon.marvin.calculations
Class logPPlugin

java.lang.Object
  extended by chemaxon.marvin.plugin.CalculatorPlugin
      extended by chemaxon.marvin.calculations.logPPlugin
All Implemented Interfaces:
chemaxon.license.Licensable

public class logPPlugin
extends CalculatorPlugin

Plugin class for logP calculation. Both the incremental logP values for atoms and the overal logP value for the molecule can be calculated by this plugin.

Reference:

  1. J.Chem.Inf.Comput.Sci. 1989, 29, 163-172

API usage example:

    // fill parameters
    Properties params = new Properties();
    params.put("type", "logP");

    // create plugin
    logPPlugin plugin = new logPPlugin();
    
    // set logP calculation method
    plugin.setlogPMethod(logPPlugin.METHOD_WEIGHTED);
    
    // set method weights
    plugin.setWeightOfMethods(1, 2, 1, 0);

    // set parameters
    plugin.setCloridIonConcentration(0.2);
    plugin.setNaKIonConcentration(0.2);

    // set result types
    plugin.setUserTypes("logPTrue,logPMicro");

    // for each input molecule run the calculation and display the results
    System.out.println("molecule\tlogP");
    MolImporter mi = new MolImporter("targets.sdf")));
    Molecule target = null;
    while ((target = mi.read()) != null) {

        // set the input molecule
        plugin.setMolecule(target);

        // run the calculation
        plugin.run();

        // get the overal logP value
        double logp = plugin.getlogPTrue(); 
        double logpm = plugin.getlogPMicro();

        System.out.println("True logP : "+logp);
        System.out.println("Micro logP: "+logpm);
        System.out.println();
    }  
    mi.close();
 

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

Version:
5.4 09/28/2010
Author:
Nora Mate, Zsolt Mohacsi

Nested Class Summary
 
Nested classes/interfaces inherited from class chemaxon.marvin.plugin.CalculatorPlugin
CalculatorPlugin.HydrogenData
 
Field Summary
static int METHOD_KLOP
          logP calculation method "KLOP"
static int METHOD_PHYS
          logP calculation method: "PHYS"
static int METHOD_USER_DEFINED
          User defined logP calculation method
static int METHOD_VG
          logP calculation method "VG"
static int METHOD_WEIGHTED
          Weighted logP calculation method
 
Fields inherited from class chemaxon.marvin.plugin.CalculatorPlugin
ATOM, BLUE, CALCRGB_OFF, COVALENT_HYDRATION_ERROR_REMARK, CRITICAL_ERROR_MSG, EPSILON, explicitHydrogens, INCORRECT_AROMATIC_NITROGEN_REMARK, INSTABLE_TAUTOMERIC_FORM_REMARK, KEEP_HYDROGENS, keepHydrogens, licenseEnvironment, MOLECULE, MOLECULES, NAN, PLUGIN_CLASS_KEY, PLUGIN_DIR, RED, TRUE
 
Constructor Summary
logPPlugin()
          Constructor.
 
Method Summary
 void checkMolecule(Molecule mol)
          Checks the input molecule.
protected  Molecule createModifiedInputMolecule(Molecule mol)
          Returns the major tautomeric form of the molecule.
 double getAtomlogPHIncrement(int index)
          Deprecated. Increments of implicit H-s are not calculated. Returns the same value as getAtomlogPIncrement(int)
 double getAtomlogPIncrement(int index)
          Returns the logP increment for the specified atom.
 java.lang.String getErrorMessage()
          Returns the calculation error information message if run() returned false (calculation error): hydrogen valence error.
 double getlogDpI()
          Returns the logD value at pI.
 double getlogPMicro()
          Returns the micro logP value.
 double getlogPNonionic()
          Returns the logP value for the non-ionic form.
 double getlogPTrue()
          Returns the most typical logP among logD at pI, micro logP and nonionic logP.
 java.lang.String getProductName()
          Returns the product identifier of the plugin as given by LicenseManager.
 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.
 Molecule getResultMolecule()
          Returns the result molecule for display.
 java.lang.Object[] getResultTypes()
          Returns the result types.
 double getStandardError(java.lang.Object type, int index)
           
 double getStructurallogPIncrement()
          Returns the structural logP increment.
static java.lang.String[] getTrainingIds()
          Returns the id's of available logP trainings.
 java.lang.String getTypeString(java.lang.Object type)
          Returns a string representation of the given type.
 java.lang.Object[] getUserTypes()
          Returns the user defined result types.
 boolean needError()
           
 boolean run()
          Runs the logP calculation.
 void setCloridIonConcentration(double c)
          Sets the Cl- concentration (default: 0.1).
 void setConsiderTautomerization(boolean considerTautomerization)
          Sets to consider tautomerization.
protected  void setInputMolecule(Molecule mol)
          Sets the input molecule.
 void setlogPMethod(int method)
          Sets the logP calculation method.
 void setNaKIonConcentration(double c)
          Sets the Na+, K+ concentration (default: 0.1).
 void setParameters(java.util.Properties params)
          Sets the input parameters for the plugin.
 void setTakeMajorTatomericForm(boolean takeMajorTautomericForm)
          Deprecated. Use setConsiderTautomerization(boolean)
 void setTraining(java.lang.String trainingId)
          Sets the user defined training.
 void setUserTypes(java.lang.String chtypes)
          Sets user types.
 void setWeightOfMethods(double wVG, double wKLOP, double wPHYS, double wUSER)
          Sets the weight of logP calculation methods.
 void standardize(Molecule mol)
          Standardizes the molecule.
 
Methods inherited from class chemaxon.marvin.plugin.CalculatorPlugin
arrangeHydrogenIncerments, canRepeat, checkLicense, checkType, containsCoordinateBond, containsMulticenterSgroup, containsPseudoAtom, containsSRUSgroup, create, createStandardizedMolecule, createStandardizedMolecule, dehydrogenize, format, format, format, format, getAtomCount, getAtomIndex, getCalcMolecule, getDisplayMolecule, getDocument, getDoublePrecision, getExplicitHydrogenData, getInputMolDim, getMainMolecule, getpH, getPluginResource, getQueryMoleculeErrorMessage, getRemark, getResult, getResult, getResult, getResultAsRGB, getResultAsRGB, getResultAsString, getResultCount, getResultDomain, getResultMessage, getResultMolecules, getResultsAsRGB, getResultsAsRGB, getResultsAsString, getResultsAsString, getResultSource, getWarningMessage, handlesMultiFragmentMolecules, isInputMoleculeAromatized, isLicensed, isMsCalc, isMultiThreadedRunEnabled, isNegligibleResult, isOK, isRgrouped, loadClass, readAttribute, removeWhitespace, restoreExplicitHydrogens, setDoublePrecision, setDoublePrecision, setDoublePrecision, setKeepHydrogens, setLicenseEnvironment, setMolecule, setMolecule, setMolecule, setMolecule, setProgressMonitor, standardizeIonicGroups, standardizeNeutralGroups
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

METHOD_VG

public static final int METHOD_VG
logP calculation method "VG"

See Also:
Constant Field Values

METHOD_KLOP

public static final int METHOD_KLOP
logP calculation method "KLOP"

See Also:
Constant Field Values

METHOD_PHYS

public static final int METHOD_PHYS
logP calculation method: "PHYS"

See Also:
Constant Field Values

METHOD_USER_DEFINED

public static final int METHOD_USER_DEFINED
User defined logP calculation method

See Also:
Constant Field Values

METHOD_WEIGHTED

public static final int METHOD_WEIGHTED
Weighted logP calculation method

See Also:
Constant Field Values
Constructor Detail

logPPlugin

public logPPlugin()
Constructor. Creates the logP calculator object.

Method Detail

getProductName

public java.lang.String getProductName()
Returns the product identifier of the plugin as given by LicenseManager.

Specified by:
getProductName in class CalculatorPlugin
Returns:
The identifier LicenseManager.PARTITIONING_PLUGIN_GROUP

setParameters

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

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

setCloridIonConcentration

public void setCloridIonConcentration(double c)
Sets the Cl- concentration (default: 0.1).

Parameters:
c - is the concentration

setNaKIonConcentration

public void setNaKIonConcentration(double c)
Sets the Na+, K+ concentration (default: 0.1).

Parameters:
c - is the concentration

setConsiderTautomerization

public void setConsiderTautomerization(boolean considerTautomerization)
Sets to consider tautomerization. Default: false.

Parameters:
considerTautomerization - the calculation will consider tautomerization and resonance if set (true)
Since:
Marvin 5.4

setTakeMajorTatomericForm

public void setTakeMajorTatomericForm(boolean takeMajorTautomericForm)
Deprecated. Use setConsiderTautomerization(boolean)

Sets to use major tautomeric form in calculation. Default: false.

Parameters:
takeMajorTautomericForm - the calculation will be performed on the major tutomeric form of the input molecule if set (true)
Since:
Marvin 5.0

createModifiedInputMolecule

protected final Molecule createModifiedInputMolecule(Molecule mol)
                                              throws PluginException
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:
PluginException - on error
Since:
Marvin 5.0

setUserTypes

public void setUserTypes(java.lang.String chtypes)
                  throws PluginException
Sets user types. Possible types: logP,logPTrue,logPMicro,logPNonionic,logDpI (logP means all of, logPTrue means the most typical of logPMicro,logPNonionic,logDpI which exists for the input molecule) multiple values should be separated by "," (e.g.: "logPTrue,logPNonionic,logDpI").

Parameters:
chtypes - is the type string
Throws:
PluginException - for invalid type

checkMolecule

public void checkMolecule(Molecule mol)
                   throws PluginException
Checks the input molecule. Throws exception if the molecule is RxnMolecule, if the molecule contains R-groups or if the molecule consists of more than one fragments.

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 (standardized) input molecule
Throws:
PluginException - on error

setlogPMethod

public void setlogPMethod(int method)
Sets the logP calculation method. The available methods are: The default is METHOD_WEIGHTED.

Parameters:
method - is the logP calculation method
Since:
Marvin 5.1.3
See Also:
setWeightOfMethods(double, double, double, double)

setWeightOfMethods

public void setWeightOfMethods(double wVG,
                               double wKLOP,
                               double wPHYS,
                               double wUSER)
Sets the weight of logP calculation methods. Default: Has only effect in case of METHOD_WEIGHTED method.

Parameters:
wVG - weight of METHOD_VG method
wKLOP - weight of METHOD_KLOP method
wPHYS - weight of METHOD_PHYS method
wUSER - weight of METHOD_USER_DEFINED method
Since:
Marvin 5.1.3
See Also:
setlogPMethod(int)

getTrainingIds

public static java.lang.String[] getTrainingIds()
Returns the id's of available logP trainings.

Returns:
the id's of available logP trainings
Since:
Marvin 5.4

setTraining

public void setTraining(java.lang.String trainingId)
                 throws PluginException
Sets the user defined training.

Parameters:
trainingId - the training id
Throws:
PluginException - if training id is invalid, or parameter file for training cannot be loaded
Since:
Marvin 5.4

run

public boolean run()
            throws PluginException
Runs the logP calculation.

Specified by:
run in class CalculatorPlugin
Returns:
true if the calculation was successful, false on calculation problems
Throws:
PluginException - on error
See Also:
CalculatorPlugin.getErrorMessage()

getErrorMessage

public java.lang.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

getlogPMicro

public double getlogPMicro()
Returns the micro logP value. The logP calculation should be run beforehand by run().

Returns:
the micro logP value

getlogPNonionic

public double getlogPNonionic()
Returns the logP value for the non-ionic form. The logP calculation should be run beforehand by run().

Returns:
the nonionic logP value

getlogDpI

public double getlogDpI()
Returns the logD value at pI. The logP calculation should be run beforehand by run().

Returns:
the logDpI value

getlogPTrue

public double getlogPTrue()
Returns the most typical logP among logD at pI, micro logP and nonionic logP.

Returns:
the most typical logP value

getAtomlogPIncrement

public double getAtomlogPIncrement(int index)
Returns the logP increment for the specified atom.

Parameters:
index - is the atom index
Returns:
the logP increment

getAtomlogPHIncrement

public double getAtomlogPHIncrement(int index)
Deprecated. Increments of implicit H-s are not calculated. Returns the same value as getAtomlogPIncrement(int)

Returns the sum of the implicit H logP increments for the specified atom.

Parameters:
index - is the atom index
Returns:
the logP increment sum

getStructurallogPIncrement

public double getStructurallogPIncrement()
Returns the structural logP increment. The sum of atomic increments and structural increment is the predicted logP.

Returns:
the structural logP increment
Since:
Marvin 5.4

getResultTypes

public java.lang.Object[] getResultTypes()
Returns the result types. Possible result types: "logPTrue" (most typical logP) "logPMicro", "logPNonionic", "logDpI", "increments".

Overrides:
getResultTypes in class CalculatorPlugin
Returns:
the result types

getUserTypes

public java.lang.Object[] getUserTypes()
Returns the user defined result types. Possible result types: "logP" (all of micro logP, nonionic logP and logD at pI), "logPTrue" (most typical logP), "logPMicro", "logPNonionic", "logDpI", "increments".

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. Returns CalculatorPlugin.ATOM for type "increments" and CalculatorPlugin.MOLECULE otherwise.

Overrides:
getResultDomain in class CalculatorPlugin
Parameters:
type - is the result type
Returns:
CalculatorPlugin.MOLECULE or CalculatorPlugin.ATOM
See Also:
getResultTypes()

getResultCount

public int getResultCount(java.lang.Object type)
Returns the number of result items for the given result key. logP returns the atom count for types "increments" 1 otherwise.

Overrides:
getResultCount in class CalculatorPlugin
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. logP returns the required logP value as a Double object.

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:
PluginException - if the result cannot be returned
See Also:
getResultTypes()

getStandardError

public double getStandardError(java.lang.Object type,
                               int index)

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. logP returns the rounded logP value in string format: the value is rounded using the 'precision' input parameter that determines the number of fractional digits displayed.

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

getResultMolecule

public Molecule getResultMolecule()
                           throws PluginException
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 (Molecule.getProperty(String)).

Overrides:
getResultMolecule in class CalculatorPlugin
Returns:
the result molecule
Throws:
PluginException - 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. Does AROM_BASIC aromatization.

Overrides:
standardize in class CalculatorPlugin
Parameters:
mol - is the molecule to be standardized

needError

public boolean needError()