34 #include "../pappsoexception.h"
35 #include "../exception/exceptionoutofrange.h"
36 #include "../exception/exceptionnotpossible.h"
46 if((std::int8_t)ion_type < (std::int8_t)8)
66 QString::const_iterator it(pepstr.begin());
67 if(it != pepstr.end())
72 Aa nter_aa(it->toLatin1());
73 nter_aa.addAaModification(
78 while(it != pepstr.end())
85 m_aaVec.back().addAaModification(
88 qDebug() <<
"blabla " <<
m_aaVec.back().toString();
97 : m_aaVec(peptide.m_aaVec), m_proxyMass(peptide.m_proxyMass)
103 : m_aaVec(std::move(toCopy.m_aaVec)), m_proxyMass(toCopy.m_proxyMass)
111 return std::make_shared<const Peptide>(*
this);
117 return std::make_shared<Peptide>(*
this);
122 unsigned int position)
124 if(position >=
size())
127 QObject::tr(
"position (%1) > size (%2)").arg(position).arg(
size()));
130 qDebug() <<
"Peptide::addAaModification begin " << position;
131 std::vector<Aa>::iterator it =
m_aaVec.begin() + position;
132 it->addAaModification(aaModification);
134 qDebug() <<
"Peptide::addAaModification end";
142 std::vector<Aa>::const_iterator it(
m_aaVec.begin());
145 seq += it->getLetter();
154 std::vector<Aa>::const_iterator it(
m_aaVec.begin());
157 seq += it->toAbsoluteString();
167 std::vector<Aa>::const_iterator it(
m_aaVec.begin());
170 seq += it->toAbsoluteString();
173 return seq.replace(
"L",
"I");
181 std::vector<Aa>::const_iterator it(
m_aaVec.begin());
184 seq += it->toString();
193 qDebug() <<
"Aa::getMass() begin";
210 std::vector<Aa>::const_iterator it(
m_aaVec.begin());
213 number += it->getNumberOfAtom(atom);
224 std::vector<Aa>::const_iterator it(
m_aaVec.begin());
227 number += it->getNumberOfIsotope(isotope);
238 unsigned int number = 0;
239 std::vector<Aa>::const_iterator it(
m_aaVec.begin());
242 number += it->getNumberOfModification(mod);
251 const std::vector<char> &aa_list)
const
253 unsigned int number = 0;
254 std::vector<Aa>::const_iterator it(
m_aaVec.begin());
257 if(std::find(aa_list.begin(), aa_list.end(), it->getLetter()) !=
260 number += it->getNumberOfModification(mod);
273 std::vector<Aa>::iterator it(
m_aaVec.begin());
276 it->replaceAaModification(oldmod, newmod);
285 std::vector<Aa>::iterator it(
m_aaVec.begin());
288 it->removeAaModification(mod);
296 std::vector<unsigned int>
299 std::vector<unsigned int> position_list;
300 unsigned int position = 0;
301 std::vector<Aa>::const_iterator it(
m_aaVec.begin());
304 unsigned int number = 0;
305 number += it->getNumberOfModification(mod);
306 for(
unsigned int j = 0; j < number; j++)
308 position_list.push_back(position);
314 return position_list;
317 std::vector<unsigned int>
319 const std::vector<char> &aa_list)
const
321 std::vector<unsigned int> position_list;
322 unsigned int position = 0;
323 std::vector<Aa>::const_iterator it(
m_aaVec.begin());
326 if(std::find(aa_list.begin(), aa_list.end(), it->getLetter()) !=
329 unsigned int number = 0;
330 number += it->getNumberOfModification(mod);
331 for(
unsigned int j = 0; j < number; j++)
333 position_list.push_back(position);
340 return position_list;
343 std::vector<unsigned int>
346 std::vector<unsigned int> position_list;
347 unsigned int number = 0;
348 std::vector<Aa>::const_iterator it(
m_aaVec.begin());
351 if(it->getLetter() == aa)
352 position_list.push_back(number);
357 return position_list;
360 std::vector<unsigned int>
363 std::vector<unsigned int> position_list;
364 unsigned int number = 0;
365 std::vector<Aa>::const_iterator it(
m_aaVec.begin());
370 (std::find(list_aa.begin(), list_aa.end(), it->getLetter()) !=
374 position_list.push_back(number);
380 return position_list;
386 std::vector<Aa>::const_iterator it(
m_aaVec.begin());
389 return it->getInternalNterModification();
397 std::vector<Aa>::const_iterator it(
m_aaVec.end());
401 return it->getInternalCterModification();
408 std::vector<Aa>::iterator it(
m_aaVec.begin());
412 it->removeInternalNterModification();
419 std::vector<Aa>::iterator it(
m_aaVec.end());
424 it->removeInternalCterModification();
436 std::vector<Aa>::iterator it(
m_aaVec.begin());
439 it->addAaModification(mod);
448 throw ExceptionNotPossible(
449 QObject::tr(
"modification is not an internal Nter modification : %1")
459 std::vector<Aa>::iterator it(
m_aaVec.end());
463 it->addAaModification(mod);
472 throw ExceptionNotPossible(
473 QObject::tr(
"modification is not an internal Cter modification : %1")
483 m_aaVec.begin()->removeInternalNterModification();
486 m_aaVec.begin()->addAaModification(modNter);
495 m_aaVec.begin()->removeInternalNterModification();
498 m_aaVec.begin()->addAaModification(modNter);
507 std::size_t k = (
size - 1);
508 for(std::size_t i = 0; i < (
size / 2); i++, k--)
523 throw ExceptionOutOfRange(
524 QObject::tr(
"no AA at position %1").arg(position));
533 throw ExceptionOutOfRange(
534 QObject::tr(
"no AA at position %1").arg(position));
544 std::vector<Aa>::iterator it(
m_aaVec.begin());
545 std::vector<Aa>::iterator itend(
m_aaVec.end());
546 for(; it != itend; it++)
548 it->replaceLeucineIsoleucine();
556 std::vector<Aa>::iterator it(
m_aaVec.begin());
561 if(nter_modification !=
nullptr)
563 m_aaVec.begin()->addAaModification(nter_modification);
571 throw ExceptionOutOfRange(QObject::tr(
"peptide is empty"));
579 std::vector<Aa>::iterator it(
m_aaVec.end());
585 if(cter_modification !=
nullptr)
589 it->addAaModification(cter_modification);