org.openscience.cdk.qsar.descriptors.molecular
Class ALOGPDescriptor

java.lang.Object
  extended by org.openscience.cdk.qsar.descriptors.molecular.ALOGPDescriptor
All Implemented Interfaces:
IDescriptor, IMolecularDescriptor

public class ALOGPDescriptor
extends java.lang.Object
implements IMolecularDescriptor

This class calculates ALOGP (Ghose-Crippen LogKow) and the Ghose-Crippen molar refractivity @cdk.cite{GHOSE1986} @cdk.cite{GHOSE1987}. Note The code assumes that aromaticity has been detected before evaluating this descriptor. The code also expects that the molecule will have hydrogens explicitly set. For SD files, this is usually not a problem since hydrogens are explicit. But for the case of molecules obtained from SMILES, hydrogens must be made explicit.

TODO: what should sub return if have missing fragment? Just report sum for other fragments? Or report as -9999 and then dont use descriptor if have this value for any chemicals in cluster?

This descriptor uses these parameters:

Name Default Description
no parameters
Returns three values
  1. ALogP - Ghose-Crippen LogKow
  2. ALogP2
  3. AMR - molar refractivity

Author:
Todd Martin
See Also:
CDKHydrogenAdder, CDKHueckelAromaticityDetector
Belongs to the set:
qsar-descriptors
Keywords:
logP, lipophilicity, refractivity
Belongs to CDK module:
qsarmolecular
Source code:
revision 11707

Field Summary
 int[] alogpfrag
           
 
Constructor Summary
ALOGPDescriptor()
           
 
Method Summary
 DescriptorValue calculate(IAtomContainer container)
          Calculates the descriptor value for the given IAtomContainer.
 java.lang.String[] getDescriptorNames()
          Returns an array of names for each descriptor value calculated.
 IDescriptorResult getDescriptorResultType()
          Returns the specific type of the DescriptorResult object.
 java.lang.String[] getParameterNames()
          Returns the names of the parameters for this descriptor.
 java.lang.Object[] getParameters()
          Returns the current parameter values.
 java.lang.Object getParameterType(java.lang.String name)
          Returns a class matching that of the parameter with the given name.
 DescriptorSpecification getSpecification()
          Returns a Map which specifies which descriptor is implemented by this class.
 void setParameters(java.lang.Object[] params)
          Sets the parameters for this descriptor.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

alogpfrag

public int[] alogpfrag
Constructor Detail

ALOGPDescriptor

public ALOGPDescriptor()
                throws CDKException
Throws:
CDKException
Method Detail

calculate

public DescriptorValue calculate(IAtomContainer container)
Description copied from interface: IMolecularDescriptor
Calculates the descriptor value for the given IAtomContainer.

Specified by:
calculate in interface IMolecularDescriptor
Parameters:
container - An IAtomContainer for which this descriptor should be calculated
Returns:
An object of DescriptorValue that contain the calculated value as well as specification details

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 the DescriptorValue object. Note that the same result can be achieved by interrogating the DescriptorValue object; this method allows you to do the same thing, without actually calculating the descriptor.

Specified by:
getDescriptorResultType in interface IMolecularDescriptor
Returns:
an object that implements the IDescriptorResult interface indicating the actual type of values returned by the descriptor in the DescriptorValue object

getSpecification

public DescriptorSpecification getSpecification()
Description copied from interface: IDescriptor
Returns a Map which specifies which descriptor is implemented by this class. These fields are used in the map:

Specified by:
getSpecification in interface IDescriptor
Returns:
An object containing the descriptor specification

getParameterNames

public java.lang.String[] getParameterNames()
Description copied from interface: IDescriptor
Returns the names of the parameters for this descriptor. The method returns null or a zero-length Object[] array if the descriptor does not have any parameters.

Specified by:
getParameterNames in interface IDescriptor
Returns:
An array of String containing the names of the parameters that this descriptor can accept.

getParameterType

public java.lang.Object getParameterType(java.lang.String name)
Description copied from interface: IDescriptor
Returns a class matching that of the parameter with the given name. May only return null for when 'name' does not match any parameters returned by the getParameters() method.

Specified by:
getParameterType in interface IDescriptor
Parameters:
name - The name of the parameter whose type is requested
Returns:
An Object of the class corresponding to the parameter with the supplied name

setParameters

public void setParameters(java.lang.Object[] params)
                   throws CDKException
Description copied from interface: IDescriptor
Sets the parameters for this descriptor. Must be done before calling calculate as the parameters influence the calculation outcome.

Specified by:
setParameters in interface IDescriptor
Parameters:
params - An array of Object containing the parameters for this descriptor
Throws:
CDKException - if invalid number of type of parameters are passed to it
See Also:
IDescriptor.getParameters()

getParameters

public java.lang.Object[] getParameters()
Description copied from interface: IDescriptor
Returns the current parameter values. If not parameters have been set, it must return the default parameters. The method returns null or a zero-length Object[] array if the descriptor does not have any parameters.

Specified by:
getParameters in interface IDescriptor
Returns:
An array of Object containing the parameter default values
See Also:
IDescriptor.setParameters(java.lang.Object[])

getDescriptorNames

@TestMethod(value="testNamesConsistency")
public java.lang.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 decsriptor (e.g., the CPSA descriptor).

Note that by default if a descriptor returns a single value (such as ALOGPDescriptor the return array will have a single element

Specified by:
getDescriptorNames in interface IDescriptor
Returns:
An array of descriptor names, equal in length to the number of descriptor calculated..