1
// --------------------------------------------------------------------------
2
// OpenMS -- Open-Source Mass Spectrometry
3
// --------------------------------------------------------------------------
4
// Copyright The OpenMS Team -- Eberhard Karls University Tuebingen,
5
// ETH Zurich, and Freie Universitaet Berlin 2002-2013.
7
// This software is released under a three-clause BSD license:
8
// * Redistributions of source code must retain the above copyright
9
// notice, this list of conditions and the following disclaimer.
10
// * Redistributions in binary form must reproduce the above copyright
11
// notice, this list of conditions and the following disclaimer in the
12
// documentation and/or other materials provided with the distribution.
13
// * Neither the name of any author or any participating institution
14
// may be used to endorse or promote products derived from this software
15
// without specific prior written permission.
16
// For a full list of authors, refer to the file AUTHORS.
17
// --------------------------------------------------------------------------
18
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21
// ARE DISCLAIMED. IN NO EVENT SHALL ANY OF THE AUTHORS OR THE CONTRIBUTING
22
// INSTITUTIONS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
25
// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
26
// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
27
// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
28
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
// --------------------------------------------------------------------------
31
// $Maintainer: Florian Zeller $
32
// $Authors: Lukas Mueller, Markus Mueller $
33
// --------------------------------------------------------------------------
35
///////////////////////////////////////////////////////////////////////////
37
// written by Lukas N Mueller, 30.3.05
38
// Lukas.Mueller@imsb.biol.ethz.ch
39
// Group of Prof. Ruedi Aebersold, IMSB, ETH Hoenggerberg, Zurich
41
// Ported to OpenMS by Florian Zeller, florian.zeller@bsse.ethz.ch
45
#ifndef OPENMS_TRANSFORMATIONS_FEATUREFINDER_SUPERHIRN_CONSENSUSISOTOPEPATTERN_H
46
#define OPENMS_TRANSFORMATIONS_FEATUREFINDER_SUPERHIRN_CONSENSUSISOTOPEPATTERN_H
48
#include <OpenMS/CONCEPT/Types.h>
56
class OPENMS_DLLAPI ConsensusIsotopePattern
59
////////////////////////////////////////////////
60
// declaration of the private members:
64
// stores the consensus pattern:
65
std::map<double, double> isotopesTrace_;
66
std::vector<double> mzIsotopesStDev_;
67
std::vector<double> intensIsotopesStDev_;
69
// stores the detected patterns by retention time
70
std::map<double, std::pair<std::vector<double>, std::vector<double> > > rawIsotopes_;
72
////////////////////////////////////////////////
73
// declaration of the public members:
78
~ConsensusIsotopePattern();
81
ConsensusIsotopePattern();
82
// class copy constructor
83
ConsensusIsotopePattern(const ConsensusIsotopePattern &);
84
// class copy constructor
85
ConsensusIsotopePattern(const ConsensusIsotopePattern *);
87
//////////////////////////////////////////////////
88
// overload operators:
89
ConsensusIsotopePattern & operator=(const ConsensusIsotopePattern &);
90
bool operator==(const ConsensusIsotopePattern &);
91
ConsensusIsotopePattern & operator<=(const ConsensusIsotopePattern &);
92
ConsensusIsotopePattern & operator>=(const ConsensusIsotopePattern &);
93
ConsensusIsotopePattern & operator<(const ConsensusIsotopePattern &);
94
ConsensusIsotopePattern & operator>(const ConsensusIsotopePattern &);
96
// constructs the consensus pattern:
97
void constructConsusPattern();
98
// order an isotope trace in the correct cluster:
99
void addIsotopeTrace(double, double);
100
// condenses the pattern, make average peaks from the traces:
101
void condensIsotopePattern(std::pair<std::vector<double>, std::vector<double> > *);
103
///////////////////////////////
104
// start here all the get / set
105
// function to access the
106
// variables of the class
108
std::map<double, double>::iterator getConsensIsotopeIteratorStart();
109
std::map<double, double>::iterator getConsensIsotopeIteratorEnd();
113
inline std::map<double, double>::iterator ConsensusIsotopePattern::getConsensIsotopeIteratorStart()
115
return isotopesTrace_.begin();
118
inline std::map<double, double>::iterator ConsensusIsotopePattern::getConsensIsotopeIteratorEnd()
120
return isotopesTrace_.end();
126
#endif // OPENMS_TRANSFORMATIONS_FEATUREFINDER_SUPERHIRN_CONSENSUSISOTOPEPATTERN_H