28#include "../pappsoexception.h"
44 QObject::tr(
"unable to copy PeptideModificatorPipeline object"));
87 "Please use setSink before addLabeledModificationString function"));
104 const QString &mod_str)
110 const QString &mod_str)
117 const QString &mod_str,
bool Nter,
bool Cter,
bool else_prot)
123 QObject::tr(
"Unable to add fixed modification string after "
124 "addLabeledModificationString function"));
126 QStringList mod_list_str =
127 mod_str.simplified().replace(
" ",
"").split(
",", Qt::SkipEmptyParts);
128 for(
auto i = 0; i < mod_list_str.size(); ++i)
142 QStringList str_split = mod_str.split(
"@", Qt::SkipEmptyParts);
169 const QString &mod_str)
176 const QString &mod_str)
183 const QString &mod_str)
190 const QString &mod_str,
bool Nter,
bool Cter,
bool else_prot)
196 QObject::tr(
"Unable to add potential modification string after "
197 "addLabeledModificationString function"));
200 QStringList mod_list_str =
201 mod_str.simplified().replace(
" ",
"").split(
",", Qt::SkipEmptyParts);
202 for(
auto i = 0; i < mod_list_str.size(); ++i)
216 QStringList str_split = mod_str.split(
"@", Qt::SkipEmptyParts);
218 QString mod_acc_str = str_split[0];
219 QStringList str_acc_split = mod_acc_str.split(
"(", Qt::SkipEmptyParts);
227 if(str_acc_split.length() == 2)
229 QStringList max_num_str_list =
230 str_acc_split[1].replace(
")",
"").split(
"-", Qt::SkipEmptyParts);
231 if(max_num_str_list.length() == 1)
235 else if(max_num_str_list.length() == 2)
268 "Please use setSink before addLabeledModificationString function"));
288 QStringList mod_list_str =
289 mod_str.simplified().replace(
" ",
"").split(
",", Qt::SkipEmptyParts);
290 for(
auto i = 0; i < mod_list_str.size(); ++i)
315 QStringList str_split = mod_str.split(
"@", Qt::SkipEmptyParts);
341 unsigned int missed_cleavage_number,
352 missed_cleavage_number,
363 missed_cleavage_number,
373 const QString &peptide_str,
376 unsigned int missed_cleavage_number,
380 qDebug() <<
"PeptideModificatorPipeline::setPeptide begin";
386 qDebug() <<
"PeptideModificatorPipeline::setPeptide m_sink->setPeptideSp";
393 missed_cleavage_number,
395 qDebug() <<
"PeptideModificatorPipeline::setPeptide end";
static AaModificationP getInstance(const QString &accession)
void setProtElse(bool arg1)
this modification concerns all peptides between Nter and Cter
void setProtCter(bool arg1)
this modification concerns the Cter peptide
void setSink(PeptideModificatorInterface *sink) override
void setProtNter(bool arg1)
this modification concerns the Nter peptide
virtual void setModificationPattern(QString &pattern) final
set the pattern on which the modification will be applied (usually the list of concerned AA)
virtual void 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)=0
function to give the products of modifications for a digested peptide
PeptideModificatorInterface * m_sink
void addFixedNterModificationString(const QString &mod_str)
PeptideModificatorPipeline()
void addPotentialCterModificationString(const QString &mod_str)
void parsePotentialModification(const QString &mod_str, bool Nter, bool Cter, bool else_prot)
void addLabeledModificationString(const QString &mod_str)
virtual ~PeptideModificatorPipeline()
void setSink(PeptideModificatorInterface *sink) override
void parseLabeledModification(const QString &mod_str, bool Nter, bool Cter, bool else_prot)
void privAddFixedModificationString(const QString &mod_str, bool Nter, bool Cter, bool else_prot)
void privAddPotentialModificationString(const QString &mod_str, bool Nter, bool Cter, bool else_prot)
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
void addFixedModificationString(const QString &mod_str)
std::vector< PeptideModificatorInterface * > m_pepModificatorPtrList
PeptideModificatorInterface * mp_firstModificator
void setPeptide(std::int8_t sequence_database_id, const ProteinSp &protein_sp, bool is_decoy, const QString &peptide_str, unsigned int start, bool is_nter, unsigned int missed_cleavage_number, bool semi_enzyme) override
function to give the products of a protein digestion by an enzyme
PeptideSpSinkInterface * mp_lastPeptideSinkInterface
PeptideModificatorTee * mp_peptideModificatorTee
void addFixedCterModificationString(const QString &mod_str)
void addPotentialNterModificationString(const QString &mod_str)
void addPotentialModificationString(const QString &mod_str)
void parseFixedModification(const QString &mod_str, bool Nter, bool Cter, bool else_prot)
void addModificator(PeptideModificatorInterface *p_peptide_mod)
virtual void setSink(PeptideModificatorInterface *sink)=0
Modify a peptide shared pointer with a variable modification on one AA.
void setSink(PeptideModificatorInterface *sink) override
void setMinNumberMod(unsigned int min_num)
void setMaxNumberMod(unsigned int max_num)
void setModificationCounter(unsigned int counter)
void setProtNter(bool arg1)
this modification concerns the Nter peptide
void setProtElse(bool arg1)
this modification concerns all peptides between Nter and Cter
void setProtCter(bool arg1)
this modification concerns the Cter peptide
PeptideSp makePeptideSp() const
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
std::shared_ptr< const Peptide > PeptideSp
std::shared_ptr< const Protein > ProteinSp
shared pointer on a Protein object