OpenMS
SimpleTSGXLMS.h
Go to the documentation of this file.
1 // Copyright (c) 2002-present, 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 min_charge, int max_charge, Size link_pos_2 = 0) const;
131 
149  virtual void getXLinkIonSpectrum(std::vector< SimplePeak >& spectrum, OPXLDataStructs::ProteinProteinCrossLink& crosslink, bool frag_alpha, int min_charge, int max_charge) const;
150 
152  void updateMembers_() override;
153 
154  protected:
155 
167  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;
168 
176  virtual void addPrecursorPeaks_(std::vector< SimplePeak >& spectrum, double precursor_mass, int charge) const;
177 
186  virtual void addLosses_(std::vector< SimplePeak >& spectrum, double mono_weight, int charge, LossIndex & losses) const;
187 
201  virtual void addKLinkedIonPeaks_(std::vector< SimplePeak >& spectrum, AASequence & peptide, Size link_pos, double precursor_mass, int charge) const;
202 
218  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;
219 
234  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;
235 
243  std::vector< LossIndex > getForwardLosses_(AASequence & peptide) const;
244 
252  std::vector< LossIndex > getBackwardLosses_(AASequence & peptide) const;
253 
267  double pre_int_;
268  double pre_int_H2O_;
269  double pre_int_NH3_;
271 
272  std::map< String, LossIndex > loss_db_;
273  double loss_H2O_ = 0;
274  double loss_NH3_ = 0;
275  };
276 }
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:152
Generates theoretical spectra for cross-linked peptides.
Definition: SimpleTSGXLMS.h:38
bool add_x_ions_
Definition: SimpleTSGXLMS.h:258
bool add_precursor_peaks_
Definition: SimpleTSGXLMS.h:264
bool add_charges_
Definition: SimpleTSGXLMS.h:262
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:261
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:256
bool add_b_ions_
Definition: SimpleTSGXLMS.h:254
bool add_abundant_immonium_ions_
Definition: SimpleTSGXLMS.h:265
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:255
bool add_isotopes_
Definition: SimpleTSGXLMS.h:263
SimpleTSGXLMS(const SimpleTSGXLMS &source)
copy constructor
double pre_int_NH3_
Definition: SimpleTSGXLMS.h:269
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 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:270
bool add_first_prefix_ion_
Definition: SimpleTSGXLMS.h:260
~SimpleTSGXLMS() override
destructor
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.
virtual void getXLinkIonSpectrum(std::vector< SimplePeak > &spectrum, AASequence &peptide, Size link_pos, double precursor_mass, int min_charge, int max_charge, Size link_pos_2=0) const
Generates fragment ions containing the cross-linker for one peptide.
std::map< String, LossIndex > loss_db_
Definition: SimpleTSGXLMS.h:272
double pre_int_
Definition: SimpleTSGXLMS.h:267
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:266
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:257
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:259
virtual void getXLinkIonSpectrum(std::vector< SimplePeak > &spectrum, OPXLDataStructs::ProteinProteinCrossLink &crosslink, bool frag_alpha, int min_charge, int max_charge) const
Generates fragment ions containing the cross-linker for a pair of peptides.
double pre_int_H2O_
Definition: SimpleTSGXLMS.h:268
Definition: SimpleTSGXLMS.h:70
int Int
Signed integer type.
Definition: Types.h:72
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition: Types.h:97
Main OpenMS namespace.
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19
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