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

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

public class MomentOfInertiaDescriptor
extends java.lang.Object
implements IMolecularDescriptor

A descriptor that calculates the moment of inertia and radius of gyration. Moment of inertia (MI) values characterize the mass distribution of a molecule. Related to the MI values, ratios of the MI values along the three principal axes are also well know modeling variables. This descriptor calculates the MI values along the X, Y and Z axes as well as the ratio's X/Y, X/Z and Y/Z. Finally it also calculates the radius of gyration of the molecule.

The descriptor generates 7 values in the following order

One important aspect of the algorithm is that if the eigenvalues of the MI tensor are below 1e-3, then the ratio's are set to a default of 1000.

This descriptor uses these parameters:

Name Default Description
no parameters

Author:
Rajarshi Guha
Belongs to the set:
qsar-descriptors
Keywords:
moment of inertia
Created on:
2005-02-07
Required library to be able to run this class:
Jama-1.0.2.jar
Required library to be able to compile this class:
Jama-1.0.2.jar
Belongs to CDK module:
qsarmolecular
Dictionary pointer(s):
momentOfInertia in the QSAR.sf.net Descriptors Dictionary [qsar-descriptors:momentOfInertia]
Source code:
revision 11707

Constructor Summary
MomentOfInertiaDescriptor()
           
 
Method Summary
 DescriptorValue calculate(IAtomContainer container)
          Calculates the 3 MI's, 3 ration and the R_gyr value.
 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 MomentOfInertiaDescriptor object.
 java.lang.Object[] getParameters()
          Gets the parameters attribute of the MomentOfInertiaDescriptor object.
 java.lang.Object getParameterType(java.lang.String name)
          Gets the parameterType attribute of the MomentOfInertiaDescriptor 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 MomentOfInertiaDescriptor object.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MomentOfInertiaDescriptor

public MomentOfInertiaDescriptor()
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:

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 MomentOfInertiaDescriptor object.

Specified by:
setParameters in interface IDescriptor
Parameters:
params - The new parameters value
Throws:
CDKException - Description of the Exception
See Also:
getParameters()

getParameters

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

Specified by:
getParameters in interface IDescriptor
Returns:
The parameters value
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 MomentOfInertiaDescriptor 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 MomentOfInertiaDescriptor object.

Specified by:
getParameterType in interface IDescriptor
Parameters:
name - Description of the Parameter
Returns:
The parameterType value

calculate

public DescriptorValue calculate(IAtomContainer container)
Calculates the 3 MI's, 3 ration and the R_gyr value. The molecule should have hydrogens

Specified by:
calculate in interface IMolecularDescriptor
Parameters:
container - Parameter is the atom container.
Returns:
An ArrayList containing 7 elements in the order described above

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