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

« back to all changes in this revision

Viewing changes to include/OpenMS/ANALYSIS/TARGETED/IncludeExcludeTarget.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
 
// -*- Mode: C++; tab-width: 2; -*-
2
 
// vi: set ts=2:
3
 
//
4
 
// --------------------------------------------------------------------------
5
 
//                   OpenMS Mass Spectrometry Framework
6
 
// --------------------------------------------------------------------------
7
 
//  Copyright (C) 2003-2011 -- Oliver Kohlbacher, Knut Reinert
8
 
//
9
 
//  This library is free software; you can redistribute it and/or
10
 
//  modify it under the terms of the GNU Lesser General Public
11
 
//  License as published by the Free Software Foundation; either
12
 
//  version 2.1 of the License, or (at your option) any later version.
13
 
//
14
 
//  This library is distributed in the hope that it will be useful,
15
 
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
16
 
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17
 
//  Lesser General Public License for more details.
18
 
//
19
 
//  You should have received a copy of the GNU Lesser General Public
20
 
//  License along with this library; if not, write to the Free Software
21
 
//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
22
 
//
23
 
// --------------------------------------------------------------------------
24
 
// $Maintainer: Andreas Bertsch $
 
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: Hannes Roest $
25
32
// $Authors: Andreas Bertsch $
26
33
// --------------------------------------------------------------------------
27
34
 
30
37
 
31
38
#include <OpenMS/KERNEL/StandardTypes.h>
32
39
#include <OpenMS/METADATA/CVTermList.h>
 
40
#include <OpenMS/ANALYSIS/TARGETED/TargetedExperimentHelper.h>
33
41
 
34
42
#include <vector>
35
43
 
