28 #include "../pappsoexception.h"
29 #include <QStringList>
43 QObject::tr(
"unable to copy PeptideModificatorPipeline object"));
86 "Please use setSink before addLabeledModificationString function"));
103 const QString &mod_str)
109 const QString &mod_str)
116 const QString &mod_str,
bool Nter,
bool Cter,
bool else_prot)
122 QObject::tr(
"Unable to add fixed modification string after "
123 "addLabeledModificationString function"));
125 QStringList mod_list_str =
126 mod_str.simplified().replace(
" ",
"").split(
",", QString::SkipEmptyParts);
127 for(
auto i = 0; i < mod_list_str.size(); ++i)
141 QStringList str_split = mod_str.split(
"@", QString::SkipEmptyParts);
167 const QString &mod_str)
174 const QString &mod_str)
181 const QString &mod_str)
188 const QString &mod_str,
bool Nter,
bool Cter,
bool else_prot)
194 QObject::tr(
"Unable to add potential modification string after "
195 "addLabeledModificationString function"));
198 QStringList mod_list_str =
199 mod_str.simplified().replace(
" ",
"").split(
",", QString::SkipEmptyParts);
200 for(
auto i = 0; i < mod_list_str.size(); ++i)
214 QStringList str_split = mod_str.split(
"@", QString::SkipEmptyParts);
216 QString mod_acc_str = str_split[0];
217 QStringList str_acc_split = mod_acc_str.split(
"(", QString::SkipEmptyParts);
225 if(str_acc_split.length() == 2)
227 QStringList max_num_str_list =
228 str_acc_split[1].replace(
")",
"").split(
"-", QString::SkipEmptyParts);
229 if(max_num_str_list.length() == 1)
233 else if(max_num_str_list.length() == 2)
266 "Please use setSink before addLabeledModificationString function"));
286 QStringList mod_list_str =
287 mod_str.simplified().replace(
" ",
"").split(
",", QString::SkipEmptyParts);
288 for(
auto i = 0; i < mod_list_str.size(); ++i)
313 QStringList str_split = mod_str.split(
"@", QString::SkipEmptyParts);
339 unsigned int missed_cleavage_number,
348 missed_cleavage_number,
357 const QString &peptide_str,
360 unsigned int missed_cleavage_number,
364 qDebug() <<
"PeptideModificatorPipeline::setPeptide begin";
370 qDebug() <<
"PeptideModificatorPipeline::setPeptide m_sink->setPeptideSp";
377 missed_cleavage_number,
379 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