ProteoWizard
SpectrumList_MZRefiner.hpp
Go to the documentation of this file.
1 //
2 // $Id: SpectrumList_MZRefiner.hpp 8985 2015-10-12 22:38:57Z chambm $
3 //
4 //
5 // Original author: Bryson Gibbons <bryson.gibbons@pnnl.gov>
6 //
7 // Copyright 2014 Pacific Northwest National Laboratory
8 // Richland, WA 99352
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 _SPECTRUMLIST_MZREFINER_HPP_
25 #define _SPECTRUMLIST_MZREFINER_HPP_
26 
27 /***************************************************************************************
28 ****************************************************************************************
29 ****************************************************************************************
30 ****************************************************************************************
31 ASSUMPTIONS:
32 We are assuming that the instrument used to produce the data has at most ONE high-resolution mass analyzer.
33 - If an instrument contained TWO high-resolution mass analyzers, two different shifts would be needed, as well as the computations to create those shifts.
34 - We don't have such an instrument, and so we have no way to properly test that configuration, much less any reason to write code to work with it.
35 ========================================================================================
36 LIMITATIONS:
37 This feature was created to modify m/z values using a bias generated from peptide identifications consistent with a single run.
38 - It has not been tested with merged data files. There would be little sense to using it with merged data files, since that would
39  involve trying to create multiple shifts from one identification file and use them appropriately on one data file.
40 - It has not been tested on data files with combined spectra. I have not seen any reason to, and producing a good result would likely involve accessing the original spectra anyway.
41 - There are inherent challenges in finding the scan start time for a spectrum if it is not included in the identification file.
42  If the identification file was not created using an mzML file (directly from native files), and the data file
43  used for the refinement operation is not the mzML file (or the native file(s)), then we will probably just exclude
44  the scan time dependent shift, since most other supported file types do not store the native ID.
45 ========================================================================================
46 ========================================================================================
47 DETERMINE IF THESE SHOULD BE ADDED TO THE USAGE INSTRUCTIONS
48 ****************************************************************************************
49 ****************************************************************************************
50 ****************************************************************************************
51 ***************************************************************************************/
52 
56 
57 namespace pwiz {
58 namespace analysis {
59 
60 // SpectrumList wrapper that recalculates precursor info on spectrum() requests
62 {
63  public:
64  SpectrumList_MZRefiner(const msdata::MSData& msd, const std::string& identFilePath, const std::string& cvTerm, const std::string& rangeSet, const util::IntegerSet& msLevelsToRefine, double step = 0.0, int maxStep = 0, pwiz::util::IterationListenerRegistry* ilr = NULL);
65 
66  /// \name SpectrumList interface
67  //@{
68  virtual msdata::SpectrumPtr spectrum(size_t index, bool getBinaryData = false) const;
69  //@}
70 
71  private:
72  class Impl;
73  boost::shared_ptr<Impl> impl_;
74 };
75 
76 } // namespace analysis
77 } // namespace pwiz
78 
79 #endif // _SPECTRUMLIST_MZREFINER_HPP_
a virtual container of integers, accessible via an iterator interface, stored as union of intervals ...
Definition: IntegerSet.hpp:37
boost::shared_ptr< Spectrum > SpectrumPtr
Definition: MSData.hpp:569
Inheritable pass-through implementation for wrapping a SpectrumList.
#define PWIZ_API_DECL
Definition: Export.hpp:32
handles registration of IterationListeners and broadcast of update messages
This is the root element of ProteoWizard; it represents the mzML element, defined as: intended to cap...
Definition: MSData.hpp:845