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-2015.
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  boost::shared_ptr<OpenSwath::IFeature> getPrecursorFeature(std::string nativeID);
96 
97  std::vector<std::string> getPrecursorIDs() const;
98 
99  float getIntensity();
100 
101  double getRT();
102 
103  size_t size();
104 
105 private:
107  std::map<std::string, boost::shared_ptr<FeatureOpenMS> > features_;
108  std::map<std::string, boost::shared_ptr<FeatureOpenMS> > precursor_features_;
109  };
110 
115  template <typename SpectrumT, typename TransitionT>
116  class OPENMS_DLLAPI TransitionGroupOpenMS :
118  {
119 public:
120 
122  trgroup_(trgroup)
123  {
124  }
125 
127  {
128  }
129 
130  std::size_t size()
131  {
132  return trgroup_.size();
133  }
134 
135  std::vector<std::string> getNativeIDs()
136  {
137  std::vector<std::string> result;
138  for (std::size_t i = 0; i < this->size(); i++)
139  {
140  result.push_back(trgroup_.getChromatograms()[i].getNativeID());
141  }
142  return result;
143  }
144 
145  void getLibraryIntensities(std::vector<double>& intensities)
146  {
147  trgroup_.getLibraryIntensity(intensities);
148  }
149 
150 private:
152  };
153 
158  template <typename PeakT>
159  class OPENMS_DLLAPI SignalToNoiseOpenMS :
161  {
162 public:
163 
165  double sn_win_len_, unsigned int sn_bin_count_) :
166  chromatogram_(chromat), sn_()
167  {
168  OpenMS::Param snt_parameters = sn_.getParameters();
169  snt_parameters.setValue("win_len", sn_win_len_);
170  snt_parameters.setValue("bin_count", sn_bin_count_);
171  sn_.setParameters(snt_parameters);
172  sn_.init(chromatogram_);
173  }
174 
175  double getValueAtRT(double RT)
176  {
177  if (chromatogram_.empty()) {return -1;}
178 
179  // Note that MZBegin does not seem to return the same iterator on
180  // different setups, see https://github.com/OpenMS/OpenMS/issues/1163
181  typename OpenMS::MSSpectrum<PeakT>::const_iterator iter = chromatogram_.MZEnd(RT);
182 
183  // ensure that iter is valid
184  if (iter == chromatogram_.end())
185  {
186  iter--;
187  }
188 
189  typename OpenMS::MSSpectrum<PeakT>::const_iterator prev = iter;
190  if (prev != chromatogram_.begin() )
191  {
192  prev--;
193  }
194 
195  if (std::fabs(prev->getMZ() - RT) < std::fabs(iter->getMZ() - RT) )
196  {
197  // prev is closer to the apex
198  return sn_.getSignalToNoise(*prev);
199  }
200  else
201  {
202  // iter is closer to the apex
203  return sn_.getSignalToNoise(*iter);
204  }
205  }
206 
207 private:
208 
211 
212  };
213 
214 }
215 
216 #endif
TransitionGroupOpenMS(MRMTransitionGroup< SpectrumT, TransitionT > &trgroup)
Definition: MRMFeatureAccessOpenMS.h:121
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:210
const OpenMS::MSSpectrum< PeakT > & chromatogram_
Definition: MRMFeatureAccessOpenMS.h:209
Feature * feature_
Definition: MRMFeatureAccessOpenMS.h:77
std::vector< std::string > getNativeIDs()
Definition: MRMFeatureAccessOpenMS.h:135
const MRMTransitionGroup< SpectrumT, TransitionT > & trgroup_
Definition: MRMFeatureAccessOpenMS.h:151
An implementation of the OpenSWATH Transition Group Access interface using OpenMS.
Definition: MRMFeatureAccessOpenMS.h:116
Iterator MZEnd(CoordinateType mz)
Binary search for peak range end (returns the past-the-end iterator)
Definition: MSSpectrum.h:560
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:47
Definition: ITransition.h:68
std::map< std::string, boost::shared_ptr< FeatureOpenMS > > features_
Definition: MRMFeatureAccessOpenMS.h:107
std::size_t size()
Definition: MRMFeatureAccessOpenMS.h:130
Definition: ITransition.h:46
The representation of a 1D spectrum.
Definition: MSSpectrum.h:66
An implementation of the OpenSWATH SignalToNoise Access interface using OpenMS.
Definition: MRMFeatureAccessOpenMS.h:159
void getLibraryIntensities(std::vector< double > &intensities)
Definition: MRMFeatureAccessOpenMS.h:145
SignalToNoiseOpenMS(OpenMS::MSSpectrum< PeakT > &chromat, double sn_win_len_, unsigned int sn_bin_count_)
Definition: MRMFeatureAccessOpenMS.h:164
An LC-MS feature.
Definition: Feature.h:70
std::map< std::string, boost::shared_ptr< FeatureOpenMS > > precursor_features_
Definition: MRMFeatureAccessOpenMS.h:108
Management and storage of parameters / INI files.
Definition: Param.h:75
Estimates the signal/noise (S/N) ratio of each data point in a scan by using the median (histogram ba...
Definition: SignalToNoiseEstimatorMedian.h:72
Definition: ITransition.h:56
const MRMFeature & mrmfeature_
Definition: MRMFeatureAccessOpenMS.h:106
~TransitionGroupOpenMS()
Definition: MRMFeatureAccessOpenMS.h:126
A multi-chromatogram MRM feature.
Definition: MRMFeature.h:50
double getValueAtRT(double RT)
Definition: MRMFeatureAccessOpenMS.h:175
Definition: ITransition.h:76
An implementation of the OpenSWATH MRM Feature Access interface using OpenMS.
Definition: MRMFeatureAccessOpenMS.h:84

OpenMS / TOPP release 2.0.0 Documentation generated on Fri May 29 2015 17:20:26 using doxygen 1.8.9.1