ProteoWizard
PrecursorMassFilter.hpp
Go to the documentation of this file.
1//
2// $Id$
3//
4//
5// Original author: Chris Paulse <cpaulse <a.t> systemsbiology.org>
6//
7// Copyright 2009 Institute for Systems Biology, Seattle, WA
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 _PRECURSORMASSFILTER_HPP_
24#define _PRECURSORMASSFILTER_HPP_
25
26
30
31
32namespace pwiz {
33namespace analysis {
34
35// See Table 1 of
36// "Post Acquisition ETD Spectral Processing of Increased Peptide Identifications" -- PUB 1
37// by D. M. Good et al
38//
39// Experimental Section and Table 1 of
40// "Analytical Utility of Small Neutral Losses from Reduced Species in Electron
41// Capture Dissociation Studied Using SwedECD Database" by M. Falth et al -- PUB 2
42//
43// Cooper, H. J., Hakansson, K., Marshall, A.G., Hudgins, R. R., Haselmann, K. F.,
44// Kjeldsen, F., Budnik, B. A. Polfer, N. C., Zubarev, R. A., Letter: the diagnostic value of
45// amino acid side-chain losses in electron capture dissociation of polypeptides. Comment
46// on: "Can the (M(.)-X) region in electron capture dissociation provide reliable information on
47// amino acid composition of polypeptides?", Eur. J. Mass Spectrom. 8, 461-469 (2002). -- PUB 3
48 //17.027 Da NH3
49 //18.011 Da H2O
50 //27.995 Da CO
51 //32.026 Da CH3OH
52 //34.053 Da N2H6 (2xNH3)
53 //35.037 Da H4NO
54 //36.021 Da H4O2 (2xH2O)
55 //74.019 Da C3H6S
56 //82.053 Da C4H6N2
57 //86.072 Da C3H8N3
58 //99.068 Da C4H9N3
59 //101.095 Da C4H11N3
60 //108.058 Da C7H8O
61 //(131.074 Da C9H9N)
62 //44.037 Da CH4N2
63 //45.021 Da CH3NO
64 //46.006 Da CH2O2
65 //46.042 Da C2H6O
66 //59.037 Da C2H5NO
67 //59.048 Da CH5N3
68 //73.089 Da C4H11N
69
70#define NUM_NEUTRAL_LOSS_SPECIES 25
71
72// All entries are PUB 1 Table 1 except where noted
73static const char* defaultNeutralLossFormulae[] = {
74 "H1", // ubiquitous neutral loss (PUB 2)
75 "N1H2", // ubiquitous neutral loss (PUB 2)
76 "N1H3",
77 "H2O1",
78 "C1O1",
79 "C1H4O1",
80 "N2H6", // 2 * NH3
81 "H5N1O1", // Typo in PUB 1 Table 1 NH3 + H2O
82 "H4O2", // 2 * H2O
83 "C1H3N2", // PUB 2 Table 1
84 "C1H4N2",
85 "C1H3N1O1",
86 "C1H2O2",
87 "C2H6O1",
88 "C2H5N1O1",
89 "C1H5N3",
90 "C2H4O2", // PUB 2 Table 1
91 "C4H11N1", // PUB 3
92 "C3H6S1", // PUB 3
93 "C4H6N2", // PUB 3
94 "C3H8N3", // PUB 3
95 "C4H9N3", // PUB 3
96 "C4H11N3", // PUB 3
97 "C7H8O1", // PUB 3
98 "C9H9N1" // PUB 3
99};
100
101
103
104
106{
107
108 /// PrecursorMassFilter's parameters
110 {
112 MZTolerance tolerance = MZTolerance(0.1),
113 bool removePrecursor_ = true,
114 bool removeReducedChargePrecursors_ = true,
115 bool useBlanketFiltering_ = false,
116 int numNeutralLossSpecies = NUM_NEUTRAL_LOSS_SPECIES,
117 const char* neutralLossSpecies_[] = defaultNeutralLossFormulae
118 );
119
121
122 /// remove the precursor m/z from the MS2 spectrum
124
125 /** electron transfer in ETD or ECD creates intact precursors with reduced charge states
126 * this flag specifies their removal. */
128
129 /** intact precursors can undergo loss of neutral molecules after the dissociation event
130 * this flag specifies the removal of these "neutral loss" ions (precursor mass - neutral loss mass)/charge */
131 std::vector<pwiz::chemistry::Formula> neutralLossSpecies;
133
134 /// flag indicates neutral loss removal by applying a charge scaled 60 Da exclusion window below the charge reduced precursor
136 };
137
139 virtual void operator () (const pwiz::msdata::SpectrumPtr&) const;
141
143
144 private:
145 struct Impl;
146 boost::shared_ptr<Impl> impl_;
147};
148
149} // namespace analysis
150} // namespace pwiz
151
152
153#endif // _PRECURSORMASSFILTER_HPP_
#define PWIZ_API_DECL
Definition Export.hpp:32
#define NUM_NEUTRAL_LOSS_SPECIES
static const char * defaultNeutralLossFormulae[]
boost::shared_ptr< Spectrum > SpectrumPtr
Definition MSData.hpp:573
Config(MZTolerance tolerance=MZTolerance(0.1), bool removePrecursor_=true, bool removeReducedChargePrecursors_=true, bool useBlanketFiltering_=false, int numNeutralLossSpecies=NUM_NEUTRAL_LOSS_SPECIES, const char *neutralLossSpecies_[]=defaultNeutralLossFormulae)
bool removeReducedChargePrecursors
electron transfer in ETD or ECD creates intact precursors with reduced charge states this flag specif...
std::vector< pwiz::chemistry::Formula > neutralLossSpecies
intact precursors can undergo loss of neutral molecules after the dissociation event this flag specif...
bool useBlanketFiltering
flag indicates neutral loss removal by applying a charge scaled 60 Da exclusion window below the char...
bool removePrecursor
remove the precursor m/z from the MS2 spectrum
virtual void describe(pwiz::msdata::ProcessingMethod &) const
const PrecursorMassFilter::Config params
struct for expressing m/z tolerance in either amu or ppm
Description of the default peak processing method. This element describes the base method used in the...
Definition MSData.hpp:255