~ubuntu-branches/ubuntu/wily/openms/wily

« back to all changes in this revision

Viewing changes to include/OpenMS/ANALYSIS/QUANTITATION/IsobaricQuantitationMethod.h

  • Committer: Package Import Robot
  • Author(s): Filippo Rusconi
  • Date: 2013-12-20 11:30:16 UTC
  • mfrom: (5.1.2 sid)
  • Revision ID: package-import@ubuntu.com-20131220113016-wre5g9bteeheq6he
Tags: 1.11.1-3
* remove version number from libbost development package names;
* ensure that AUTHORS is correctly shipped in all packages.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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.
 
6
//
 
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.
 
29
//
 
30
// --------------------------------------------------------------------------
 
31
// $Maintainer: Stephan Aiche $
 
32
// $Authors: Stephan Aiche $
 
33
// --------------------------------------------------------------------------
 
34
 
 
35
#ifndef OPENMS_ANALYSIS_QUANTITATION_ISOBARICQUANTITATIONMETHOD_H
 
36
#define OPENMS_ANALYSIS_QUANTITATION_ISOBARICQUANTITATIONMETHOD_H
 
37
 
 
38
#include <OpenMS/DATASTRUCTURES/DefaultParamHandler.h>
 
39
#include <OpenMS/DATASTRUCTURES/Matrix.h>
 
40
#include <OpenMS/DATASTRUCTURES/String.h>
 
41
 
 
42
#include <OpenMS/KERNEL/Peak2D.h>
 
43
 
 
44
#include <vector>
 
45
 
 
46
namespace OpenMS
 
47
{
 
48
  /**
 
49
    @brief Abstract base class describing an isobaric quantitation method in terms of the used channels and an isotope correction matrix.
 
50
  */
 
51
  class OPENMS_DLLAPI IsobaricQuantitationMethod :
 
52
    public DefaultParamHandler
 
53
  {
 
54
public:
 
55
 
 
56
    /**
 
57
      @brief Summary of an isobaric quantitation channel.
 
58
    */
 
59
    struct IsobaricChannelInformation
 
60
    {
 
61
      /// The name of the channel.
 
62
      Int name;
 
63
      /// The id of the channel.
 
64
      Int id;
 
65
      /// Optional description of the channel.
 
66
      String description;
 
67
      /// The expected centroid position of the channel peak in m/z.
 
68
      Peak2D::CoordinateType center;
 
69
 
 
70
      /// C'tor
 
71
      IsobaricChannelInformation(const Int name, const Int id, const String& description, const Peak2D::CoordinateType& center) :
 
72
        name(name),
 
73
        id(id),
 
74
        description(description),
 
75
        center(center)
 
76
      {
 
77
      }
 
78
 
 
79
    };
 
80
 
 
81
    /// @brief c'tor setting the name for the underlying param handler
 
82
    IsobaricQuantitationMethod();
 
83
 
 
84
    /// @brief d'tor
 
85
    virtual ~IsobaricQuantitationMethod();
 
86
 
 
87
    typedef std::vector<IsobaricChannelInformation> IsobaricChannelList;
 
88
 
 
89
    /**
 
90
      @brief Returns a unique name for the quantitation method.
 
91
 
 
92
      @return The unique name or identifier of the quantitation method.
 
93
    */
 
94
    virtual const String& getName() const = 0;
 
95
 
 
96
    /**
 
97
      @brief Returns information on the different channels used by the qunatitation method.
 
98
 
 
99
      @return A st::vector containing the channel information for this quantitation method.
 
100
    */
 
101
    virtual const IsobaricChannelList& getChannelInformation() const = 0;
 
102
 
 
103
    /**
 
104
      @brief Gives the number of channels available for this quantitation method.
 
105
 
 
106
      @return The number of channels available for this quantitation method.
 
107
    */
 
108
    virtual Size getNumberOfChannels() const = 0;
 
109
 
 
110
    /**
 
111
      @brief Returns an isotope correction matrix suitable for the given quantitation method.
 
112
    */
 
113
    virtual Matrix<double> getIsotopeCorrectionMatrix() const = 0;
 
114
    
 
115
    /**
 
116
      @brief Returns the index of the reference channel in the IsobaricChannelList (see IsobaricQuantitationMethod::getChannelInformation()).
 
117
    */
 
118
    virtual Size getReferenceChannel() const = 0;
 
119
 
 
120
protected:
 
121
    /**
 
122
      @brief Helper function to convert a string list containing an isotope correction matrix into a Matrix<double>.
 
123
 
 
124
      @param stringlist The StringList to convert.
 
125
      @return An isotope correction matrix as Matrix<double>.
 
126
    */
 
127
    Matrix<double> stringListToIsotopCorrectionMatrix_(const StringList& stringlist) const;
 
128
  };
 
129
} // namespace
 
130
 
 
131
#endif // OPENMS_ANALYSIS_QUANTITATION_ISOBARICQUANTITATIONMETHOD_H