OpenMS
SimpleTSGXLMS.h
Go to the documentation of this file.
1 // Copyright (c) 2002-2023, The OpenMS Team -- EKU Tuebingen, ETH Zurich, and FU Berlin
2 // SPDX-License-Identifier: BSD-3-Clause
3 //
4 // --------------------------------------------------------------------------
5 // $Maintainer: Eugen Netz $
6 // $Authors: Eugen Netz $
7 // --------------------------------------------------------------------------
8 
9 
10 #pragma once
11 
17 
18 
19 namespace OpenMS
20 {
21  class AASequence;
22 
36  class OPENMS_DLLAPI SimpleTSGXLMS :
37  public DefaultParamHandler
38  {
39  public:
40 
44  struct SimplePeak
45  {
46  double mz;
47  int charge;
48 
49  SimplePeak(double mz, int charge)
50  : mz(mz), charge(charge)
51  {}
52 
54  : mz(0.0), charge(0)
55  {}
56  };
57 
62  {
63  bool operator() (const SimplePeak& a, const SimplePeak& b)
64  {
65  return a.mz < b.mz;
66  }
67  };
68 
69  struct LossIndex
70  {
71  bool has_H2O_loss = false;
72  bool has_NH3_loss = false;
73  };
74 
80 
82  SimpleTSGXLMS(const SimpleTSGXLMS & source);
83 
85  ~SimpleTSGXLMS() override;
87 
90 
106  virtual void getLinearIonSpectrum(std::vector< SimplePeak >& spectrum, AASequence& peptide, Size link_pos, int charge = 1, Size link_pos_2 = 0) const;
107 
130  virtual void getXLinkIonSpectrum(std::vector< SimplePeak >& spectrum, AASequence& peptide, Size link_pos, double precursor_mass, int mincharge, int maxcharge, Size link_pos_2 = 0) const;
131 
151  virtual void getXLinkIonSpectrum(std::vector< SimplePeak >& spectrum, OPXLDataStructs::ProteinProteinCrossLink& crosslink, bool frag_alpha, int mincharge, int maxcharge) const;
152 
154  void updateMembers_() override;
155 
156  protected:
157 
169  virtual void addLinearPeaks_(std::vector< SimplePeak >& spectrum, AASequence& peptide, Size link_pos, Residue::ResidueType res_type, std::vector< LossIndex >& forward_losses, std::vector< LossIndex >& backward_losses, int charge = 1, Size link_pos_2 = 0) const;
170 
178  virtual void addPrecursorPeaks_(std::vector< SimplePeak >& spectrum, double precursor_mass, int charge) const;
179 
188  virtual void addLosses_(std::vector< SimplePeak >& spectrum, double mono_weight, int charge, LossIndex & losses) const;
189 
203  virtual void addKLinkedIonPeaks_(std::vector< SimplePeak >& spectrum, AASequence & peptide, Size link_pos, double precursor_mass, int charge) const;
204 
220  virtual void addXLinkIonPeaks_(std::vector< SimplePeak >& spectrum, AASequence & peptide, Size link_pos, double precursor_mass, Residue::ResidueType res_type, std::vector< LossIndex > & forward_losses, std::vector< LossIndex > & backward_losses, int charge, Size link_pos_2 = 0) const;
221 
238  virtual void addXLinkIonPeaks_(std::vector< SimplePeak >& spectrum, OPXLDataStructs::ProteinProteinCrossLink & crosslink, bool frag_alpha, Residue::ResidueType res_type, std::vector< LossIndex > & forward_losses, std::vector< LossIndex > & backward_losses, LossIndex & losses_peptide2, int charge) const;
239 
247  std::vector< LossIndex > getForwardLosses_(AASequence & peptide) const;
248 
256  std::vector< LossIndex > getBackwardLosses_(AASequence & peptide) const;
257 
271  double pre_int_;
272  double pre_int_H2O_;
273  double pre_int_NH3_;
275 
276  std::map< String, LossIndex > loss_db_;
277  double loss_H2O_ = 0;
278  double loss_NH3_ = 0;
279  };
280 }
Representation of a peptide/protein sequence.
Definition: AASequence.h:86
A base class for all classes handling default parameters.
Definition: DefaultParamHandler.h:66
ResidueType
Definition: Residue.h:126
Generates theoretical spectra for cross-linked peptides.
Definition: SimpleTSGXLMS.h:38
bool add_x_ions_
Definition: SimpleTSGXLMS.h:262
bool add_precursor_peaks_
Definition: SimpleTSGXLMS.h:268
bool add_charges_
Definition: SimpleTSGXLMS.h:266
std::vector< LossIndex > getForwardLosses_(AASequence &peptide) const
Calculates sets of possible neutral losses for each position in the given peptide.
bool add_losses_
Definition: SimpleTSGXLMS.h:265
virtual void addLinearPeaks_(std::vector< SimplePeak > &spectrum, AASequence &peptide, Size link_pos, Residue::ResidueType res_type, std::vector< LossIndex > &forward_losses, std::vector< LossIndex > &backward_losses, int charge=1, Size link_pos_2=0) const
Adds cross-link-less ions of a specific ion type and charge to a spectrum.
bool add_a_ions_
Definition: SimpleTSGXLMS.h:260
bool add_b_ions_
Definition: SimpleTSGXLMS.h:258
bool add_abundant_immonium_ions_
Definition: SimpleTSGXLMS.h:269
virtual void addPrecursorPeaks_(std::vector< SimplePeak > &spectrum, double precursor_mass, int charge) const
Adds precursor masses including neutral losses for the given charge.
SimpleTSGXLMS()
default constructor
SimpleTSGXLMS & operator=(const SimpleTSGXLMS &tsg)
assignment operator
bool add_y_ions_
Definition: SimpleTSGXLMS.h:259
bool add_isotopes_
Definition: SimpleTSGXLMS.h:267
SimpleTSGXLMS(const SimpleTSGXLMS &source)
copy constructor
double pre_int_NH3_
Definition: SimpleTSGXLMS.h:273
virtual void addKLinkedIonPeaks_(std::vector< SimplePeak > &spectrum, AASequence &peptide, Size link_pos, double precursor_mass, int charge) const
Adds one-residue-linked ion peaks, that are specific to XLMS.
virtual void getXLinkIonSpectrum(std::vector< SimplePeak > &spectrum, OPXLDataStructs::ProteinProteinCrossLink &crosslink, bool frag_alpha, int mincharge, int maxcharge) const
Generates fragment ions containing the cross-linker for a pair of peptides.
virtual void addLosses_(std::vector< SimplePeak > &spectrum, double mono_weight, int charge, LossIndex &losses) const
Adds neutral losses for an ion to a spectrum.
bool add_k_linked_ions_
Definition: SimpleTSGXLMS.h:274
bool add_first_prefix_ion_
Definition: SimpleTSGXLMS.h:264
~SimpleTSGXLMS() override
destructor
virtual void getXLinkIonSpectrum(std::vector< SimplePeak > &spectrum, AASequence &peptide, Size link_pos, double precursor_mass, int mincharge, int maxcharge, Size link_pos_2=0) const
Generates fragment ions containing the cross-linker for one peptide.
void updateMembers_() override
overwrite
virtual void addXLinkIonPeaks_(std::vector< SimplePeak > &spectrum, AASequence &peptide, Size link_pos, double precursor_mass, Residue::ResidueType res_type, std::vector< LossIndex > &forward_losses, std::vector< LossIndex > &backward_losses, int charge, Size link_pos_2=0) const
Adds cross-linked ions of a specific ion type and charge to a spectrum.
std::map< String, LossIndex > loss_db_
Definition: SimpleTSGXLMS.h:276
double pre_int_
Definition: SimpleTSGXLMS.h:271
virtual void getLinearIonSpectrum(std::vector< SimplePeak > &spectrum, AASequence &peptide, Size link_pos, int charge=1, Size link_pos_2=0) const
Generates fragment ions not containing the cross-linker for one peptide.
Int max_isotope_
Definition: SimpleTSGXLMS.h:270
std::vector< LossIndex > getBackwardLosses_(AASequence &peptide) const
Calculates sets of possible neutral losses for each position in the given peptide.
bool add_c_ions_
Definition: SimpleTSGXLMS.h:261
virtual void addXLinkIonPeaks_(std::vector< SimplePeak > &spectrum, OPXLDataStructs::ProteinProteinCrossLink &crosslink, bool frag_alpha, Residue::ResidueType res_type, std::vector< LossIndex > &forward_losses, std::vector< LossIndex > &backward_losses, LossIndex &losses_peptide2, int charge) const
Adds cross-linked ions of a specific ion type and charge to a spectrum.
bool add_z_ions_
Definition: SimpleTSGXLMS.h:263
double pre_int_H2O_
Definition: SimpleTSGXLMS.h:272
Definition: SimpleTSGXLMS.h:70
int Int
Signed integer type.
Definition: Types.h:76
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition: Types.h:101
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:22
Comparator to sort SimplePeaks by mz.
Definition: SimpleTSGXLMS.h:62
A simple struct to represent peaks with mz and charge and sort them easily.
Definition: SimpleTSGXLMS.h:45
SimplePeak(double mz, int charge)
Definition: SimpleTSGXLMS.h:49
double mz
Definition: SimpleTSGXLMS.h:46
SimplePeak()
Definition: SimpleTSGXLMS.h:53
int charge
Definition: SimpleTSGXLMS.h:47