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

#include <peptidestrparser.h>

Static Public Member Functions

static PeptideSp parseString (const QString &pepstr)
 
static NoConstPeptideSp parseNoConstString (const QString &pepstr)
 

Static Private Member Functions

static void parseStringToPeptide (const QString &pepstr, Peptide &peptide)
 

Static Private Attributes

static QRegularExpression _mod_parser
 
static QRegularExpression _rx_psimod
 
static QRegularExpression _rx_modmass
 

Detailed Description

Definition at line 32 of file peptidestrparser.h.

Member Function Documentation

◆ parseNoConstString()

NoConstPeptideSp pappso::PeptideStrParser::parseNoConstString ( const QString & pepstr)
static

Definition at line 149 of file peptidestrparser.cpp.

150{
151
152 qDebug() << pepstr;
153 QString new_pep = QString(pepstr).replace(_mod_parser, "");
154 qDebug() << new_pep;
155 // QMutexLocker locker(&_mutex);
156 Peptide peptide(new_pep);
157 qDebug();
159
160 return (peptide.makeNoConstPeptideSp());
161}
static void parseStringToPeptide(const QString &pepstr, Peptide &peptide)
static QRegularExpression _mod_parser

References _mod_parser, pappso::Peptide::makeNoConstPeptideSp(), and parseStringToPeptide().

◆ parseString()

PeptideSp pappso::PeptideStrParser::parseString ( const QString & pepstr)
static

Definition at line 137 of file peptidestrparser.cpp.

138{
139
140 qDebug();
141 // QMutexLocker locker(&_mutex);
142 Peptide peptide(QString(pepstr).replace(_mod_parser, ""));
144
145 return (peptide.makePeptideSp());
146}

References _mod_parser, pappso::Peptide::makePeptideSp(), and parseStringToPeptide().

◆ parseStringToPeptide()

void pappso::PeptideStrParser::parseStringToPeptide ( const QString & pepstr,
Peptide & peptide )
staticprivate

Definition at line 38 of file peptidestrparser.cpp.

39{
40 // Peptide
41 // peptide2("C(MOD:00397+MOD:01160)C(MOD:00397)AADDKEAC(MOD:00397)FAVEGPK");
42 // CCAADDKEACFAVEGPK
43 /*
44 <psimod position="1" accession="MOD:00397"/>
45 <psimod position="2" accession="MOD:00397"/>
46 <psimod position="10" accession="MOD:00397"/>
47 <psimod position="1" accession="MOD:01160"/>
48 */
49 int matched_length_cumul = 0;
50 int pos = 0;
51
52 QRegularExpressionMatch match_mod = _mod_parser.match(pepstr, pos);
53
54 while(match_mod.hasMatch())
55 {
56 pos = match_mod.capturedStart(0);
57 QString captured = match_mod.captured(0);
58 qDebug() << " captured=" << captured << " pos=" << pos
59 << " match_mod.lastCapturedIndex()=" << match_mod.lastCapturedIndex();
60 QStringList mod_list =
61 captured.mid(1, captured.size() - 2).split(QRegularExpression("[+,\\,]"));
62 for(QString &mod : mod_list)
63 {
64 qDebug() << "PeptideStrParser::parseString mod " << mod;
65 QRegularExpressionMatch match_psimod = _rx_psimod.match(mod);
66 if(match_psimod.hasMatch())
67 {
68 qDebug() << "PeptideStrParser::parseString pos-1 "
69 << (pos - 1 - matched_length_cumul);
70 peptide.addAaModification(AaModification::getInstance(mod),
71 pos - 1 - matched_length_cumul);
72 }
73 else if(mod.startsWith("internal:Nter_"))
74 {
75 peptide.setCleavageNterModification(AaModification::getInstance(mod));
76 }
77 else if(mod.startsWith("internal:Cter_"))
78 {
79 peptide.setCleavageCterModification(AaModification::getInstance(mod));
80 }
81 else if(mod.startsWith("C13N15:"))
82 {
83 qDebug() << "PeptideStrParser::parseString pos-1 "
84 << (pos - 1 - matched_length_cumul);
85 peptide.addAaModification(AaModification::getInstance(mod),
86 pos - 1 - matched_length_cumul);
87 }
88 else
89 {
90 qDebug() << "mod=" << mod;
91 QRegularExpressionMatch match_modmass = _rx_modmass.match(mod);
92 if(match_modmass.hasMatch())
93 {
94 // number
95 qDebug() << "number mod=" << mod << " cap=" << match_modmass.captured(0);
96 if(!mod.contains("."))
97 {
98 // integer
99 qDebug() << "integer mod=" << mod;
100 mod = "MOD:0000" + mod;
101 while(mod.size() > 9)
102 {
103 mod = mod.replace(4, 1, "");
104 }
105 peptide.addAaModification(AaModification::getInstance(mod),
106 pos - 1 - matched_length_cumul);
107 }
108 else
109 {
110 qDebug() << "double mod=" << mod;
111 peptide.addAaModification(
113 pos - 1 - matched_length_cumul);
114 }
115 }
116 else
117 {
118 qDebug() << "not a number mod=" << mod;
119 FilterOboPsiModSink term_list;
120 FilterOboPsiModTermLabel filter_label(term_list, mod);
121
122 OboPsiMod psimod(filter_label);
123
124 peptide.addAaModification(AaModification::getInstance(term_list.getFirst()),
125 pos - 1 - matched_length_cumul);
126 }
127 }
128 }
129 qDebug();
130 matched_length_cumul += captured.size();
131 match_mod = _mod_parser.match(pepstr, pos + 1);
132 qDebug();
133 }
134}
static AaModificationP getInstance(const QString &accession)
static AaModificationP getInstanceCustomizedMod(pappso_double modificationMass)
static QRegularExpression _rx_psimod
static QRegularExpression _rx_modmass

References _mod_parser, _rx_modmass, _rx_psimod, pappso::Peptide::addAaModification(), pappso::FilterOboPsiModSink::getFirst(), pappso::AaModification::getInstance(), pappso::AaModification::getInstanceCustomizedMod(), pappso::Peptide::setCleavageCterModification(), and pappso::Peptide::setCleavageNterModification().

Referenced by parseNoConstString(), and parseString().

Member Data Documentation

◆ _mod_parser

QRegularExpression pappso::PeptideStrParser::_mod_parser
staticprivate

Definition at line 42 of file peptidestrparser.h.

Referenced by parseNoConstString(), parseString(), and parseStringToPeptide().

◆ _rx_modmass

QRegularExpression pappso::PeptideStrParser::_rx_modmass
staticprivate

Definition at line 44 of file peptidestrparser.h.

Referenced by parseStringToPeptide().

◆ _rx_psimod

QRegularExpression pappso::PeptideStrParser::_rx_psimod
staticprivate

Definition at line 43 of file peptidestrparser.h.

Referenced by parseStringToPeptide().


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