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

« back to all changes in this revision

Viewing changes to include/OpenMS/DATASTRUCTURES/Adduct.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
 
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.
22
29
//
23
30
// --------------------------------------------------------------------------
24
31
// $Maintainer: Chris Bielow $
33
40
#include <OpenMS/DATASTRUCTURES/String.h>
34
41
#include <OpenMS/CHEMISTRY/EmpiricalFormula.h>
35
42
 
36
 
namespace OpenMS {
37
 
    
38
 
class OPENMS_DLLAPI Adduct
 
43
namespace OpenMS
39
44
{
 
45
 
 
46
  class OPENMS_DLLAPI Adduct
 
47
  {
40
48
public:
41
49
 
42
 
                typedef std::vector< Adduct > AdductsType;
 
50
    typedef std::vector<Adduct> AdductsType;
43
51
 
44
 
                /// Default C'tor
 
52
    /// Default C'tor
45
53
    Adduct();
46
54
 
47
 
                /// C'tor with initial charge
 
55
    /// C'tor with initial charge
48
56
    Adduct(Int charge);
49
57
 
50
 
                /// C'tor for all members
51
 
    Adduct(Int charge, Int amount, DoubleReal singleMass, String formula, DoubleReal log_prob, DoubleReal rt_shift, const String label="");
 
58
    /// C'tor for all members
 
59
    Adduct(Int charge, Int amount, DoubleReal singleMass, String formula, DoubleReal log_prob, DoubleReal rt_shift, const String label = "");
52
60
 
53
 
                /// Increase amount of this adduct by factor @param m
54
 
    Adduct operator *(const Int m) const;
 
61
    /// Increase amount of this adduct by factor @param m
 
62
    Adduct operator*(const Int m) const;
55
63
    /// Add two adducts amount if they are equal (defined by equal formula)
56
 
    Adduct operator +(const Adduct& rhs);
57
 
                /// Add other adducts amount to *this (equal formula required!)
58
 
    void operator +=(const Adduct& rhs);
59
 
 
60
 
                
61
 
                /// Print the contents of an Adduct to a stream.
62
 
    friend OPENMS_DLLAPI std::ostream& operator << (std::ostream& os, const Adduct& a);
63
 
 
64
 
                /// Comparator
65
 
                friend OPENMS_DLLAPI bool operator==(const Adduct& a, const Adduct& b);
66
 
        
 
64
    Adduct operator+(const Adduct & rhs);
 
65
    /// Add other adducts amount to *this (equal formula required!)
 
66
    void operator+=(const Adduct & rhs);
 
67
 
 
68
 
 
69
    /// Print the contents of an Adduct to a stream.
 
70
    friend OPENMS_DLLAPI std::ostream & operator<<(std::ostream & os, const Adduct & a);
 
71
 
 
72
    /// Comparator
 
73
    friend OPENMS_DLLAPI bool operator==(const Adduct & a, const Adduct & b);
 
74
 
67
75
    //@{ Accessors
68
 
    const Int& getCharge() const;
69
 
    
70
 
    void setCharge(const Int& charge);
71
 
 
72
 
    const Int& getAmount() const;
73
 
    void setAmount(const Int& amount);
74
 
    
75
 
    const DoubleReal& getSingleMass() const;
76
 
    void setSingleMass(const DoubleReal& singleMass);
77
 
 
78
 
    const DoubleReal& getLogProb() const;
79
 
    void setLogProb(const DoubleReal& log_prob);
80
 
    
81
 
    const String& getFormula() const;
82
 
    void setFormula(const String& formula);
83
 
    
84
 
                const DoubleReal& getRTShift() const;
85
 
    const String& getLabel() const;
86
 
                //}
87
 
    
 
76
    const Int & getCharge() const;
 
77
 
 
78
    void setCharge(const Int & charge);
 
79
 
 
80
    const Int & getAmount() const;
 
81
    void setAmount(const Int & amount);
 
82
 
 
83
    const DoubleReal & getSingleMass() const;
 
84
    void setSingleMass(const DoubleReal & singleMass);
 
85
 
 
86
    const DoubleReal & getLogProb() const;
 
87
    void setLogProb(const DoubleReal & log_prob);
 
88
 
 
89
    const String & getFormula() const;
 
90
    void setFormula(const String & formula);
 
91
 
 
92
    const DoubleReal & getRTShift() const;
 
93
    const String & getLabel() const;
 
94
    //}
 
95
 
88
96
private:
89
97
    Int charge_; //< usually +1
90
98
    Int amount_; //< number of entities
91
99
    DoubleReal singleMass_; //< mass of a single entity
92
100
    DoubleReal log_prob_;   //< log probability of observing a single entity of this adduct
93
101
    String formula_;   //< chemical formula (parsable by EmpiricalFormula)
94
 
                DoubleReal rt_shift_; //< RT shift induced by a single entity of this adduct (this is for adducts attached prior to ESI, e.g. labeling)
95
 
                String label_; //< Label for this adduct (can be used to indicate heavy labels)
96
 
 
97
 
                String checkFormula_(const String & formula);
98
 
 
99
 
};
 
102
    DoubleReal rt_shift_;     //< RT shift induced by a single entity of this adduct (this is for adducts attached prior to ESI, e.g. labeling)
 
103
    String label_;     //< Label for this adduct (can be used to indicate heavy labels)
 
104
 
 
105
    String checkFormula_(const String & formula);
 
106
 
 
107
  };
100
108
 
101
109
} // namespace OpenMS
102
110
 
103
111
 
104
112
#endif
105