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

« back to all changes in this revision

Viewing changes to include/OpenMS/TRANSFORMATIONS/FEATUREFINDER/ExtendedIsotopeModel.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: Clemens Groepl $
33
40
 
34
41
namespace OpenMS
35
42
{
36
 
  /** 
37
 
                @brief Extended isotope distribution approximated using linear interpolation.
 
43
  /**
 
44
        @brief Extended isotope distribution approximated using linear interpolation.
38
45
 
39
46
    This models a smoothed (widened) distribution, i.e. can be used to sample actual raw peaks (depending on the points you query).
40
47
    If you only want the distribution (no widening), use either
44
51
 
45
52
    Peak widening is achieved by a Gaussian shape.
46
53
 
47
 
                @htmlinclude OpenMS_ExtendedIsotopeModel.parameters
48
 
        */
49
 
        class OPENMS_DLLAPI ExtendedIsotopeModel
50
 
  : public InterpolationModel
 
54
        @htmlinclude OpenMS_ExtendedIsotopeModel.parameters
 
55
    */
 
56
  class OPENMS_DLLAPI ExtendedIsotopeModel :
 
57
    public InterpolationModel
51
58
  {
52
59
 
53
 
                public:
54
 
                typedef InterpolationModel::CoordinateType CoordinateType;
55
 
                typedef InterpolationModel::CoordinateType IntensityType;
 
60
public:
 
61
    typedef InterpolationModel::CoordinateType CoordinateType;
 
62
    typedef InterpolationModel::CoordinateType IntensityType;
56
63
 
57
 
                enum Averagines{C=0,H,N,O,S,AVERAGINE_NUM};
 
64
    enum Averagines {C = 0, H, N, O, S, AVERAGINE_NUM};
58
65
 
59
66
    /// Default constructor
60
67
    ExtendedIsotopeModel();
61
68
 
62
69
    ///  copy constructor
63
 
        ExtendedIsotopeModel(const ExtendedIsotopeModel& source);
 
70
    ExtendedIsotopeModel(const ExtendedIsotopeModel & source);
64
71
 
65
72
    /// destructor
66
73
    virtual ~ExtendedIsotopeModel();
67
74
 
68
75
    /// assignment operator
69
 
    virtual ExtendedIsotopeModel& operator = (const ExtendedIsotopeModel& source);
70
 
 
71
 
                UInt getCharge();
72
 
 
73
 
                /// create new ExtendedIsotopeModel object (needed by Factory)
74
 
                static BaseModel<1>* create()
 
76
    virtual ExtendedIsotopeModel & operator=(const ExtendedIsotopeModel & source);
 
77
 
 
78
    UInt getCharge();
 
79
 
 
80
    /// create new ExtendedIsotopeModel object (needed by Factory)
 
81
    static BaseModel<1> * create()
75
82
    {
76
 
             return new ExtendedIsotopeModel();
77
 
        }
 
83
      return new ExtendedIsotopeModel();
 
84
    }
78
85
 
79
 
                /// name of the model (needed by Factory)
 
86
    /// name of the model (needed by Factory)
80
87
    static const String getProductName()
81
88
    {
82
 
             return "ExtendedIsotopeModel";
83
 
        }
84
 
 
85
 
                /** @brief set the offset of the model
86
 
 
87
 
                        The whole model will be shifted to the new offset without being computing all over.
88
 
                        This leaves a discrepancy which is minor in small shifts (i.e. shifting by one or two
89
 
                        standard deviations) but can get significant otherwise. In that case use setParameters()
90
 
                        which enforces a recomputation of the model.
91
 
                */
92
 
                void setOffset(CoordinateType offset);
93
 
 
94
 
                CoordinateType getOffset();
95
 
 
96
 
                /// set sample/supporting points of interpolation
97
 
                void setSamples();
98
 
 
99
 
                /** @brief get the monoisotopic mass of the Isotope model
100
 
                */
101
 
                CoordinateType getCenter() const;
102
 
 
103
 
                protected:
104
 
                        CoordinateType isotope_stdev_;
105
 
                        UInt charge_;
106
 
                        CoordinateType monoisotopic_mz_;
107
 
                        DoubleReal averagine_[AVERAGINE_NUM];
108
 
                        Int max_isotope_;
109
 
                        DoubleReal trim_right_cutoff_;
110
 
                        DoubleReal isotope_distance_;
111
 
 
112
 
                void updateMembers_();
 
89
      return "ExtendedIsotopeModel";
 
90
    }
 
91
 
 
92
    /** @brief set the offset of the model
 
93
 
 
94
        The whole model will be shifted to the new offset without being computing all over.
 
95
        This leaves a discrepancy which is minor in small shifts (i.e. shifting by one or two
 
96
        standard deviations) but can get significant otherwise. In that case use setParameters()
 
97
        which enforces a recomputation of the model.
 
98
    */
 
99
    void setOffset(CoordinateType offset);
 
100
 
 
101
    CoordinateType getOffset();
 
102
 
 
103
    /// set sample/supporting points of interpolation
 
104
    void setSamples();
 
105
 
 
106
    /** @brief get the monoisotopic mass of the Isotope model
 
107
    */
 
108
    CoordinateType getCenter() const;
 
109
 
 
110
protected:
 
111
    CoordinateType isotope_stdev_;
 
112
    UInt charge_;
 
113
    CoordinateType monoisotopic_mz_;
 
114
    DoubleReal averagine_[AVERAGINE_NUM];
 
115
    Int max_isotope_;
 
116
    DoubleReal trim_right_cutoff_;
 
117
    DoubleReal isotope_distance_;
 
118
 
 
119
    void updateMembers_();
113
120
  };
114
121
}
115
122