Class XLogPDescriptor
- java.lang.Object
-
- org.openscience.cdk.qsar.AbstractMolecularDescriptor
-
- org.openscience.cdk.qsar.descriptors.molecular.XLogPDescriptor
-
- All Implemented Interfaces:
IDescriptor
,IMolecularDescriptor
public class XLogPDescriptor extends AbstractMolecularDescriptor implements IMolecularDescriptor
Prediction of logP based on the atom-type method called XLogP. Requires all hydrogens to be explicit.
For description of the methodology see Ref. [Wang, R., Fu, Y., and Lai, L.. Journal of Chemical Information and Computer Sciences. 1997. 37] and [Wang, R., Gao, Y., and Lai, L.. Perspectives in Drug Discovery and Design. 2000. 19]. Actually one molecular factor is missing (presence of para Hs donor pair).
Parameters for this descriptor: Name Default Description checkAromaticity false True is the aromaticity has to be checked salicylFlag false True is to use the salicyl acid correction factor changed 2005-11-03 by chhoppe
-Internal hydrogen bonds are implemented
CDK IDescriptor was validated against xlogp2.1
As mentioned in the xlogP tutorial don't use charges, always draw bonds. To some extend we can support charges but not in every case.CDK follows the program in following points (which is not documented in the paper):
-Atomtyp 7 is -0.137
-Atomtype 81 is -0.447
-pi system does not consider P or S
-ring system >3
-aromatic ring systems ≥6
-N atomtypes: (ring) is always (ring)c
-F 83 is not 0.375, the program uses 0.512 [2005-11-21]
-hydrophobic carbon is 1-3 relationship not 1-4 [2005-11-22]
-Atomtype C 34/35/36 perception corrected [2005-11-22]; before Atomtype perception ring perception is done -> slows run time
In question:
-Correction factor for salicylic acid (in paper, but not used by the program)
-Amid classification is not consequent (in 6 rings (R2)N-C(R)=0 is eg 46 and in !6 membered rings it is amid)
-sometimes O=C(R)-N(R)-C(R)=O is an amid ... sometimes not
-Value for internal H bonds is in paper 0.429 but for no454 it is 0.643
-pi system defintion, the neighbourhood is unclear
changed 2005-11-21 by chhoppe
-added new parameter for the salicyl acid correction factor
-Corrected P and S perception for charges- Author:
- mfe4, chhoppe
- Dictionary pointer(s):
- xlogP in the QSAR.sf.net Descriptors Dictionary [qsar-descriptors:xlogP]
- Source code:
- main
- Belongs to CDK module:
- qsarmolecular
- Keywords:
- XLogP, descriptor
- Created on:
- 2004-11-03
-
-
Field Summary
Fields Modifier and Type Field Description static SmartsPattern
C_TERMINAL_AMINO_ACID
static SmartsPattern
ORTHOPAIR
static SmartsPattern
P_AMINO_SULPHONIC_ACID
static SmartsPattern
SALICYLIC_ACID_PTRN
-
Constructor Summary
Constructors Constructor Description XLogPDescriptor()
Constructor for the XLogPDescriptor object.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description DescriptorValue
calculate(IAtomContainer atomContainer)
Calculates the xlogP for an atom container.String[]
getDescriptorNames()
Returns an array of names for each descriptor value calculated.IDescriptorResult
getDescriptorResultType()
Returns the specific type of the DescriptorResult object.String[]
getParameterNames()
Gets the parameterNames attribute of the XLogPDescriptor object.Object[]
getParameters()
Gets the parameters attribute of the XLogPDescriptor object.Object
getParameterType(String name)
Gets the parameterType attribute of the XLogPDescriptor object.DescriptorSpecification
getSpecification()
Gets the specification attribute of the XLogPDescriptor object.void
initialise(IChemObjectBuilder builder)
Default implementation of initialise allows optional override.void
setParameters(Object[] params)
Sets the parameters attribute of the XLogPDescriptor object.-
Methods inherited from class org.openscience.cdk.qsar.AbstractMolecularDescriptor
clone
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.openscience.cdk.qsar.IDescriptor
initialise
-
-
-
-
Field Detail
-
C_TERMINAL_AMINO_ACID
public static final SmartsPattern C_TERMINAL_AMINO_ACID
-
P_AMINO_SULPHONIC_ACID
public static final SmartsPattern P_AMINO_SULPHONIC_ACID
-
SALICYLIC_ACID_PTRN
public static final SmartsPattern SALICYLIC_ACID_PTRN
-
ORTHOPAIR
public static final SmartsPattern ORTHOPAIR
-
-
Method Detail
-
getSpecification
public DescriptorSpecification getSpecification()
Gets the specification attribute of the XLogPDescriptor object.- Specified by:
getSpecification
in interfaceIDescriptor
- Returns:
- The specification value
-
setParameters
public void setParameters(Object[] params) throws CDKException
Sets the parameters attribute of the XLogPDescriptor object.- Specified by:
setParameters
in interfaceIDescriptor
- Parameters:
params
- The new parameters value- Throws:
CDKException
- Description of the Exception- See Also:
getParameters()
-
getParameters
public Object[] getParameters()
Gets the parameters attribute of the XLogPDescriptor object.- Specified by:
getParameters
in interfaceIDescriptor
- Returns:
- The parameters value [boolean checkAromaticity, boolean salicylFlag]
- See Also:
setParameters(java.lang.Object[])
-
getDescriptorNames
public String[] getDescriptorNames()
Description copied from interface:IDescriptor
Returns an array of names for each descriptor value calculated. Many descriptors return multiple values. In general it is useful for the descriptor to indicate the names for each value. In many cases, these names can be as simple as X1, X2, ..., XN where X is a prefix and 1, 2, ..., N are the indices. On the other hand it is also possible to return other arbitrary names, which should be documented in the Javadocs for the descriptor (e.g., the CPSA descriptor). Note that by default if a descriptor returns a single value (such asALOGPDescriptor
the return array will have a single element- Specified by:
getDescriptorNames
in interfaceIDescriptor
- Returns:
- An array of descriptor names, equal in length to the number of descriptor calculated..
-
calculate
public DescriptorValue calculate(IAtomContainer atomContainer)
Calculates the xlogP for an atom container. If checkAromaticity is true, the method check the aromaticity, if false, means that the aromaticity has already been checked. It is necessary to use before the call of this mehtod the addExplicitHydrogensToSatisfyValency method (HydrogenAdder classe).- Specified by:
calculate
in interfaceIMolecularDescriptor
- Parameters:
atomContainer
- AtomContainer- Returns:
- XLogP is a double
-
getDescriptorResultType
public IDescriptorResult getDescriptorResultType()
Returns the specific type of the DescriptorResult object. The return value from this method really indicates what type of result will be obtained from theDescriptorValue
object. Note that the same result can be achieved by interrogating theDescriptorValue
object; this method allows you to do the same thing, without actually calculating the descriptor.- Specified by:
getDescriptorResultType
in interfaceIMolecularDescriptor
- Returns:
- an object that implements the
IDescriptorResult
interface indicating the actual type of values returned by the descriptor in theDescriptorValue
object
-
getParameterNames
public String[] getParameterNames()
Gets the parameterNames attribute of the XLogPDescriptor object.- Specified by:
getParameterNames
in interfaceIDescriptor
- Returns:
- The parameterNames value
-
getParameterType
public Object getParameterType(String name)
Gets the parameterType attribute of the XLogPDescriptor object.- Specified by:
getParameterType
in interfaceIDescriptor
- Parameters:
name
- Description of the Parameter- Returns:
- The parameterType value
-
initialise
public void initialise(IChemObjectBuilder builder)
Default implementation of initialise allows optional override.- Specified by:
initialise
in interfaceIDescriptor
- Parameters:
builder
- chem object build
-
-