libpappsomspp
Library for mass spectrometry
Loading...
Searching...
No Matches
pappso::PeptideVariableModificationReplacement Class Reference

#include <peptidevariablemodificationreplacement.h>

Inheritance diagram for pappso::PeptideVariableModificationReplacement:
pappso::PeptideVariableModificationBuilder pappso::PeptideModificatorBase pappso::PeptideModificatorInterface pappso::PeptideSpSinkInterface

Public Member Functions

 PeptideVariableModificationReplacement (AaModificationP mod_before, AaModificationP mod_after)
virtual ~PeptideVariableModificationReplacement ()
void setPeptideSp (std::int8_t sequence_database_id, const ProteinSp &protein_sp, bool is_decoy, const PeptideSp &peptide_sp_original, unsigned int start, bool is_nter, unsigned int missed_cleavage_number, bool semi_enzyme) override
 function to give the products of modifications for a digested peptide
Public Member Functions inherited from pappso::PeptideVariableModificationBuilder
 PeptideVariableModificationBuilder (AaModificationP mod)
virtual ~PeptideVariableModificationBuilder ()
void addAa (char aa)
void setMaxNumberMod (unsigned int max_num)
void setMinNumberMod (unsigned int min_num)
void setModificationCounter (unsigned int counter)
void setSink (PeptideModificatorInterface *sink) override
void setProtNter (bool arg1)
 this modification concerns the Nter peptide
void setProtCter (bool arg1)
 this modification concerns the Cter peptide
void setProtElse (bool arg1)
 this modification concerns all peptides between Nter and Cter
Public Member Functions inherited from pappso::PeptideModificatorBase
 PeptideModificatorBase ()
virtual ~PeptideModificatorBase ()
virtual void setModificationPattern (QString &pattern) final
 set the pattern on which the modification will be applied (usually the list of concerned AA)
Public Member Functions inherited from pappso::PeptideModificatorInterface
virtual ~PeptideModificatorInterface ()

Private Member Functions

void replaceModificationsAtPosition (Peptide &new_peptide, unsigned int position)

Private Attributes

AaModificationP mp_modAfter

Additional Inherited Members

Protected Member Functions inherited from pappso::PeptideModificatorBase
virtual void getModificationPositionList (std::vector< unsigned int > &position_list, const QString &peptide_str) final
virtual void getModificationPositionList (std::vector< unsigned int > &position_list, const Peptide *p_peptide, AaModificationP mod, unsigned int modification_counter)
Static Protected Member Functions inherited from pappso::PeptideVariableModificationBuilder
static bool next_combination (const std::vector< unsigned int >::iterator first, std::vector< unsigned int >::iterator k, const std::vector< unsigned int >::iterator last)
Protected Attributes inherited from pappso::PeptideVariableModificationBuilder
PeptideModificatorInterfacem_sink = nullptr
AaModificationP mp_mod
unsigned int m_minNumberMod = 0
unsigned int m_maxNumberMod = 30000
unsigned int m_modificationCount = 0
bool m_isProtNterMod = true
bool m_isProtCterMod = true
bool m_isProtElseMod = true
Protected Attributes inherited from pappso::PeptideModificatorBase
QRegularExpression m_pattern

Detailed Description

Definition at line 39 of file peptidevariablemodificationreplacement.h.

Constructor & Destructor Documentation

◆ PeptideVariableModificationReplacement()

pappso::PeptideVariableModificationReplacement::PeptideVariableModificationReplacement ( AaModificationP mod_before,
AaModificationP mod_after )

this forces to check that the targetted modified sites really has the mod_before

Definition at line 35 of file peptidevariablemodificationreplacement.cpp.

38{
39 mp_modAfter = mod_after;
40 /** this forces to check that the targetted modified sites really has the
41 * mod_before */
43}

References pappso::PeptideVariableModificationBuilder::PeptideVariableModificationBuilder(), pappso::PeptideVariableModificationBuilder::m_modificationCount, and mp_modAfter.

◆ ~PeptideVariableModificationReplacement()

pappso::PeptideVariableModificationReplacement::~PeptideVariableModificationReplacement ( )
virtual

Definition at line 45 of file peptidevariablemodificationreplacement.cpp.

46{
47}

Member Function Documentation

◆ replaceModificationsAtPosition()

void pappso::PeptideVariableModificationReplacement::replaceModificationsAtPosition ( Peptide & new_peptide,
unsigned int position )
private

Definition at line 51 of file peptidevariablemodificationreplacement.cpp.

53{
54 // replace all mod_before by mod_after :
55 Aa &aa = new_peptide.getAa(position);
56 aa.removeAaModification(mp_mod);
57 unsigned int i = 0;
58 while(i < m_modificationCount)
59 {
60 aa.addAaModification(mp_modAfter);
61 i++;
62 }
63}
@ aa
best possible : more than one direct MS2 fragmentation in same MSRUN
Definition types.h:45

References pappso::Peptide::getAa(), pappso::PeptideVariableModificationBuilder::m_modificationCount, pappso::PeptideVariableModificationBuilder::mp_mod, and mp_modAfter.

Referenced by setPeptideSp().

◆ setPeptideSp()

void pappso::PeptideVariableModificationReplacement::setPeptideSp ( std::int8_t sequence_database_id,
const ProteinSp & protein_sp,
bool is_decoy,
const PeptideSp & peptide_sp,
unsigned int start,
bool is_nter,
unsigned int missed_cleavage_number,
bool semi_enzyme )
overridevirtual

function to give the products of modifications for a digested peptide

