ProteoWizard
SpectrumList_IonMobility.hpp
Go to the documentation of this file.
1 //
2 // $Id$
3 //
4 //
5 // Original author: Matt Chambers <matt.chambers <a.t> vanderbilt.edu>
6 //
7 // Copyright 2016 Vanderbilt University - Nashville, TN 37232
8 //
9 // Licensed under the Apache License, Version 2.0 (the "License");
10 // you may not use this file except in compliance with the License.
11 // You may obtain a copy of the License at
12 //
13 // http://www.apache.org/licenses/LICENSE-2.0
14 //
15 // Unless required by applicable law or agreed to in writing, software
16 // distributed under the License is distributed on an "AS IS" BASIS,
17 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 // See the License for the specific language governing permissions and
19 // limitations under the License.
20 //
21 
22 
23 #ifndef _SPECTRUMLIST_IONMOBILITY_HPP_
24 #define _SPECTRUMLIST_IONMOBILITY_HPP_
25 
26 
30 
31 namespace pwiz {
32 namespace analysis {
33 
34 /// SpectrumList implementation that provides access to vendor-specific ion mobility functions
36 {
37  public:
38 
40 
41  static bool accept(const msdata::SpectrumListPtr& inner);
42  virtual msdata::SpectrumPtr spectrum(size_t index, bool getBinaryData = false) const;
43 
44  // N.B this should agree with the enum IONMOBILITY_TYPE in pwiz_tools\BiblioSpec\src\BlibUtils.h
45  enum class IonMobilityUnits { none, drift_time_msec, inverse_reduced_ion_mobility_Vsec_per_cm2, compensation_V };
46 
48 
49  /// returns true if file in question contains necessary information for CCS/IonMobility handling (as with Drift Time in Agilent)
50  virtual bool canConvertIonMobilityAndCCS(IonMobilityUnits units) const;
51 
52  /// returns collisional cross-section associated with the ion mobility (units depend on IonMobilityEquipment)
53  virtual double ionMobilityToCCS(double ionMobility, double mz, int charge) const;
54 
55  /// returns the ion mobility (units depend on IonMobilityEquipment) associated with the given collisional cross-section
56  virtual double ccsToIonMobility(double ccs, double mz, int charge) const;
57 
58  /// for Waters SONAR data, given a (0-based) function number, a precursor m/z, and a tolerance, return the corresponding start and end "drift" bins
59  virtual std::pair<int, int> sonarMzToDriftBinRange(int function, float precursorMz, float precursorTolerance) const;
60 
61 
62 private:
63  enum class IonMobilityEquipment { None, AgilentDrift, WatersDrift, WatersSonar, BrukerTIMS, ThermoFAIMS };
67 };
68 
69 
70 } // namespace analysis
71 } // namespace pwiz
72 
73 
74 #endif // _SPECTRUMLIST_IONMOBILITY_HPP_
pwiz::msdata::SpectrumListPtr
boost::shared_ptr< SpectrumList > SpectrumListPtr
Definition: MSData.hpp:711
pwiz
Definition: ChromatogramList_Filter.hpp:36
pwiz::msdata::SpectrumListWrapper
Inheritable pass-through implementation for wrapping a SpectrumList.
Definition: SpectrumListWrapper.hpp:38
pwiz::analysis::SpectrumList_IonMobility::units_
IonMobilityUnits units_
Definition: SpectrumList_IonMobility.hpp:65
pwiz::analysis::SpectrumList_IonMobility::equipment_
IonMobilityEquipment equipment_
Definition: SpectrumList_IonMobility.hpp:64
PWIZ_API_DECL
#define PWIZ_API_DECL
Definition: Export.hpp:32
pwiz::analysis::SpectrumList_IonMobility::sl_
msdata::SpectrumListIonMobilityBase * sl_
Definition: SpectrumList_IonMobility.hpp:66
pwiz::analysis::SpectrumList_IonMobility::accept
static bool accept(const msdata::SpectrumListPtr &inner)
Export.hpp
pwiz::analysis::SpectrumList_IonMobility::spectrum
virtual msdata::SpectrumPtr spectrum(size_t index, bool getBinaryData=false) const
retrieve a spectrum by index
pwiz::analysis::SpectrumList_IonMobility::getIonMobilityUnits
virtual IonMobilityUnits getIonMobilityUnits() const
SpectrumListBase.hpp
pwiz::analysis::SpectrumList_IonMobility::ionMobilityToCCS
virtual double ionMobilityToCCS(double ionMobility, double mz, int charge) const
returns collisional cross-section associated with the ion mobility (units depend on IonMobilityEquipm...
pwiz::analysis::SpectrumList_IonMobility
SpectrumList implementation that provides access to vendor-specific ion mobility functions.
Definition: SpectrumList_IonMobility.hpp:36
pwiz::msdata::SpectrumPtr
boost::shared_ptr< Spectrum > SpectrumPtr
Definition: MSData.hpp:573
pwiz::analysis::SpectrumList_IonMobility::IonMobilityUnits
IonMobilityUnits
Definition: SpectrumList_IonMobility.hpp:45
pwiz::chemistry::Ion::mz
double mz(double neutralMass, int protonDelta, int electronDelta=0, int neutronDelta=0)
Definition: Ion.hpp:78
pwiz::analysis::SpectrumList_IonMobility::canConvertIonMobilityAndCCS
virtual bool canConvertIonMobilityAndCCS(IonMobilityUnits units) const
returns true if file in question contains necessary information for CCS/IonMobility handling (as with...
pwiz::analysis::SpectrumList_IonMobility::sonarMzToDriftBinRange
virtual std::pair< int, int > sonarMzToDriftBinRange(int function, float precursorMz, float precursorTolerance) const
for Waters SONAR data, given a (0-based) function number, a precursor m/z, and a tolerance,...
pwiz::analysis::SpectrumList_IonMobility::IonMobilityEquipment
IonMobilityEquipment
Definition: SpectrumList_IonMobility.hpp:63
pwiz::analysis::SpectrumList_IonMobility::ccsToIonMobility
virtual double ccsToIonMobility(double ccs, double mz, int charge) const
returns the ion mobility (units depend on IonMobilityEquipment) associated with the given collisional...
pwiz::msdata::SpectrumListIonMobilityBase
Definition: SpectrumListBase.hpp:75
pwiz::analysis::SpectrumList_IonMobility::SpectrumList_IonMobility
SpectrumList_IonMobility(const msdata::SpectrumListPtr &inner)
SpectrumListWrapper.hpp