Home  · Classes  · Annotated Classes  · Modules  · Members  · Namespaces  · Related Pages
MRMFeatureAccessOpenMS.h
Go to the documentation of this file.
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 $
32 // $Authors: Hannes Roest $
33 // --------------------------------------------------------------------------
34 
35 #ifndef OPENMS_ANALYSIS_OPENSWATH_DATAACCESS_MRMFEATUREACCESSOPENMS_H
36 #define OPENMS_ANALYSIS_OPENSWATH_DATAACCESS_MRMFEATUREACCESSOPENMS_H
37 
39 
40 #include <OpenMS/KERNEL/Feature.h>
44 
45 #include <boost/shared_ptr.hpp>
46 
47 // These classes are minimal implementations of the interfaces defined in ITransition:
48 // - IFeature
49 // - IMRMFeature
50 // - ITransitionGroup
51 // - ISignalToNoise
52 
53 namespace OpenMS
54 {
59  class OPENMS_DLLAPI FeatureOpenMS :
60  public OpenSwath::IFeature
61  {
62 public:
63 
64  explicit FeatureOpenMS(Feature& feature);
65 
66  ~FeatureOpenMS();
67 
68  void getRT(std::vector<double>& rt);
69 
70  void getIntensity(std::vector<double>& intens);
71 
72  float getIntensity();
73 
74  double getRT();
75 
76 private:
78  };
79 
84  class OPENMS_DLLAPI MRMFeatureOpenMS :
86  {
87 public:
88 
89  explicit MRMFeatureOpenMS(MRMFeature& mrmfeature);
90 
92 
93  boost::shared_ptr<OpenSwath::IFeature> getFeature(std::string nativeID);
94 
95  float getIntensity();
96 
97  double getRT();
98 
99 private:
101  std::map<std::string, boost::shared_ptr<FeatureOpenMS> > features_;
102  };
103 
108  template <typename SpectrumT, typename TransitionT>
109  class OPENMS_DLLAPI TransitionGroupOpenMS :
111  {
112 public:
113 
115  trgroup_(trgroup)
116  {
117  }
118 
120  {
121  }
122 
123  std::size_t size()
124  {
125  return trgroup_.size();
126  }
127 
128  std::vector<std::string> getNativeIDs()
129  {
130  std::vector<std::string> result;
131  for (std::size_t i = 0; i < this->size(); i++)
132  {
133  result.push_back(trgroup_.getChromatograms()[i].getNativeID());
134  }
135  return result;
136  }
137 
138  void getLibraryIntensities(std::vector<double>& intensities)
139  {
140  trgroup_.getLibraryIntensity(intensities);
141  }
142 
143 private:
145  };
146 
151  template <typename PeakT>
152  class OPENMS_DLLAPI SignalToNoiseOpenMS :
154  {
155 public:
156 
158  double sn_win_len_, unsigned int sn_bin_count_) :
159  chromatogram_(chromat), sn_()
160  {
161  OpenMS::Param snt_parameters = sn_.getParameters();
162  snt_parameters.setValue("win_len", sn_win_len_);
163  snt_parameters.setValue("bin_count", sn_bin_count_);
164  sn_.setParameters(snt_parameters);
165  sn_.init(chromatogram_);
166  }
167 
168  double getValueAtRT(double RT)
169  {
170  typename OpenMS::MSSpectrum<PeakT>::const_iterator it = chromatogram_.MZBegin(RT);
171  return sn_.getSignalToNoise(*it);
172  }
173 
174 private:
177  };
178 
179 }
180 
181 #endif
TransitionGroupOpenMS(MRMTransitionGroup< SpectrumT, TransitionT > &trgroup)
Definition: MRMFeatureAccessOpenMS.h:114
An implementation of the OpenSWATH Feature Access interface using OpenMS.
Definition: MRMFeatureAccessOpenMS.h:59
void setValue(const String &key, const DataValue &value, const String &description="", const StringList &tags=StringList())
Sets a value.
OpenMS::SignalToNoiseEstimatorMedian< OpenMS::MSSpectrum< PeakT > > sn_
Definition: MRMFeatureAccessOpenMS.h:176
const OpenMS::MSSpectrum< PeakT > & chromatogram_
Definition: MRMFeatureAccessOpenMS.h:175
Feature * feature_
Definition: MRMFeatureAccessOpenMS.h:77
std::vector< std::string > getNativeIDs()
Definition: MRMFeatureAccessOpenMS.h:128
const MRMTransitionGroup< SpectrumT, TransitionT > & trgroup_
Definition: MRMFeatureAccessOpenMS.h:144
An implementation of the OpenSWATH Transition Group Access interface using OpenMS.
Definition: MRMFeatureAccessOpenMS.h:109
Iterator MZBegin(CoordinateType mz)
Binary search for peak range begin.
Definition: MSSpectrum.h:506
Definition: ITransition.h:65
std::map< std::string, boost::shared_ptr< FeatureOpenMS > > features_
Definition: MRMFeatureAccessOpenMS.h:101
std::size_t size()
Definition: MRMFeatureAccessOpenMS.h:123
Definition: ITransition.h:46
The representation of a 1D spectrum.
Definition: MSSpectrum.h:67
An implementation of the OpenSWATH SignalToNoise Access interface using OpenMS.
Definition: MRMFeatureAccessOpenMS.h:152
void getLibraryIntensities(std::vector< double > &intensities)
Definition: MRMFeatureAccessOpenMS.h:138
SignalToNoiseOpenMS(OpenMS::MSSpectrum< PeakT > &chromat, double sn_win_len_, unsigned int sn_bin_count_)
Definition: MRMFeatureAccessOpenMS.h:157
An LC-MS feature.
Definition: Feature.h:66
Management and storage of parameters / INI files.
Definition: Param.h:69
Estimates the signal/noise (S/N) ratio of each data point in a scan by using the median (histogram ba...
Definition: SignalToNoiseEstimatorMedian.h:71
Definition: ITransition.h:56
const MRMFeature & mrmfeature_
Definition: MRMFeatureAccessOpenMS.h:100
~TransitionGroupOpenMS()
Definition: MRMFeatureAccessOpenMS.h:119
A multi-chromatogram MRM feature.
Definition: MRMFeature.h:50
double getValueAtRT(double RT)
Definition: MRMFeatureAccessOpenMS.h:168
Definition: ITransition.h:73
An implementation of the OpenSWATH MRM Feature Access interface using OpenMS.
Definition: MRMFeatureAccessOpenMS.h:84

OpenMS / TOPP release 1.11.1 Documentation generated on Thu Nov 14 2013 11:19:17 using doxygen 1.8.5