~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: 2012-11-12 15:58:12 UTC
  • Revision ID: package-import@ubuntu.com-20121112155812-vr15wtg9b50cuesg
Tags: upstream-1.9.0
ImportĀ upstreamĀ versionĀ 1.9.0

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: Clemens Groepl $
 
25
// $Authors: $
 
26
// --------------------------------------------------------------------------
 
27
 
 
28
 
 
29
#ifndef OPENMS_TRANSFORMATIONS_FEATUREFINDER_EXTENDEDISOTOPEMODEL_H
 
30
#define OPENMS_TRANSFORMATIONS_FEATUREFINDER_EXTENDEDISOTOPEMODEL_H
 
31
 
 
32
#include <OpenMS/TRANSFORMATIONS/FEATUREFINDER/InterpolationModel.h>
 
33
 
 
34
namespace OpenMS
 
35
{
 
36
  /** 
 
37
                @brief Extended isotope distribution approximated using linear interpolation.
 
38
 
 
39
    This models a smoothed (widened) distribution, i.e. can be used to sample actual raw peaks (depending on the points you query).
 
40
    If you only want the distribution (no widening), use either
 
41
    EmpiricalFormula::getIsotopeDistribution() // for a certain sum formula
 
42
    or
 
43
    IsotopeDistribution::estimateFromPeptideWeight (double average_weight)  // for averagine
 
44
 
 
45
    Peak widening is achieved by a Gaussian shape.
 
46
 
 
47
                @htmlinclude OpenMS_ExtendedIsotopeModel.parameters
 
48
        */
 
49
        class OPENMS_DLLAPI ExtendedIsotopeModel
 
50
  : public InterpolationModel
 
51
  {
 
52
 
 
53
                public:
 
54
                typedef InterpolationModel::CoordinateType CoordinateType;
 
55
                typedef InterpolationModel::CoordinateType IntensityType;
 
56
 
 
57
                enum Averagines{C=0,H,N,O,S,AVERAGINE_NUM};
 
58
 
 
59
    /// Default constructor
 
60
    ExtendedIsotopeModel();
 
61
 
 
62
    ///  copy constructor
 
63
        ExtendedIsotopeModel(const ExtendedIsotopeModel& source);
 
64
 
 
65
    /// destructor
 
66
    virtual ~ExtendedIsotopeModel();
 
67
 
 
68
    /// 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()
 
75
    {
 
76
             return new ExtendedIsotopeModel();
 
77
        }
 
78
 
 
79
                /// name of the model (needed by Factory)
 
80
    static const String getProductName()
 
81
    {
 
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_();
 
113
  };
 
114
}
 
115
 
 
116
#endif // OPENMS_TRANSFORMATIONS_FEATUREFINDER_EXTENDEDISOTOPEMODEL_H