OpenMS  2.4.0
CompNovoIdentificationBase.h
Go to the documentation of this file.
1 // --------------------------------------------------------------------------
2 // OpenMS -- Open-Source Mass Spectrometry
3 // --------------------------------------------------------------------------
4 // Copyright The OpenMS Team -- Eberhard Karls University Tuebingen,
5 // ETH Zurich, and Freie Universitaet Berlin 2002-2018.
6 //
7 // This software is released under a three-clause BSD license:
8 // * Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above copyright
11 // notice, this list of conditions and the following disclaimer in the
12 // documentation and/or other materials provided with the distribution.
13 // * Neither the name of any author or any participating institution
14 // may be used to endorse or promote products derived from this software
15 // without specific prior written permission.
16 // For a full list of authors, refer to the file AUTHORS.
17 // --------------------------------------------------------------------------
18 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 // ARE DISCLAIMED. IN NO EVENT SHALL ANY OF THE AUTHORS OR THE CONTRIBUTING
22 // INSTITUTIONS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
25 // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
26 // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
27 // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
28 // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 //
30 // --------------------------------------------------------------------------
31 // $Maintainer: Timo Sachsenberg $
32 // $Authors: Andreas Bertsch $
33 // --------------------------------------------------------------------------
34 
35 
36 #pragma once
37 
38 // OpenMS includes
46 
47 // stl includes
48 #include <vector>
49 
50 namespace OpenMS
51 {
57  class OPENMS_DLLAPI CompNovoIdentificationBase :
58  public DefaultParamHandler
59  {
60 
61 public:
62 
68 
71 
73  ~CompNovoIdentificationBase() override;
75 
77  CompNovoIdentificationBase & operator=(const CompNovoIdentificationBase & source);
78 
82  virtual void getIdentifications(std::vector<PeptideIdentification> & ids, const PeakMap & exp) = 0;
85 
87 
88 protected:
89 
91  void updateMembers_() override;
92 
94  void filterPermuts_(std::set<String> & permut);
95 
97  void selectPivotIons_(std::vector<Size> & pivots, Size left, Size right, Map<double, IonScore> & CID_nodes, const PeakSpectrum & CID_orig_spec, double precursor_weight, bool full_range = false);
98 
100  void filterDecomps_(std::vector<MassDecomposition> & decomps);
101 
103  void getDecompositions_(std::vector<MassDecomposition> & decomps, double mass, bool no_caching = false);
104 
106  void permute_(String prefix, String s, std::set<String> & permutations);
107 
108  Size countMissedCleavagesTryptic_(const String & peptide) const;
109 
111  void getCIDSpectrumLight_(PeakSpectrum & spec, const String & sequence, double prefix, double suffix);
112 
114  void getCIDSpectrum_(PeakSpectrum & spec, const String & sequence, Size charge, double prefix = 0.0, double suffix = 0.0);
115 
117  void initIsotopeDistributions_();
118 
120  double estimatePrecursorWeight_(const PeakSpectrum & ETD_spec, Size & charge);
121 
123  void windowMower_(PeakSpectrum & spec, double windowsize, Size no_peaks);
124 
126  double compareSpectra_(const PeakSpectrum & s1, const PeakSpectrum & s2);
127 
129  AASequence getModifiedAASequence_(const String & sequence);
130 
132  String getModifiedStringFromAASequence_(const AASequence & sequence);
133 
136 
139 
142 
145 
147 
149 
151 
153 
155 
157 
159 
161 
163 
164  double max_mz_;
165 
166  double min_mz_;
167 
169 
171 
173 
175 
177 
178 public:
179 
185  class Permut
186  {
187 private:
188 
189  Permut() :
190  score_(0)
191  {
192  }
193 
194 public:
195 
196  Permut(const std::set<String>::const_iterator & permut, double s) :
197  permut_(permut),
198  score_(s)
199  {
200  }
201 
202  Permut(const Permut & rhs) :
203  permut_(rhs.permut_),
204  score_(rhs.score_)
205  {
206  }
207 
208  virtual ~Permut()
209  {
210  }
211 
212  Permut & operator=(const Permut & rhs)
213  {
214  if (&rhs != this)
215  {
216  permut_ = rhs.permut_;
217  score_ = rhs.score_;
218  }
219  return *this;
220  }
221 
222  const std::set<String>::const_iterator & getPermut() const
223  {
224  return permut_;
225  }
226 
227  void setPermut(const std::set<String>::const_iterator & it)
228  {
229  permut_ = it;
230  }
231 
232  double getScore() const
233  {
234  return score_;
235  }
236 
237  void setScore(double score)
238  {
239  score_ = score;
240  }
241 
242 protected:
243 
244  std::set<String>::const_iterator permut_;
245  double score_;
246  };
247 
248  };
249 
250  namespace Internal
251  {
253  }
254 }
255 
void setScore(double score)
Definition: CompNovoIdentificationBase.h:237
A more convenient string class.
Definition: String.h:57
std::set< String >::const_iterator permut_
Definition: CompNovoIdentificationBase.h:244
Map< char, const Residue * > name_to_residue_
mapping for the internal representation character to the actual residue
Definition: CompNovoIdentificationBase.h:135
Map< const Residue *, char > residue_to_name_
mapping of the actual residue to the internal representing character
Definition: CompNovoIdentificationBase.h:138
double score_
Definition: CompNovoIdentificationBase.h:245
Permut(const Permut &rhs)
Definition: CompNovoIdentificationBase.h:202
double fragment_mass_tolerance_
Definition: CompNovoIdentificationBase.h:158
Map< Size, std::vector< double > > isotope_distributions_
Definition: CompNovoIdentificationBase.h:141
Representation of a peptide/protein sequence.
Definition: AASequence.h:107
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:46
Size max_isotope_
Definition: CompNovoIdentificationBase.h:172
double getScore() const
Definition: CompNovoIdentificationBase.h:232
CompNovoIonScoringBase::IonScore IonScore
Definition: CompNovoIdentificationBase.h:86
The representation of a 1D spectrum.
Definition: MSSpectrum.h:66
Similarity score of Zhang.
Definition: ZhangSimilarityScore.h:54
ZhangSimilarityScore zhang_
Definition: CompNovoIdentificationBase.h:150
double min_aa_weight_
Definition: CompNovoIdentificationBase.h:148
bool PermutScoreComparator(const CompNovoIdentificationBase::Permut &p1, const CompNovoIdentificationBase::Permut &p2)
virtual ~Permut()
Definition: CompNovoIdentificationBase.h:208
const std::set< String >::const_iterator & getPermut() const
Definition: CompNovoIdentificationBase.h:222
Map< double, std::vector< MassDecomposition > > decomp_cache_
Definition: CompNovoIdentificationBase.h:174
double max_decomp_weight_
Definition: CompNovoIdentificationBase.h:168
double decomp_weights_precision_
Definition: CompNovoIdentificationBase.h:162
Size max_number_aa_per_decomp_
Definition: CompNovoIdentificationBase.h:154
Permut & operator=(const Permut &rhs)
Definition: CompNovoIdentificationBase.h:212
double max_mz_
Definition: CompNovoIdentificationBase.h:164
Size max_number_pivot_
Definition: CompNovoIdentificationBase.h:160
In-Memory representation of a mass spectrometry experiment.
Definition: MSExperiment.h:77
void setPermut(const std::set< String >::const_iterator &it)
Definition: CompNovoIdentificationBase.h:227
run with CompNovoIdentificationBase
Definition: CompNovoIdentificationBase.h:57
Permut(const std::set< String >::const_iterator &permut, double s)
Definition: CompNovoIdentificationBase.h:196
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition: Types.h:127
Map< Size, Map< Size, std::set< String > > > subspec_to_sequences_
Definition: CompNovoIdentificationBase.h:152
Map< String, std::set< String > > permute_cache_
Definition: CompNovoIdentificationBase.h:176
MassDecompositionAlgorithm mass_decomp_algorithm_
Definition: CompNovoIdentificationBase.h:146
A base class for all classes handling default parameters.
Definition: DefaultParamHandler.h:91
Map< char, double > aa_to_weight_
masses of the amino acids
Definition: CompNovoIdentificationBase.h:144
Mass decomposition algorithm, given a mass it suggests possible compositions.
Definition: MassDecompositionAlgorithm.h:68
Size max_subscore_number_
Definition: CompNovoIdentificationBase.h:170
Simple class to store permutations and a score.
Definition: CompNovoIdentificationBase.h:185
Definition: CompNovoIonScoringBase.h:66
Map class based on the STL map (containing several convenience functions)
Definition: Map.h:50
double min_mz_
Definition: CompNovoIdentificationBase.h:166
bool tryptic_only_
Definition: CompNovoIdentificationBase.h:156
Permut()
Definition: CompNovoIdentificationBase.h:189