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

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

@TestClass(value="org.openscience.cdk.qsar.descriptors.molecular.FMFDescriptorTest")
public class FMFDescriptor
extends Object
implements IMolecularDescriptor

An implementation of the FMF descriptor characterizing complexity of a molecule.

The descriptor is described in [Yang, Y. and Chen, H. and Nilsson, I. and Muresan, S. and Engkvist, O., Investigation of the Relationship between Topology and Selectivity for Druglike Molecules, J. Med. Chem., 2010, ASAP:] and is an approach to characterizing molecular complexity based on the Murcko framework present in the molecule. The descriptor is the ratio of heavy atoms in the framework to the total number of heavy atoms in the molecule. By definition, acyclic molecules which have no frameworks, will have a value of 0. Note that the authors consider an isolated ring system to be a framework (even though there is no linker). This descriptor returns a single double value, labeled as "FMF"

Author:
Rajarshi Guha
See Also:
MurckoFragmenter
Belongs to the set:
qsar-descriptors
Belongs to CDK module:
qsarmolecular
Dictionary pointer(s):
FMF in the QSAR.sf.net Descriptors Dictionary [qsar-descriptors:FMF]

Constructor Summary
FMFDescriptor()
           
 
Method Summary
 DescriptorValue calculate(IAtomContainer container)
          Calculates the FMF descriptor value for the given IAtomContainer.
 String[] getDescriptorNames()
          Returns an array of names for each descriptor value calculated.
 IDescriptorResult getDescriptorResultType()
          Returns the specific type of the FMF descriptor value.
 String[] getParameterNames()
          Returns the names of the parameters for this descriptor.
 Object[] getParameters()
          Returns the current parameter values.
 Object getParameterType(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(Object[] params)
          Sets the parameters for this descriptor.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FMFDescriptor

public FMFDescriptor()
Method Detail

calculate

@TestMethod(value="testCarbinoxamine,testIsamoltane,testPirenperone")
public DescriptorValue calculate(IAtomContainer container)
Calculates the FMF 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 contains the calculated FMF descriptor value as well as specification details

getDescriptorResultType

public IDescriptorResult getDescriptorResultType()
Returns the specific type of the FMF descriptor value. The FMF descriptor is a single, double value. 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.

Additionally, the length indicated by the result type must match the actual length of a descriptor calculated with the current parameters. Typically, the length of array result types vary with the values of the parameters. See IDescriptor for more details.

Specified by:
getDescriptorResultType in interface IMolecularDescriptor
Returns:
an instance of the DoubleResultType

getSpecification

public DescriptorSpecification getSpecification()
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 String[] getParameterNames()
Returns the names of the parameters for this descriptor. Since this descriptor takes no parameters, null is returned

Specified by:
getParameterNames in interface IDescriptor
Returns:
null, since there are no parameters

getParameterType

public Object getParameterType(String name)
Returns a class matching that of the parameter with the given name. Since this descriptor has no parameters, null is always returned

Specified by:
getParameterType in interface IDescriptor
Parameters:
name - The name of the parameter whose type is requested
Returns:
null, since this descriptor has no parameters

setParameters

public void setParameters(Object[] params)
                   throws CDKException
Sets the parameters for this descriptor.

This method does nothing, since the descriptor has no parameters

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:
getParameters()

getParameters

public Object[] getParameters()
Returns the current parameter values. null is returned since the descriptor has no parameters

Specified by:
getParameters in interface IDescriptor
Returns:
null, since there are no parameters
See Also:
setParameters(java.lang.Object[])

getDescriptorNames

public String[] getDescriptorNames()
Returns an array of names for each descriptor value calculated.

Since this descriptor returns a single value, the array has a single element, viz., "FMF"

Specified by:
getDescriptorNames in interface IDescriptor
Returns:
A 1-element string array, with the value "FMF"