Home  · Classes  · Annotated Classes  · Modules  · Members  · Namespaces  · Related Pages
Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes

IntegerMassDecomposer< ValueType, DecompositionValueType > Class Template Reference

Implements MassDecomposer interface using algorithm and data structures described in paper "Efficient Mass Decomposition" S. Bcker, Zs. Liptk, ACM SAC-BIO, 2004. More...

#include <OpenMS/CHEMISTRY/MASSDECOMPOSITION/IMS/IntegerMassDecomposer.h>

Inheritance diagram for IntegerMassDecomposer< ValueType, DecompositionValueType >:
MassDecomposer< ValueType, DecompositionValueType >

List of all members.

Public Types

typedef MassDecomposer
< ValueType,
DecompositionValueType >
::value_type 
value_type
 Type of value to be decomposed.
typedef MassDecomposer
< ValueType,
DecompositionValueType >
::decomposition_value_type 
decomposition_value_type
 Type of decomposition value.
typedef MassDecomposer
< ValueType,
DecompositionValueType >
::decomposition_type 
decomposition_type
 Type of decomposition.
typedef MassDecomposer
< ValueType,
DecompositionValueType >
::decompositions_type 
decompositions_type
 Type of container for many decompositions.
typedef
decomposition_type::size_type 
size_type
 Type of decomposition's size.

Public Member Functions

 IntegerMassDecomposer (const Weights &alphabet)
virtual bool exist (value_type mass)
virtual decomposition_type getDecomposition (value_type mass)
virtual decompositions_type getAllDecompositions (value_type mass)
virtual decomposition_value_type getNumberOfDecompositions (value_type mass)

Private Types

typedef std::vector< std::pair
< size_type,
decomposition_value_type > > 
witness_vector_type
typedef std::vector< value_typeresidues_table_row_type
typedef std::vector
< residues_table_row_type
residues_table_type

Private Member Functions

void fillExtendedResidueTable_ (const Weights &_alphabet, residues_table_row_type &_lcms, residues_table_row_type &_mass_in_lcms, const value_type _infty, witness_vector_type &_witness_vector, residues_table_type &_ertable)
void collectDecompositionsRecursively_ (value_type mass, size_type alphabetMassIndex, decomposition_type decomposition, decompositions_type &decompositionsStore)

Private Attributes

Weights alphabet_
residues_table_type ertable_
residues_table_row_type lcms_
residues_table_row_type mass_in_lcms_
value_type infty_
witness_vector_type witness_vector_

Detailed Description

template<typename ValueType = long unsigned int, typename DecompositionValueType = unsigned int>
class OpenMS::ims::IntegerMassDecomposer< ValueType, DecompositionValueType >

Implements MassDecomposer interface using algorithm and data structures described in paper "Efficient Mass Decomposition" S. Bcker, Zs. Liptk, ACM SAC-BIO, 2004.

The main idea is instead of using the classical dynamic programming algorithm, store the residues of the smallest decomposable numbers for every modulo of the smallest alphabet mass.

Parameters:
ValueType Type of values to be decomposed.
DecompositionValueType Type of decomposition elements.
Author:
Anton Pervukhin <Anton.Pervukhin@CeBiTec.Uni-Bielefeld.DE>
Marcel Martin <Marcel.Martin@CeBiTec.Uni-Bielefeld.DE>
Henner Sudek <Henner.Sudek@CeBiTec.Uni-Bielefeld.DE>

Member Typedef Documentation

typedef MassDecomposer<ValueType, DecompositionValueType>::decomposition_type decomposition_type

Type of decomposition.

Reimplemented from MassDecomposer< ValueType, DecompositionValueType >.

typedef MassDecomposer<ValueType, DecompositionValueType>::decomposition_value_type decomposition_value_type

Type of decomposition value.

Reimplemented from MassDecomposer< ValueType, DecompositionValueType >.

typedef MassDecomposer<ValueType, DecompositionValueType>::decompositions_type decompositions_type

Type of container for many decompositions.

Reimplemented from MassDecomposer< ValueType, DecompositionValueType >.

typedef std::vector<value_type> residues_table_row_type [private]

Type of rows of residues table.

typedef std::vector<residues_table_row_type> residues_table_type [private]

Type of the residues table.

typedef decomposition_type::size_type size_type

