Home  · Classes  · Annotated Classes  · Modules  · Members  · Namespaces  · Related Pages
Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
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 >

Public Types

typedef MassDecomposer
< ValueType,
DecompositionValueType >
::value_type 
value_type
 Type of value to be decomposed. More...
 
typedef MassDecomposer
< ValueType,
DecompositionValueType >
::decomposition_value_type 
decomposition_value_type
 Type of decomposition value. More...
 
typedef MassDecomposer
< ValueType,
DecompositionValueType >
::decomposition_type 
decomposition_type
 Type of decomposition. More...
 
typedef MassDecomposer
< ValueType,
DecompositionValueType >
::decompositions_type 
decompositions_type
 Type of container for many decompositions. More...
 
typedef
decomposition_type::size_type 
size_type
 Type of decomposition's size. More...
 
- Public Types inherited from MassDecomposer< ValueType, DecompositionValueType >
typedef ValueType value_type
 
typedef DecompositionValueType decomposition_value_type
 
typedef std::vector
< decomposition_value_type
decomposition_type
 
typedef std::vector
< decomposition_type
decompositions_type
 

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)
 
- Public Member Functions inherited from MassDecomposer< ValueType, DecompositionValueType >
virtual ~MassDecomposer ()
 

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
ValueTypeType of values to be decomposed.
DecompositionValueTypeType of decomposition elements.
Author
Anton Pervukhin Anton.nosp@m..Per.nosp@m.vukhi.nosp@m.n@Ce.nosp@m.BiTec.nosp@m..Uni.nosp@m.-Biel.nosp@m.efel.nosp@m.d.DE
Marcel Martin Marce.nosp@m.l.Ma.nosp@m.rtin@.nosp@m.CeBi.nosp@m.Tec.U.nosp@m.ni-B.nosp@m.ielef.nosp@m.eld..nosp@m.DE
Henner Sudek Henne.nosp@m.r.Su.nosp@m.dek@C.nosp@m.eBiT.nosp@m.ec.Un.nosp@m.i-Bi.nosp@m.elefe.nosp@m.ld.D.nosp@m.E

Member Typedef Documentation

typedef MassDecomposer<ValueType, DecompositionValueType>::decomposition_type decomposition_type

Type of decomposition.

typedef MassDecomposer<ValueType, DecompositionValueType>::decomposition_value_type decomposition_value_type

Type of decomposition value.

typedef MassDecomposer<ValueType, DecompositionValueType>::decompositions_type decompositions_type

Type of container for many decompositions.

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.

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

Type of witness vector.

Constructor & Destructor Documentation

IntegerMassDecomposer ( const Weights alphabet)
explicit

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
massMass to be decomposed.
alphabetMassIndexAn index of the mass in alphabet that is used on this step of recursion.
decompositionDecomposition which is calculated on this step of recursion.
decompositionsStoreContainer where decompositions are collected.
bool exist ( value_type  mass)
virtual

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

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

Implements MassDecomposer< ValueType, DecompositionValueType >.

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
massMass to be decomposed.
Returns
All possible decompositions for a given mass.

Implements MassDecomposer< ValueType, DecompositionValueType >.

IntegerMassDecomposer< ValueType, DecompositionValueType >::decomposition_type getDecomposition ( value_type  mass)
virtual

Gets one possible decomposition for mass.

Parameters
massMass to be decomposed.
Returns
One possible decomposition for a given mass.

Implements MassDecomposer< ValueType, DecompositionValueType >.

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
massMass 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
massMass to be decomposed
Returns
number of decompositions for given mass.

Implements MassDecomposer< ValueType, DecompositionValueType >.

Member Data Documentation

Weights alphabet_
private

Weights over which the mass is to be decomposed.

residues_table_type ertable_
private

Table with the residues of the smallest decomposable numbers over every modulo of the smallest alphabet mass are stored. Corresponds to the Extended Residue Table in the paper.

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

value_type infty_
private
residues_table_row_type lcms_
private

List of the least common multiples. Corresponds to the lcm data structure in the paper.

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

residues_table_row_type mass_in_lcms_
private

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 >::IntegerMassDecomposer().

witness_vector_type witness_vector_
private

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 >::IntegerMassDecomposer().


OpenMS / TOPP release 1.11.1 Documentation generated on Thu Nov 14 2013 11:19:37 using doxygen 1.8.5