ProteoWizard
ChromatogramList_Thermo.hpp
Go to the documentation of this file.
1//
2// $Id$
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>
42using namespace pwiz::vendor_api::Thermo;
43#endif // PWIZ_READER_THERMO
44
45
46using boost::shared_ptr;
47
48
49namespace pwiz {
50namespace msdata {
51namespace detail {
52
54{
55public:
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_
#define PWIZ_API_DECL
Definition Export.hpp:32
common functionality for base ChromatogramList implementations
virtual ChromatogramPtr chromatogram(size_t index, bool getBinaryData) const
retrieve a chromatogram by index
virtual size_t find(const string &id) const
find id in the chromatogram index (returns size() on failure)
virtual size_t size() const
returns the number of chromatograms
virtual const ChromatogramIdentity & chromatogramIdentity(size_t index) const
access to a chromatogram index
boost::shared_ptr< Chromatogram > ChromatogramPtr
Definition MSData.hpp:624
Identifying information for a chromatogram.
Definition MSData.hpp:490
This is the root element of ProteoWizard; it represents the mzML element, defined as: intended to cap...
Definition MSData.hpp:850
Reader configuration.
Definition Reader.hpp:45