Type of decomposition's size.

typedef MassDecomposer<ValueType, DecompositionValueType>::value_type value_type

Type of value to be decomposed.

Reimplemented from MassDecomposer< ValueType, DecompositionValueType >.

typedef std::vector<std::pair<size_type, decomposition_value_type> > witness_vector_type [private]

Type of witness vector.


Constructor & Destructor Documentation


Member Function Documentation

void collectDecompositionsRecursively_ ( value_type  mass,
size_type  alphabetMassIndex,
decomposition_type  decomposition,
decompositions_type decompositionsStore 
) [private]

Collects decompositions for mass by recursion.

Parameters:
mass Mass to be decomposed.
alphabetMassIndex An index of the mass in alphabet that is used on this step of recursion.
decomposition Decomposition which is calculated on this step of recursion.
decompositionsStore Container where decompositions are collected.

References IntegerMassDecomposer< ValueType, DecompositionValueType >::alphabet_, IntegerMassDecomposer< ValueType, DecompositionValueType >::ertable_, Weights::getWeight(), IntegerMassDecomposer< ValueType, DecompositionValueType >::infty_, IntegerMassDecomposer< ValueType, DecompositionValueType >::lcms_, and IntegerMassDecomposer< ValueType, DecompositionValueType >::mass_in_lcms_.

Referenced by IntegerMassDecomposer< ValueType, DecompositionValueType >::getAllDecompositions().

bool exist ( value_type  mass  )  [virtual]

Returns true if decomposition over the mass exists, otherwise - false.

Parameters:
mass Mass to be decomposed.
Returns:
true if decomposition over a given mass exists, otherwise - false.

References IntegerMassDecomposer< ValueType, DecompositionValueType >::alphabet_, IntegerMassDecomposer< ValueType, DecompositionValueType >::ertable_, Weights::getWeight(), and IntegerMassDecomposer< ValueType, DecompositionValueType >::infty_.

Referenced by IntegerMassDecomposer< ValueType, DecompositionValueType >::getDecomposition().

void fillExtendedResidueTable_ ( const Weights _alphabet,
residues_table_row_type _lcms,
residues_table_row_type _mass_in_lcms,
const value_type  _infty,
witness_vector_type _witness_vector,
residues_table_type _ertable 
) [private]
IntegerMassDecomposer< ValueType, DecompositionValueType >::decompositions_type getAllDecompositions ( value_type  mass  )  [virtual]

Gets all possible decompositions for mass.

Parameters:
mass Mass to be decomposed.
Returns:
All possible decompositions for a given mass.

References IntegerMassDecomposer< ValueType, DecompositionValueType >::alphabet_, IntegerMassDecomposer< ValueType, DecompositionValueType >::collectDecompositionsRecursively_(), and Weights::size().

IntegerMassDecomposer< ValueType, DecompositionValueType >::decomposition_type getDecomposition ( value_type  mass  )  [virtual]
IntegerMassDecomposer< ValueType, DecompositionValueType >::decomposition_value_type getNumberOfDecompositions ( value_type  mass  )  [virtual]

Gets number of all possible decompositions for a given mass. Since using getAllDecomposition() the usage of this function could be consuming.

Parameters:
mass Mass to be decomposed
Returns:
number of decompositions for a given mass.

Gets number of all possible decompositions for a given mass. Since using getAllDecomposition() the usage of this function could be consuming.

Parameters:
mass Mass to be decomposed
Returns:
number of decompositions for given mass.

Member Data Documentation

List of the counters for the least common multiples that store the number how often the smallest alphabet mass fits into the correcponding least common multiple(lcm).

Referenced by IntegerMassDecomposer< ValueType, DecompositionValueType >::collectDecompositionsRecursively_(), and IntegerMassDecomposer< ValueType, DecompositionValueType >::IntegerMassDecomposer().

List of the witnesses that is used to find one mass decomposition. Corresponds to the witness vector w in the paper.

Referenced by IntegerMassDecomposer< ValueType, DecompositionValueType >::getDecomposition(), and IntegerMassDecomposer< ValueType, DecompositionValueType >::IntegerMassDecomposer().


OpenMS / TOPP release 1.10.0 Documentation generated on Thu Mar 7 2013 09:42:59 using doxygen 1.7.1