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

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

public class BCUTDescriptor
extends java.lang.Object
implements IMolecularDescriptor

Eigenvalue based descriptor noted for its utility in chemical diversity. Described by Pearlman et al. [Pearlman, R.S. and Smith, K.M., Metric Validation and the Receptor-Relevant Subspace Concept, J. Chem. Inf. Comput. Sci., 1999, 39:28-35].

The descriptor is based on a weighted version of the Burden matrix [Burden, F.R., Molecular identification number for substructure searches , J. Chem. Inf. Comput. Sci., 1989, 29:225-227, Burden, F.R., Chemically Intuitive Molecular Index, Quant. Struct .-Act. Relat., 1997, 16:309-314] which takes into account both the connectivity as well as atomic properties of a molecule. The weights are a variety of atom properties placed along the diagonal of the Burden matrix. Currently three weighting schemes are employed

By default, the descriptor will return the highest and lowest eigenvalues for the three classes of descriptor in a single ArrayList (in the order shown above). However it is also possible to supply a parameter list indicating how many of the highest and lowest eigenvalues (for each class of descriptor) are required. The descriptor works with the hydrogen depleted molecule.

A side effect of specifying the number of highest and lowest eigenvalues is that it is possible to get two copies of all the eigenvalues. That is, if a molecule has 5 heavy atoms, then specifying the 5 highest eigenvalues returns all of them, and specifying the 5 lowest eigenvalues returns all of them, resulting in two copies of all the eigenvalues.

Note that it is possible to specify an arbitrarily large number of eigenvalues to be returned. However if the number (i.e., nhigh or nlow) is larger than the number of heavy atoms, the remaining eignevalues will be NaN.

Given the above description, if the aim is to gt all the eigenvalues for a molecule, you should set nlow to 0 and specify the number of heavy atoms (or some large number) for nhigh (or vice versa).

This descriptor uses these parameters:

Name Default Description
nhigh 1 The number of highest eigenvalue
nlow 1 The number of lowest eigenvalue
checkAromaticity true Whether aromaticity should be checked

Returns an array of values in the following order

  1. BCUTw-1l, BCUTw-2l ... - nhigh lowest atom weighted BCUTS
  2. BCUTw-1h, BCUTw-2h ... - nlow highest atom weighted BCUTS
  3. BCUTc-1l, BCUTc-2l ... - nhigh lowest partial charge weighted BCUTS
  4. BCUTc-1h, BCUTc-2h ... - nlow highest partial charge weighted BCUTS
  5. BCUTp-1l, BCUTp-2l ... - nhigh lowest polarizability weighted BCUTS
  6. BCUTp-1h, BCUTp-2h ... - nlow highest polarizability weighted BCUTS

    Author:
    Rajarshi Guha
    Belongs to the set:
    qsar-descriptors
    Keywords:
    BCUT, descriptor
    Created on:
    2004-11-30
    Required library to be able to run this class:
    Jama-1.0.1.jar
    Required library to be able to compile this class:
    Jama-1.0.1.jar
    Belongs to CDK module:
    qsarmolecular
    Dictionary pointer(s):
    BCUT in the QSAR.sf.net Descriptors Dictionary [qsar-descriptors:BCUT]
    Source code:
    revision 12155

    Constructor Summary
    BCUTDescriptor()
               
     
    Method Summary
     DescriptorValue calculate(IAtomContainer container)
              Calculates the three classes of BCUT descriptors.
     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()
              Gets the parameterNames attribute of the BCUTDescriptor object.
     java.lang.Object[] getParameters()
              Gets the parameters attribute of the BCUTDescriptor object.
     java.lang.Object getParameterType(java.lang.String name)
              Gets the parameterType attribute of the BCUTDescriptor object.
     DescriptorSpecification getSpecification()
              Returns a Map which specifies which descriptor is implemented by this class.
     void setParameters(java.lang.Object[] params)
              Sets the parameters attribute of the BCUTDescriptor object.
     
    Methods inherited from class java.lang.Object
    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
     

    Constructor Detail

    BCUTDescriptor

    public BCUTDescriptor()
    Method Detail

    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:
    • Specification-Reference: refers to an entry in a unique dictionary
    • Implementation-Title: anything
    • Implementation-Identifier: a unique identifier for this version of this class
    • Implementation-Vendor: CDK, JOELib, or anything else

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

    setParameters

    public void setParameters(java.lang.Object[] params)
                       throws CDKException
    Sets the parameters attribute of the BCUTDescriptor object.

    Specified by:
    setParameters in interface IDescriptor
    Parameters:
    params - The new parameter values. This descriptor takes 3 parameters: number of highest eigenvalues and number of lowest eigenvalues. If 0 is specified for either (the default) then all calculated eigenvalues are returned. The third parameter checkAromaticity is a boolean. If checkAromaticity is true, the method check the aromaticity, if false, means that the aromaticity has already been checked.
    Throws:
    CDKException - if the parameters are of the wrong type
    See Also:
    getParameters()

    getParameters

    public java.lang.Object[] getParameters()
    Gets the parameters attribute of the BCUTDescriptor object.

    Specified by:
    getParameters in interface IDescriptor
    Returns:
    Three element array of Integer and one boolean representing number of highest and lowest eigenvalues and the checkAromaticity flag to return respectively
    See Also:
    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..

    getParameterNames

    public java.lang.String[] getParameterNames()
    Gets the parameterNames attribute of the BCUTDescriptor object.

    Specified by:
    getParameterNames in interface IDescriptor
    Returns:
    The parameterNames value

    getParameterType

    public java.lang.Object getParameterType(java.lang.String name)
    Gets the parameterType attribute of the BCUTDescriptor object.

    Specified by:
    getParameterType in interface IDescriptor
    Parameters:
    name - Description of the Parameter (can be either 'nhigh' or 'nlow' or checkAromaticity)
    Returns:
    The parameterType value

    calculate

    public DescriptorValue calculate(IAtomContainer container)
    Calculates the three classes of BCUT descriptors.

    Specified by:
    calculate in interface IMolecularDescriptor
    Parameters:
    container - Parameter is the atom container.
    Returns:
    An ArrayList containing the descriptors. The default is to return all calculated eigenvalues of the Burden matrices in the order described above. If a parameter list was supplied, then only the specified number of highest and lowest eigenvalues (for each class of BCUT) will be returned.

    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