Loading...
Searching...
No Matches
pappso::PeptideVariableModificationReplacement Class Reference

`#include <peptidevariablemodificationreplacement.h>`

Inheritance diagram for pappso::PeptideVariableModificationReplacement:

## 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
PeptideModificatorInterface * | m_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.

: PeptideVariableModificationBuilder(mod_before)
{
mp_modAfter = mod_after;
/** this forces to check that the targetted modified sites really has the
* mod_before */
m_modificationCount = 1;
}
pappso::PeptideVariableModificationBuilder::m_modificationCount
unsigned int m_modificationCount
Definition peptidevariablemodificationbuilder.h:110
pappso::PeptideVariableModificationBuilder::PeptideVariableModificationBuilder
PeptideVariableModificationBuilder(AaModificationP mod)
Definition peptidevariablemodificationbuilder.cpp:72
pappso::PeptideVariableModificationReplacement::mp_modAfter
AaModificationP mp_modAfter
Definition peptidevariablemodificationreplacement.h:61

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

## ~PeptideVariableModificationReplacement()

pappso::PeptideVariableModificationReplacement::~PeptideVariableModificationReplacement | ( |  | ) |

virtual

Definition at line 45 of file peptidevariablemodificationreplacement.cpp.

{
}

## Member Function Documentation

## replaceModificationsAtPosition()

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

private

Definition at line 51 of file peptidevariablemodificationreplacement.cpp.

{
// replace all mod_before by mod_after :
Aa &aa = new_peptide.getAa(position);
aa.removeAaModification(mp_mod);
unsigned int i = 0;
while(i < m_modificationCount)
{
aa.addAaModification(mp_modAfter);
i++;
}
}
pappso::PeptideVariableModificationBuilder::mp_mod
AaModificationP mp_mod
Definition peptidevariablemodificationbuilder.h:104
pappso::masschroq::PeakQualityCategory::aa
@ 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 )

override virtual

function to give the products of modifications for a digested peptide

Parameters

  sequence_database_id | integer that references the sequence fatabase (file, stream, url...)
  protein_sp | shared pointer on the protein that was initialy digested
  is_decoy | tell if the current protein is a decoy (true) or normal (false) protein
  peptide | Peptide object containing sequence and possible modifications
  start | the 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_nter | boolean to tell if the peptide is an Nter peptide (to allow Methionin Nter removal)
  missed_cleavage_number | number of missed cleavage sites (that the enzyme has not cut) fot the product
  semi_enzyme | boolean 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.

{
// QString s = "Banana";
// s.replace(QRegExp("a[mn]"), "ox");
bool modify_this_peptide = true;
if(m_isProtNterMod || m_isProtCterMod)
{
modify_this_peptide = false;
if((m_isProtNterMod) && (is_nter))
{
// this an Nter peptide
modify_this_peptide = true;
}
else if((m_isProtCterMod) &&
(protein_sp.get()->size() == (start + peptide_sp_original.get()->size())))
{
// this is a Cter peptide
modify_this_peptide = true;
}
else if(m_isProtElseMod)
{
modify_this_peptide = true;
}
}
if(modify_this_peptide)
{
std::vector<unsigned int> position_list;
getModificationPositionList(
position_list, peptide_sp_original.get(), mp_mod, m_modificationCount);
// std::vector< unsigned int > position_list =
// peptide_sp_original.get()->getAaPositionList(_aamp_modification_list);
// std::string s = "12345";
// no AA modification :
if(m_minNumberMod == 0)
{
m_sink->setPeptideSp(sequence_database_id,
protein_sp,
is_decoy,
peptide_sp_original,
start,
is_nter,
missed_cleavage_number,
semi_enzyme);
}
unsigned int nb_pos = position_list.size();
if(nb_pos > 0)
{
// loop to find 1 to n-1 AA modification combinations
unsigned int comb_size = 1;
while((comb_size < nb_pos) && (comb_size <= m_maxNumberMod))
{
do
{
// std::cout << std::string(being,begin + comb_size) <<
// std::endl;
Peptide new_peptide(*(peptide_sp_original.get()));
for(unsigned int i = 0; i < comb_size; i++)
{
// new_peptide.addAaModification(mp_mod,position_list[i]);
this->replaceModificationsAtPosition(new_peptide, position_list[i]);
}
PeptideSp new_peptide_sp = new_peptide.makePeptideSp();
m_sink->setPeptideSp(sequence_database_id,
protein_sp,
is_decoy,
new_peptide_sp,
start,
is_nter,
missed_cleavage_number,
semi_enzyme);
}
while(next_combination(
position_list.begin(), position_list.begin() + comb_size, position_list.end()));
comb_size++;
}
if(nb_pos <= m_maxNumberMod)
{
// the last combination : all aa are modified :
Peptide new_peptide(*(peptide_sp_original.get()));
for(unsigned int i = 0; i < nb_pos; i++)
{
// new_peptide.addAaModification(mp_mod,position_list[i]);
this->replaceModificationsAtPosition(new_peptide, position_list[i]);
}
PeptideSp new_peptide_sp = new_peptide.makePeptideSp();
m_sink->setPeptideSp(sequence_database_id,
protein_sp,
is_decoy,
new_peptide_sp,
start,
is_nter,
missed_cleavage_number,
semi_enzyme);
}
}
}
else
{
// no modification
m_sink->setPeptideSp(sequence_database_id,
protein_sp,
is_decoy,
peptide_sp_original,
start,
is_nter,
missed_cleavage_number,
semi_enzyme);
}
}
pappso::PeptideModificatorBase::getModificationPositionList
virtual void getModificationPositionList(std::vector< unsigned int > &position_list, const QString &peptide_str) final
Definition peptidemodificatorbase.cpp:50
pappso::PeptideVariableModificationBuilder::m_maxNumberMod
unsigned int m_maxNumberMod
Definition peptidevariablemodificationbuilder.h:108
pappso::PeptideVariableModificationBuilder::m_isProtNterMod
bool m_isProtNterMod
Definition peptidevariablemodificationbuilder.h:113
pappso::PeptideVariableModificationBuilder::m_sink
PeptideModificatorInterface * m_sink
Definition peptidevariablemodificationbuilder.h:103
pappso::PeptideVariableModificationBuilder::m_isProtElseMod
bool m_isProtElseMod
Definition peptidevariablemodificationbuilder.h:117
pappso::PeptideVariableModificationBuilder::next_combination
static bool next_combination(const std::vector< unsigned int >::iterator first, std::vector< unsigned int >::iterator k, const std::vector< unsigned int >::iterator last)
Definition peptidevariablemodificationbuilder.cpp:30
pappso::PeptideVariableModificationBuilder::m_minNumberMod
unsigned int m_minNumberMod
Definition peptidevariablemodificationbuilder.h:106
pappso::PeptideVariableModificationBuilder::m_isProtCterMod
bool m_isProtCterMod
Definition peptidevariablemodificationbuilder.h:115
pappso::PeptideVariableModificationReplacement::replaceModificationsAtPosition
void replaceModificationsAtPosition(Peptide &new_peptide, unsigned int position)
Definition peptidevariablemodificationreplacement.cpp:51
pappso::PeptideSp
std::shared_ptr< const Peptide > PeptideSp
Definition aamodification.h:48

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

Definition at line 61 of file peptidevariablemodificationreplacement.h.

Referenced by PeptideVariableModificationReplacement(), and replaceModificationsAtPosition().

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

- pappsomspp/core/protein/peptidevariablemodificationreplacement.h
- pappsomspp/core/protein/peptidevariablemodificationreplacement.cpp