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(
",", Qt::SkipEmptyParts);
127 for(
auto i = 0; i < mod_list_str.size(); ++i)
141 QStringList str_split = mod_str.split(
"@", Qt::SkipEmptyParts);
168 const QString &mod_str)
175 const QString &mod_str)
182 const QString &mod_str)
189 const QString &mod_str,
bool Nter,
bool Cter,
bool else_prot)
195 QObject::tr(
"Unable to add potential modification string after "
196 "addLabeledModificationString function"));
199 QStringList mod_list_str =
200 mod_str.simplified().replace(
" ",
"").split(
",", Qt::SkipEmptyParts);
201 for(
auto i = 0; i < mod_list_str.size(); ++i)
215 QStringList str_split = mod_str.split(
"@", Qt::SkipEmptyParts);
217 QString mod_acc_str = str_split[0];
218 QStringList str_acc_split = mod_acc_str.split(
"(", Qt::SkipEmptyParts);
226 if(str_acc_split.length() == 2)
228 QStringList max_num_str_list =
229 str_acc_split[1].replace(
")",
"").split(
"-", Qt::SkipEmptyParts);
230 if(max_num_str_list.length() == 1)
234 else if(max_num_str_list.length() == 2)
267 "Please use setSink before addLabeledModificationString function"));
287 QStringList mod_list_str =
288 mod_str.simplified().replace(
" ",
"").split(
",", Qt::SkipEmptyParts);
289 for(
auto i = 0; i < mod_list_str.size(); ++i)
314 QStringList str_split = mod_str.split(
"@", Qt::SkipEmptyParts);
340 unsigned int missed_cleavage_number,
351 missed_cleavage_number,
362 missed_cleavage_number,
372 const QString &peptide_str,
375 unsigned int missed_cleavage_number,
379 qDebug() <<
"PeptideModificatorPipeline::setPeptide begin";
385 qDebug() <<
"PeptideModificatorPipeline::setPeptide m_sink->setPeptideSp";
392 missed_cleavage_number,
394 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