36
44
namespace OpenMS
37
45
{
38
 
        /**
39
 
                @brief This class stores a SRM/MRM transition
40
 
 
41
 
                The default values for precursor and product m/z values are
42
 
                set to numeric_limits<DoubleReal>::max(). Default values for 
43
 
                precursor an product charge is set to numeric_limits<Int>::max().
44
 
        */
45
 
        class OPENMS_DLLAPI IncludeExcludeTarget 
46
 
                : public CVTermList
47
 
        {
48
 
 
49
 
                public:
50
 
 
51
 
                struct Configuration
52
 
                        : public CVTermList
53
 
                {
54
 
                        String contact_ref;
55
 
                        String instrument_ref;
56
 
                        std::vector<CVTermList> validations;
57
 
 
58
 
                        Configuration& operator = (const Configuration& rhs)
59
 
                        {
60
 
                                if (this != &rhs)
61
 
                                {
62
 
                                        CVTermList::operator = (rhs);
63
 
                                        contact_ref = rhs.contact_ref;
64
 
                                        instrument_ref = rhs.instrument_ref;
65
 
                                        validations = rhs.validations;
66
 
                                }
67
 
                                return *this;
68
 
                        }
69
 
                };
70
 
 
71
 
                /** @name Constructors and destructors
72
 
                */
73
 
                //@{
74
 
                /// default constructor
75
 
                IncludeExcludeTarget();
76
 
 
77
 
                /// copy constructor
78
 
                IncludeExcludeTarget(const IncludeExcludeTarget& rhs);
79
 
 
80
 
                /// destructor
81
 
                virtual ~IncludeExcludeTarget();
82
 
                //@}
83
 
 
84
 
                /// assignment operator 
85
 
                IncludeExcludeTarget& operator = (const IncludeExcludeTarget& rhs);
86
 
 
87
 
                /** @name Accessors
88
 
                */
89
 
                //@{
90
 
                void setName(const String& name);
91
 
 
92
 
                const String& getName() const;
93
 
 
94
 
                void setPeptideRef(const String& peptide_ref);
95
 
 
96
 
                const String& getPeptideRef() const;
97
 
 
98
 
                void setCompoundRef(const String& compound_ref);
99
 
 
100
 
                const String& getCompoundRef() const;
101
 
 
102
 
                /// sets the precursor mz (Q1 value)
103
 
                void setPrecursorMZ(DoubleReal mz);
104
 
 
105
 
                DoubleReal getPrecursorMZ() const;
106
 
 
107
 
                void setPrecursorCVTermList(const CVTermList& list);
108
 
 
109
 
                void addPrecursorCVTerm(const CVTerm& cv_term);
110
 
 
111
 
                const CVTermList& getPrecursorCVTermList() const;
112
 
                
113
 
                void setProductMZ(DoubleReal mz);
114
 
 
115
 
                DoubleReal getProductMZ() const;
116
 
 
117
 
                void setProductCVTermList(const CVTermList& list);
118
 
 
119
 
                void addProductCVTerm(const CVTerm& cv_term);
120
 
 
121
 
                const CVTermList& getProductCVTermList() const;
122
 
 
123
 
                void setInterpretations(const std::vector<CVTermList>& interpretations);
124
 
 
125
 
                const std::vector<CVTermList>& getInterpretations() const;
126
 
 
127
 
                void addInterpretation(const CVTermList& interpretation);
128
 
 
129
 
                void setConfigurations(const std::vector<Configuration>& configuration);
130
 
                
131
 
                const std::vector<Configuration>& getConfigurations() const;
132
 
 
133
 
                void addConfiguration(const Configuration& configuration);
134
 
 
135
 
                void setPrediction(const CVTermList& prediction);
136
 
 
137
 
                void addPredictionTerm(const CVTerm& prediction);
138
 
 
139
 
                const CVTermList& getPrediction() const;
140
 
                //@}
141
 
 
142
 
                /** @name Predicates
143
 
                */
144
 
                //@{
145
 
                /// equality operator
146
 
                bool operator == (const IncludeExcludeTarget& rhs) const;
147
 
                
148
 
                /// inequality operator
149
 
                bool operator != (const IncludeExcludeTarget& rhs) const;
150
 
                //@}
151
 
 
152
 
                protected:
153
 
 
154
 
                void updateMembers_();
155
 
 
156
 
                String name_;
157
 
 
158
 
                DoubleReal precursor_mz_;
159
 
 
160
 
                CVTermList precursor_cv_terms_;
161
 
 
162
 
                DoubleReal product_mz_;
163
 
 
164
 
                CVTermList product_cv_terms_;
165
 
 
166
 
                std::vector<CVTermList> interpretation_list_;
167
 
        
168
 
                String peptide_ref_;
169
 
 
170
 
                String compound_ref_;
171
 
 
172
 
                std::vector<Configuration> configurations_;
173
 
 
174
 
                CVTermList prediction_;
175
 
        };
 
46
  /**
 
47
    @brief This class stores a SRM/MRM transition
 
48
 
 
49
    The default values for precursor and product m/z values are
 
50
    set to numeric_limits<DoubleReal>::max(). Default values for
 
51
    precursor an product charge is set to numeric_limits<Int>::max().
 
52
  */
 
53
  class OPENMS_DLLAPI IncludeExcludeTarget :
 
54
    public CVTermList
 
55
  {
 
56
 
 
57
public:
 
58
 
 
59
    typedef TargetedExperimentHelper::Configuration Configuration;
 
60
    typedef TargetedExperimentHelper::RetentionTime RetentionTime;
 
61
 
 
62
    /** @name Constructors and destructors
 
63
    */
 
64
    //@{
 
65
    /// default constructor
 
66
    IncludeExcludeTarget();
 
67
 
 
68
    /// copy constructor
 
69
    IncludeExcludeTarget(const IncludeExcludeTarget & rhs);
 
70
 
 
71
    /// destructor
 
72
    virtual ~IncludeExcludeTarget();
 
73
    //@}
 
74
 
 
75
    /// assignment operator
 
76
    IncludeExcludeTarget & operator=(const IncludeExcludeTarget & rhs);
 
77
 
 
78
    /** @name Accessors
 
79
    */
 
80
    //@{
 
81
    void setName(const String & name);
 
82
 
 
83
    const String & getName() const;
 
84
 
 
85
    void setPeptideRef(const String & peptide_ref);
 
86
 
 
87
    const String & getPeptideRef() const;
 
88
 
 
89
    void setCompoundRef(const String & compound_ref);
 
90
 
 
91
    const String & getCompoundRef() const;
 
92
 
 
93
    /// sets the precursor mz (Q1 value)
 
94
    void setPrecursorMZ(DoubleReal mz);
 
95
 
 
96
    DoubleReal getPrecursorMZ() const;
 
97
 
 
98
    void setPrecursorCVTermList(const CVTermList & list);
 
99
 
 
100
    void addPrecursorCVTerm(const CVTerm & cv_term);
 
101
 
 
102
    const CVTermList & getPrecursorCVTermList() const;
 
103
 
 
104
    void setProductMZ(DoubleReal mz);
 
105
 
 
106
    DoubleReal getProductMZ() const;
 
107
 
 
108
    void setProductCVTermList(const CVTermList & list);
 
109
 
 
110
    void addProductCVTerm(const CVTerm & cv_term);
 
111
 
 
112
    const CVTermList & getProductCVTermList() const;
 
113
 
 
114
    void setInterpretations(const std::vector<CVTermList> & interpretations);
 
115
 
 
116
    const std::vector<CVTermList> & getInterpretations() const;
 
117
 
 
118
    void addInterpretation(const CVTermList & interpretation);
 
119
 
 
120
    void setConfigurations(const std::vector<Configuration> & configuration);
 
121
 
 
122
    const std::vector<Configuration> & getConfigurations() const;
 
123
 
 
124
    void addConfiguration(const Configuration & configuration);
 
125
 
 
126
    void setPrediction(const CVTermList & prediction);
 
127
 
 
128
    void addPredictionTerm(const CVTerm & prediction);
 
129
 
 
130
    const CVTermList & getPrediction() const;
 
131
 
 
132
    void setRetentionTime(RetentionTime rt);
 
133
 
 
134
    const RetentionTime & getRetentionTime() const;
 
135
    //@}
 
136
 
 
137
    /** @name Predicates
 
138
    */
 
139
    //@{
 
140
    /// equality operator
 
141
    bool operator==(const IncludeExcludeTarget & rhs) const;
 
142
 
 
143
    /// inequality operator
 
144
    bool operator!=(const IncludeExcludeTarget & rhs) const;
 
145
    //@}
 
146
 
 
147
protected:
 
148
 
 
149
    void updateMembers_();
 
150
 
 
151
    String name_;
 
152
 
 
153
    DoubleReal precursor_mz_;
 
154
 
 
155
    CVTermList precursor_cv_terms_;
 
156
 
 
157
    DoubleReal product_mz_;
 
158
 
 
159
    CVTermList product_cv_terms_;
 
160
 
 
161
    std::vector<CVTermList> interpretation_list_;
 
162
 
 
163
    String peptide_ref_;
 
164
 
 
165
    String compound_ref_;
 
166
 
 
167
    std::vector<Configuration> configurations_;
 
168
 
 
169
    CVTermList prediction_;
 
170
 
 
171
    RetentionTime rts_;
 
172
 
 
173
  };
176
174
}
177
175
 
178
176
#endif // OPENMS_ANALYSIS_TARGETED_INCLUDEEXCLUDETARGET_H
179