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: Stephan Aiche $
32
// $Authors: Stephan Aiche $
33
// --------------------------------------------------------------------------
35
#ifndef OPENMS_ANALYSIS_QUANTITATION_ISOBARICQUANTITATIONMETHOD_H
36
#define OPENMS_ANALYSIS_QUANTITATION_ISOBARICQUANTITATIONMETHOD_H
38
#include <OpenMS/DATASTRUCTURES/DefaultParamHandler.h>
39
#include <OpenMS/DATASTRUCTURES/Matrix.h>
40
#include <OpenMS/DATASTRUCTURES/String.h>
42
#include <OpenMS/KERNEL/Peak2D.h>
49
@brief Abstract base class describing an isobaric quantitation method in terms of the used channels and an isotope correction matrix.
51
class OPENMS_DLLAPI IsobaricQuantitationMethod :
52
public DefaultParamHandler
57
@brief Summary of an isobaric quantitation channel.
59
struct IsobaricChannelInformation
61
/// The name of the channel.
63
/// The id of the channel.
65
/// Optional description of the channel.
67
/// The expected centroid position of the channel peak in m/z.
68
Peak2D::CoordinateType center;
71
IsobaricChannelInformation(const Int name, const Int id, const String& description, const Peak2D::CoordinateType& center) :
74
description(description),
81
/// @brief c'tor setting the name for the underlying param handler
82
IsobaricQuantitationMethod();
85
virtual ~IsobaricQuantitationMethod();
87
typedef std::vector<IsobaricChannelInformation> IsobaricChannelList;
90
@brief Returns a unique name for the quantitation method.
92
@return The unique name or identifier of the quantitation method.
94
virtual const String& getName() const = 0;
97
@brief Returns information on the different channels used by the qunatitation method.
99
@return A st::vector containing the channel information for this quantitation method.
101
virtual const IsobaricChannelList& getChannelInformation() const = 0;
104
@brief Gives the number of channels available for this quantitation method.
106
@return The number of channels available for this quantitation method.
108
virtual Size getNumberOfChannels() const = 0;
111
@brief Returns an isotope correction matrix suitable for the given quantitation method.
113
virtual Matrix<double> getIsotopeCorrectionMatrix() const = 0;
116
@brief Returns the index of the reference channel in the IsobaricChannelList (see IsobaricQuantitationMethod::getChannelInformation()).
118
virtual Size getReferenceChannel() const = 0;
122
@brief Helper function to convert a string list containing an isotope correction matrix into a Matrix<double>.
124
@param stringlist The StringList to convert.
125
@return An isotope correction matrix as Matrix<double>.
127
Matrix<double> stringListToIsotopCorrectionMatrix_(const StringList& stringlist) const;
131
#endif // OPENMS_ANALYSIS_QUANTITATION_ISOBARICQUANTITATIONMETHOD_H