ProteoWizard
SpectrumList_MZRefiner.hpp
Go to the documentation of this file.
1//
2// $Id$
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****************************************************************************************
31ASSUMPTIONS:
32We 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========================================================================================
36LIMITATIONS:
37This 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========================================================================================
47DETERMINE IF THESE SHOULD BE ADDED TO THE USAGE INSTRUCTIONS
48****************************************************************************************
49****************************************************************************************
50****************************************************************************************
51***************************************************************************************/
52
56
57namespace pwiz {
58namespace 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, bool assumeHighRes = false, 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_
#define PWIZ_API_DECL
Definition Export.hpp:32
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, bool assumeHighRes=false, pwiz::util::IterationListenerRegistry *ilr=NULL)
virtual msdata::SpectrumPtr spectrum(size_t index, bool getBinaryData=false) const
retrieve a spectrum by index
Inheritable pass-through implementation for wrapping a SpectrumList.
a virtual container of integers, accessible via an iterator interface, stored as union of intervals
handles registration of IterationListeners and broadcast of update messages
boost::shared_ptr< Spectrum > SpectrumPtr
Definition MSData.hpp:573
This is the root element of ProteoWizard; it represents the mzML element, defined as: intended to cap...
Definition MSData.hpp:850