ProteoWizard
ChromatogramList_Thermo.hpp
Go to the documentation of this file.
1 //
2 // $Id: ChromatogramList_Thermo.hpp 9490 2016-03-22 22:20:36Z pcbrefugee $
3 //
4 //
5 // Original author: Darren Kessner <darren@proteowizard.org>
6 //
7 // Copyright 2008 Spielberg Family Center for Applied Proteomics
8 // Cedars-Sinai Medical Center, Los Angeles, California 90048
9 //
10 // Licensed under the Apache License, Version 2.0 (the "License");
11 // you may not use this file except in compliance with the License.
12 // You may obtain a copy of the License at
13 //
14 // http://www.apache.org/licenses/LICENSE-2.0
15 //
16 // Unless required by applicable law or agreed to in writing, software
17 // distributed under the License is distributed on an "AS IS" BASIS,
18 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19 // See the License for the specific language governing permissions and
20 // limitations under the License.
21 //
22 
23 
24 #ifndef _CHROMATOGRAMLIST_THERMO_
25 #define _CHROMATOGRAMLIST_THERMO_
26 
27 
34 
35 
36 #ifdef PWIZ_READER_THERMO
37 #include "pwiz_aux/msrc/utility/vendor_api/thermo/RawFile.h"
40 #include <boost/icl/interval_set.hpp>
41 #include <boost/icl/continuous_interval.hpp>
42 using namespace pwiz::vendor_api::Thermo;
43 #endif // PWIZ_READER_THERMO
44 
45 
46 using boost::shared_ptr;
47 
48 
49 namespace pwiz {
50 namespace msdata {
51 namespace detail {
52 
54 {
55 public:
56 
57  virtual size_t size() const;
58  virtual const ChromatogramIdentity& chromatogramIdentity(size_t index) const;
59  virtual size_t find(const string& id) const;
60  virtual ChromatogramPtr chromatogram(size_t index, bool getBinaryData) const;
61 
62 #ifdef PWIZ_READER_THERMO
63  ChromatogramList_Thermo(const MSData& msd, RawFilePtr rawfile, const Reader::Config& config);
64 
65  ChromatogramPtr xic(double startTime, double endTime, const boost::icl::interval_set<double>& massRanges, int msLevel);
66 
67  private:
68 
69  const MSData& msd_;
70  shared_ptr<RawFile> rawfile_;
71  const Reader::Config config_;
72 
73  mutable util::once_flag_proxy indexInitialized_;
74 
75  struct IndexEntry : public ChromatogramIdentity
76  {
77  CVID chromatogramType;
78  ControllerType controllerType;
79  long controllerNumber;
80  string filter;
81  double q1, q3;
82  double q3Offset;
83  CVID polarityType;
84  };
85 
86  mutable vector<IndexEntry> index_;
87  mutable map<string, size_t> idMap_;
88 
89  void createIndex() const;
90 #endif // PWIZ_READER_THERMO
91 };
92 
93 } // detail
94 } // msdata
95 } // pwiz
96 
97 #endif // _CHROMATOGRAMLIST_THERMO_
common functionality for base ChromatogramList implementations
#define PWIZ_API_DECL
Definition: Export.hpp:32
Reader configuration.
Definition: Reader.hpp:43
Identifying information for a chromatogram.
Definition: MSData.hpp:488
This is the root element of ProteoWizard; it represents the mzML element, defined as: intended to cap...
Definition: MSData.hpp:845
boost::shared_ptr< Chromatogram > ChromatogramPtr
Definition: MSData.hpp:620
void filter(const TContainer &data, const TContainer &filter, TContainer &result, bool circular=false, uint32_t sides=2)
Applies linear convolution (filtering) to a univariate time series.
Definition: filter.hpp:112