Parameters
sequence_database_idinteger that references the sequence fatabase (file, stream, url...)
protein_spshared pointer on the protein that was initialy digested
is_decoytell if the current protein is a decoy (true) or normal (false) protein
peptidePeptide object containing sequence and possible modifications
startthe position of the first amino acid of the peptide in the original protein sequence. the first amino acid of the protein is at position 1.
is_nterboolean to tell if the peptide is an Nter peptide (to allow Methionin Nter removal)
missed_cleavage_numbernumber of missed cleavage sites (that the enzyme has not cut) fot the product
semi_enzymeboolean that tells if this peptide is the produce of a semi enzymatic lysis

Reimplemented from pappso::PeptideVariableModificationBuilder.

Definition at line 67 of file peptidevariablemodificationreplacement.cpp.

75{
76 // QString s = "Banana";
77 // s.replace(QRegExp("a[mn]"), "ox");
78
79
80 bool modify_this_peptide = true;
82 {
83 modify_this_peptide = false;
84 if((m_isProtNterMod) && (is_nter))
85 {
86 // this an Nter peptide
87 modify_this_peptide = true;
88 }
89 else if((m_isProtCterMod) &&
90 (protein_sp.get()->size() == (start + peptide_sp_original.get()->size())))
91 {
92 // this is a Cter peptide
93 modify_this_peptide = true;
94 }
95 else if(m_isProtElseMod)
96 {
97 modify_this_peptide = true;
98 }
99 }
100
101 if(modify_this_peptide)
102 {
103 std::vector<unsigned int> position_list;
105 position_list, peptide_sp_original.get(), mp_mod, m_modificationCount);
106
107 // std::vector< unsigned int > position_list =
108 // peptide_sp_original.get()->getAaPositionList(_aamp_modification_list);
109 // std::string s = "12345";
110 // no AA modification :
111 if(m_minNumberMod == 0)
112 {
113 m_sink->setPeptideSp(sequence_database_id,
114 protein_sp,
115 is_decoy,
116 peptide_sp_original,
117 start,
118 is_nter,
119 missed_cleavage_number,
120 semi_enzyme);
121 }
122
123 unsigned int nb_pos = position_list.size();
124 if(nb_pos > 0)
125 {
126 // loop to find 1 to n-1 AA modification combinations
127 unsigned int comb_size = 1;
128 while((comb_size < nb_pos) && (comb_size <= m_maxNumberMod))
129 {
130 do
131 {
132 // std::cout << std::string(being,begin + comb_size) <<
133 // std::endl;
134 Peptide new_peptide(*(peptide_sp_original.get()));
135 for(unsigned int i = 0; i < comb_size; i++)
136 {
137 // new_peptide.addAaModification(mp_mod,position_list[i]);
138 this->replaceModificationsAtPosition(new_peptide, position_list[i]);
139 }
140 PeptideSp new_peptide_sp = new_peptide.makePeptideSp();
141 m_sink->setPeptideSp(sequence_database_id,
142 protein_sp,
143 is_decoy,
144 new_peptide_sp,
145 start,
146 is_nter,
147 missed_cleavage_number,
148 semi_enzyme);
149 }
150 while(next_combination(
151 position_list.begin(), position_list.begin() + comb_size, position_list.end()));
152 comb_size++;
153 }
154
155 if(nb_pos <= m_maxNumberMod)
156 {
157 // the last combination : all aa are modified :
158 Peptide new_peptide(*(peptide_sp_original.get()));
159 for(unsigned int i = 0; i < nb_pos; i++)
160 {
161 // new_peptide.addAaModification(mp_mod,position_list[i]);
162
163 this->replaceModificationsAtPosition(new_peptide, position_list[i]);
164 }
165 PeptideSp new_peptide_sp = new_peptide.makePeptideSp();
166 m_sink->setPeptideSp(sequence_database_id,
167 protein_sp,
168 is_decoy,
169 new_peptide_sp,
170 start,
171 is_nter,
172 missed_cleavage_number,
173 semi_enzyme);
174 }
175 }
176 }
177 else
178 {
179 // no modification
180 m_sink->setPeptideSp(sequence_database_id,
181 protein_sp,
182 is_decoy,
183 peptide_sp_original,
184 start,
185 is_nter,
186 missed_cleavage_number,
187 semi_enzyme);
188 }
189}
virtual void getModificationPositionList(std::vector< unsigned int > &position_list, const QString &peptide_str) final
static bool next_combination(const std::vector< unsigned int >::iterator first, std::vector< unsigned int >::iterator k, const std::vector< unsigned int >::iterator last)
void replaceModificationsAtPosition(Peptide &new_peptide, unsigned int position)
std::shared_ptr< const Peptide > PeptideSp

References pappso::PeptideModificatorBase::getModificationPositionList(), pappso::PeptideVariableModificationBuilder::m_isProtCterMod, pappso::PeptideVariableModificationBuilder::m_isProtElseMod, pappso::PeptideVariableModificationBuilder::m_isProtNterMod, pappso::PeptideVariableModificationBuilder::m_maxNumberMod, pappso::PeptideVariableModificationBuilder::m_minNumberMod, pappso::PeptideVariableModificationBuilder::m_modificationCount, pappso::PeptideVariableModificationBuilder::m_sink, pappso::Peptide::makePeptideSp(), pappso::PeptideVariableModificationBuilder::mp_mod, pappso::PeptideVariableModificationBuilder::next_combination(), and replaceModificationsAtPosition().

Member Data Documentation

◆ mp_modAfter

AaModificationP pappso::PeptideVariableModificationReplacement::mp_modAfter
private

The documentation for this class was generated from the following files: