OpenMS
Loading...
Searching...
No Matches
RealMassDecomposer.h
Go to the documentation of this file.
1// Copyright (c) 2002-present, OpenMS Inc. -- EKU Tuebingen, ETH Zurich, and FU Berlin
2// SPDX-License-Identifier: BSD-3-Clause
3//
4// --------------------------------------------------------------------------
5// $Maintainer: Timo Sachsenberg $
6// $Authors: Anton Pervukhin <Anton.Pervukhin@CeBiTec.Uni-Bielefeld.DE> $
7// --------------------------------------------------------------------------
8//
9
10#pragma once
11
12#include <utility>
13#include <map>
14#include <memory>
15
17
18namespace OpenMS
19{
20 namespace ims
21 {
22
38 class OPENMS_DLLAPI RealMassDecomposer
39 {
40public:
41
44
47
50
52 typedef unsigned long long number_of_decompositions_type;
53
55 typedef std::map<unsigned int, std::pair<unsigned int, unsigned int> > constraints_type;
56
66 explicit RealMassDecomposer(const Weights & weights);
67
79 decompositions_type getDecompositions(double mass, double error);
80
95 decompositions_type getDecompositions(double mass, double error, const constraints_type & constraints);
96
112
113private:
116
118 std::pair<double, double> rounding_errors_;
119
122
124 std::shared_ptr<integer_decomposer_type> decomposer_;
125 };
126
127 } // namespace ims
128} // namespace OpenMS
129
Implements MassDecomposer interface using algorithm and data structures described in paper "Efficient...
Definition IntegerMassDecomposer.h:46
MassDecomposer< ValueType, DecompositionValueType >::decompositions_type decompositions_type
Type of container for many decompositions.
Definition IntegerMassDecomposer.h:58
MassDecomposer< ValueType, DecompositionValueType >::value_type value_type
Type of value to be decomposed.
Definition IntegerMassDecomposer.h:49
Decomposes a real-valued mass over a real-valued alphabet of Weights, within a configurable absolute ...
Definition RealMassDecomposer.h:39
std::pair< double, double > rounding_errors_
Minimum and maximum relative rounding errors of weights_, captured at construction time.
Definition RealMassDecomposer.h:118
std::map< unsigned int, std::pair< unsigned int, unsigned int > > constraints_type
Per-alphabet-entry count constraint: alphabet index -> (min count, max count); both bounds inclusive.
Definition RealMassDecomposer.h:55
Weights weights_
Alphabet captured at construction time.
Definition RealMassDecomposer.h:115
integer_decomposer_type::decompositions_type decompositions_type
Result type of the integer decomposer (collection of decompositions).
Definition RealMassDecomposer.h:49
unsigned long long number_of_decompositions_type
Counter type returned by getNumberOfDecompositions.
Definition RealMassDecomposer.h:52
std::shared_ptr< integer_decomposer_type > decomposer_
Lazy integer decomposer reused across calls; captured at construction time.
Definition RealMassDecomposer.h:124
double precision_
Precision of weights_, captured at construction time.
Definition RealMassDecomposer.h:121
decompositions_type getDecompositions(double mass, double error)
All decompositions of mass within absolute tolerance error.
integer_decomposer_type::value_type integer_value_type
Integer mass values consumed by the integer decomposer.
Definition RealMassDecomposer.h:46
decompositions_type getDecompositions(double mass, double error, const constraints_type &constraints)
Same as getDecompositions(double,double), additionally filtered by per-alphabet count bounds.
number_of_decompositions_type getNumberOfDecompositions(double mass, double error)
Count of decompositions of mass within absolute tolerance error.
RealMassDecomposer(const Weights &weights)
Construct from an alphabet of Weights.
IntegerMassDecomposer integer_decomposer_type
Underlying integer decomposer.
Definition RealMassDecomposer.h:43
Pairs an alphabet of double-valued masses with the scaled integer weights derived from them.
Definition Weights.h:44
Main OpenMS namespace.
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19