Package chemaxon.marvin.calculations
Class logPPlugin
- java.lang.Object
-
- chemaxon.marvin.plugin.CalculatorPlugin
-
- chemaxon.marvin.calculations.logPPlugin
-
- All Implemented Interfaces:
chemaxon.license.Licensable
@PublicAPI 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:
- 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.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class chemaxon.marvin.plugin.CalculatorPlugin
CalculatorPlugin.HydrogenData
-
-
Field Summary
Fields Modifier and Type Field Description static int
METHOD_KLOP
Deprecated.This field will not be available from May 2016.static int
METHOD_PHYS
Deprecated.This field will not be available from May 2016.static int
METHOD_USER_DEFINED
Deprecated.UseLogPMethod.USER_DEFINED
instead.static int
METHOD_VG
Deprecated.UseLogPMethod.CHEMAXON
instead.static int
METHOD_WEIGHTED
Deprecated.UseLogPMethod.CONSENSUS
instead.-
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
Constructors Constructor Description logPPlugin()
Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description 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.double
getAtomlogPIncrement(int index)
Returns the logP increment for the specified atom.String
getErrorMessage()
Returns the calculation error information message ifrun()
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.String
getProductName()
Returns the product identifier of the plugin as given byLicenseManager
.Object
getResult(Object type, int index)
Returns the result item for the specified key and index.String
getResultAsString(Object type, int index, Object result)
Returns the specified result in String format.int
getResultCount(Object type)
Returns the number of result items for the given result key.int
getResultDomain(Object type)
Returns the calculation domainCalculatorPlugin.ATOM
orCalculatorPlugin.MOLECULE
.Molecule
getResultMolecule()
Returns the result molecule for display.Object[]
getResultTypes()
Returns the result types.double
getStandardError(Object type, int index)
double
getStructurallogPIncrement()
Returns the structural logP increment.static String[]
getTrainingIds()
Returns the id's of available logP trainings.String
getTypeString(Object type)
Returns a string representation of the given type.Object[]
getUserTypes()
Returns the user defined result types.String
getWarningMessage()
Returns the calculation warning message.boolean
needError()
boolean
run()
Runs the logP calculation.void
setCloridIonConcentration(double c)
Sets theCl-
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)
Deprecated.UsesetlogPMethod(LogPMethod)
instead.void
setlogPMethod(chemaxon.marvin.calculations.LogPMethod method)
Sets the logP calculation method.void
setNaKIonConcentration(double c)
Sets theNa+, K+
concentration (default:0.1
).void
setParameters(Properties params)
Sets the input parameters for the plugin.void
setTakeMajorTatomericForm(boolean takeMajorTautomericForm)
Deprecated.void
setTraining(String trainingId)
Sets the user defined training.void
setTrainingResults(InputStream trainingResultStream)
Sets the user defined training from a stream.void
setUserTypes(String chtypes)
Sets user types.void
setWeightOfMethods(double wVG, double wKLOP, double wPHYS, double wUSER)
Deprecated.This function will not be available from May 2016.void
standardize(Molecule mol)
Standardizes the molecule.-
Methods inherited from class chemaxon.marvin.plugin.CalculatorPlugin
addHeavyAtomLimitChecker, addInputChecker, arrangeHydrogenIncerments, canRepeat, checkLicense, checkType, containsCoordinateBond, containsMulticenterSgroup, containsPseudoAtom, containsSRUSgroup, create, createStandardizedMolecule, createStandardizedMolecule, dehydrogenize, format, format, format, format, getAtomCount, getAtomIndex, getAtomIndexMap, getCalcMolecule, getDisplayMolecule, getDocument, getDoublePrecision, getExplicitHydrogenData, getInputMolDim, getMainMolecule, getOriginalMolecule, getpH, getPluginResource, getQueryMoleculeErrorMessage, getRemark, getResult, getResult, getResult, getResultAsRGB, getResultAsRGB, getResultAsString, getResultCount, getResultDomain, getResultMessage, getResultMolecules, getResultsAsRGB, getResultsAsRGB, getResultsAsString, getResultsAsString, getResultSource, handlesMultiFragmentMolecules, isInputMoleculeAromatized, isLicensed, isMsCalc, isMultiThreadedRunEnabled, isNegligibleResult, isOK, isRgrouped, loadClass, readAttribute, removeWhitespace, restoreExplicitHydrogens, setAtomIndexMap, setDoublePrecision, setDoublePrecision, setDoublePrecision, setKeepHydrogens, setLicenseEnvironment, setMolecule, setMolecule, setMolecule, setMolecule, setProgressMonitor, standardizeIonicGroups, standardizeNeutralGroups
-
-
-
-
Field Detail
-
METHOD_VG
@Deprecated public static final int METHOD_VG
Deprecated.UseLogPMethod.CHEMAXON
instead.logP calculation method "VG"- See Also:
setlogPMethod(LogPMethod)
, Constant Field Values
-
METHOD_KLOP
@Deprecated public static final int METHOD_KLOP
Deprecated.This field will not be available from May 2016. UseLogPMethod
instead.logP calculation method "KLOP"- See Also:
setlogPMethod(LogPMethod)
, Constant Field Values
-
METHOD_PHYS
@Deprecated public static final int METHOD_PHYS
Deprecated.This field will not be available from May 2016. UseLogPMethod
instead.logP calculation method "PHYS"- See Also:
setlogPMethod(LogPMethod)
, Constant Field Values
-
METHOD_USER_DEFINED
@Deprecated public static final int METHOD_USER_DEFINED
Deprecated.UseLogPMethod.USER_DEFINED
instead.User defined logP calculation method.- See Also:
setlogPMethod(LogPMethod)
, Constant Field Values
-
METHOD_WEIGHTED
@Deprecated public static final int METHOD_WEIGHTED
Deprecated.UseLogPMethod.CONSENSUS
instead.Weighted logP calculation method.- See Also:
setlogPMethod(LogPMethod)
, Constant Field Values
-
-
Method Detail
-
getProductName
public String getProductName()
Returns the product identifier of the plugin as given byLicenseManager
.- Specified by:
getProductName
in classCalculatorPlugin
- Returns:
- The identifier
LicenseManager.PARTITIONING_PLUGIN_GROUP
-
setParameters
public void setParameters(Properties params) throws PluginException
Sets the input parameters for the plugin. logP parameters and value ranges:- precision: 0-8 or inf (number of displayed fractional digits, inf for unrounded value)
- anion: Cl- ion concentration (default: 0.1)
- kation: Na+ plus K+ ion concentration (default: 0.1)
- type: increments,logP,logPTrue,logPMicro,logPNonionic,logDpI (logP means all of, logPTrue means the most typical of logPMicro,logPNonionic,logDpI which exists for the input molecule)
- h: true or false (display increments on implicit H atoms)
- majortautomer: true or false (take major tautomeric form)
- method: vg, klop, phys, user, weighted
- Overrides:
setParameters
in classCalculatorPlugin
- Parameters:
params
- is the parameter table- Throws:
PluginException
- on error
-
setCloridIonConcentration
public void setCloridIonConcentration(double c)
Sets theCl-
concentration (default:0.1
).- Parameters:
c
- is the concentration
-
setNaKIonConcentration
public void setNaKIonConcentration(double c)
Sets theNa+, 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
@Deprecated public void setTakeMajorTatomericForm(boolean takeMajorTautomericForm)
Deprecated.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 classCalculatorPlugin
- 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(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 isRxnMolecule
, if the molecule contains R-groups or if the molecule consists of more than one fragments.- Overrides:
checkMolecule
in classCalculatorPlugin
- 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 classCalculatorPlugin
- Parameters:
mol
- is the (standardized) input molecule- Throws:
PluginException
- on error
-
setlogPMethod
public void setlogPMethod(chemaxon.marvin.calculations.LogPMethod method)
Sets the logP calculation method. The available methods are:LogPMethod.CONSENSUS
LogPMethod.CHEMAXON
LogPMethod.USER_DEFINED
LogPMethod.CONSENSUS
.- Parameters:
method
- is the logP calculation method- Since:
- Marvin 15.4.13
-
setlogPMethod
@Deprecated public void setlogPMethod(int method)
Deprecated.UsesetlogPMethod(LogPMethod)
instead.Sets the logP calculation method. The available methods are: The default isMETHOD_WEIGHTED
.- Parameters:
method
- is the logP calculation method- Since:
- Marvin 5.1.3
- See Also:
setWeightOfMethods(double, double, double, double)
-
setWeightOfMethods
@Deprecated public void setWeightOfMethods(double wVG, double wKLOP, double wPHYS, double wUSER)
Deprecated.This function will not be available from May 2016. UsesetlogPMethod(LogPMethod)
instead.Sets the weight of logP calculation methods. Default:- weight of
METHOD_VG
method = 1 - weight of
METHOD_KLOP
method = 1 - weight of
METHOD_PHYS
method = 1 - weight of
METHOD_USER_DEFINED
method = 0
METHOD_WEIGHTED
method.- Parameters:
wVG
- weight ofMETHOD_VG
methodwKLOP
- weight ofMETHOD_KLOP
methodwPHYS
- weight ofMETHOD_PHYS
methodwUSER
- weight ofMETHOD_USER_DEFINED
method- Since:
- Marvin 5.1.3
- See Also:
setlogPMethod(int)
- weight of
-
getTrainingIds
public static 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(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
-
setTrainingResults
public void setTrainingResults(InputStream trainingResultStream) throws PluginException
Sets the user defined training from a stream.- Throws:
PluginException
- for I/O problems.
-
run
public boolean run() throws PluginException
Runs the logP calculation.- Specified by:
run
in classCalculatorPlugin
- Returns:
- true if the calculation was successful, false on calculation problems
- Throws:
PluginException
- on error- See Also:
CalculatorPlugin.getErrorMessage()
-
getErrorMessage
public String getErrorMessage()
Returns the calculation error information message ifrun()
returned false (calculation error): hydrogen valence error.- Overrides:
getErrorMessage
in classCalculatorPlugin
- Returns:
- the calculation error information message
-
getWarningMessage
public String getWarningMessage()
Returns the calculation warning message.- Overrides:
getWarningMessage
in classCalculatorPlugin
- Returns:
- the calculation warning information message
- See Also:
CalculatorPlugin.getWarningMessage()
-
getlogPMicro
public double getlogPMicro()
Returns the micro logP value. The logP calculation should be run beforehand byrun()
.- 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 byrun()
.- Returns:
- the nonionic logP value
-
getlogDpI
public double getlogDpI()
Returns the logD value at pI. The logP calculation should be run beforehand byrun()
.- 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
@Deprecated public double getAtomlogPHIncrement(int index)
Deprecated.Increments of implicit H-s are not calculated. Returns the same value asgetAtomlogPIncrement(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 Object[] getResultTypes()
Returns the result types. Possible result types: "logPTrue" (most typical logP) "logPMicro", "logPNonionic", "logDpI", "increments".- Overrides:
getResultTypes
in classCalculatorPlugin
- Returns:
- the result types
-
getUserTypes
public 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 String getTypeString(Object type)
Returns a string representation of the given type.- Overrides:
getTypeString
in classCalculatorPlugin
- Parameters:
type
- is the type object- Returns:
- the type string
-
getResultDomain
public int getResultDomain(Object type)
Returns the calculation domainCalculatorPlugin.ATOM
orCalculatorPlugin.MOLECULE
. ReturnsCalculatorPlugin.ATOM
for type "increments" andCalculatorPlugin.MOLECULE
otherwise.- Overrides:
getResultDomain
in classCalculatorPlugin
- Parameters:
type
- is the result type- Returns:
CalculatorPlugin.MOLECULE
orCalculatorPlugin.ATOM
- See Also:
getResultTypes()
-
getResultCount
public int getResultCount(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 classCalculatorPlugin
- Parameters:
type
- is the result type- Returns:
- the number of result items
- See Also:
getResultTypes()
-
getResult
public Object getResult(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 classCalculatorPlugin
- Parameters:
type
- is the result typeindex
- 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(Object type, int index)
-
getResultAsString
public String getResultAsString(Object type, int index, 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 classCalculatorPlugin
- Parameters:
type
- is the result typeindex
- is the result indexresult
- 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 classCalculatorPlugin
- 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 classCalculatorPlugin
- Parameters:
mol
- is the molecule to be standardized
-
needError
public boolean needError()
-
-