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

#include <peptidefragmention.h>

Inheritance diagram for pappso::PeptideFragmentIon:
pappso::PeptideInterface pappso::Ion pappso::AtomNumberInterface

Public Member Functions

 PeptideFragmentIon (const PeptideFragmentSp &sp_fragment, Enums::PeptideIon ion_type, unsigned int number_of_neutral_phospho_loss)
 
 PeptideFragmentIon (const PeptideFragmentSp &sp_fragment, Enums::PeptideIon ion_type)
 
 PeptideFragmentIon (const PeptideFragmentIon &other)
 
 PeptideFragmentIon (PeptideFragmentIon &&toCopy)
 
virtual ~PeptideFragmentIon ()
 
PeptideFragmentIonSp makePeptideFragmentIonSp () const
 
virtual unsigned int size () const override
 
virtual const QString getSequence () const override
 amino acid sequence without modification
 
virtual const PeptideFragmentSp & getPeptideFragmentSp () const
 
virtual int getNumberOfAtom (Enums::AtomIsotopeSurvey atom) const override
 get the number of atom C, O, N, H in the molecule
 
virtual int getNumberOfIsotope (Enums::Isotope isotope) const override
 get the number of isotopes C13, H2, O17, O18, N15, S33, S34, S36 in the molecule
 
virtual const QString getName () const override
 
pappso_double getMass () const override
 
const QString getPeptideIonName () const
 
const QString getCompletePeptideIonName (unsigned int charge) const
 get a complete ion name string
 
Enums::PeptideIon getPeptideIonType () const
 
PeptideDirection getPeptideIonDirection () const
 
unsigned int getNumberOfNeutralPhosphoLoss () const
 
virtual bool isPalindrome () const override
 tells if the peptide sequence is a palindrome
 
- Public Member Functions inherited from pappso::PeptideInterface
virtual const QString getSequenceLi () const
 amino acid sequence without modification where L are replaced by I
 
virtual const ChemicalFormula getChemicalFormulaCharge (unsigned int charge) const
 
virtual const QString getFormula (unsigned int charge) const final
 
virtual bool matchPeak (PrecisionPtr precision, pappso_double peak_mz, unsigned int charge) const final
 tells if the peptide m/z matches a given experimental mass
 
- Public Member Functions inherited from pappso::Ion
 Ion ()
 
 ~Ion ()
 
virtual pappso_double getMz (unsigned int charge) const final
 
- Public Member Functions inherited from pappso::AtomNumberInterface
virtual const ChemicalFormula getChemicalFormula () const
 

Static Public Member Functions

static PeptideDirection getPeptideIonDirection (Enums::PeptideIon ion_type)
 
static const QString getPeptideIonName (Enums::PeptideIon ion_type)
 
static const QColor getPeptideIonColor (Enums::PeptideIon ion_type)
 

Private Attributes

const PeptideFragmentSp msp_fragment
 
const Enums::PeptideIon m_ionType
 
pappso_double m_mass = 0
 
unsigned int m_neutralPhosphoLossNumber = 0
 

Detailed Description

Definition at line 49 of file peptidefragmention.h.

Constructor & Destructor Documentation

◆ PeptideFragmentIon() [1/4]

pappso::PeptideFragmentIon::PeptideFragmentIon ( const PeptideFragmentSp &  sp_fragment,
Enums::PeptideIon  ion_type,
unsigned int  number_of_neutral_phospho_loss 
)

Definition at line 45 of file peptidefragmention.cpp.

49 : msp_fragment(sp_fragment), m_ionType(ion_type)
50{
51 m_mass = msp_fragment.get()->getMass();
52 PeptideDirection direction = msp_fragment.get()->getPeptideIonDirection();
54 {
55 throw PappsoException(
56 QString("Enums::PeptideIon %1 is not an %2 fragment")
59 }
60 m_mass -= MASSH2O;
61 switch(m_ionType)
62 {
63 // -MASSH2O
65 m_neutralPhosphoLossNumber = number_of_neutral_phospho_loss;
66 m_mass -=
68 ion_type = Enums::PeptideIon::y;
69 break;
71 m_neutralPhosphoLossNumber = number_of_neutral_phospho_loss;
72 m_mass -=
74 ion_type = Enums::PeptideIon::b;
75 break;
76 default:
77 break;
78 }
80}
const Enums::PeptideIon m_ionType
const QString getPeptideIonName() const
const PeptideFragmentSp msp_fragment
static const QString getPeptideIonDirectionName(PeptideDirection direction)
static pappso_double getDeltaMass(Enums::PeptideIon ion_type)
@ y
Cter amino ions.
@ b
Nter acylium ions.
PeptideDirection
Definition peptide.h:46
PeptideDirection getPeptideIonDirection(Enums::PeptideIon ion_type)
get the direction of a peptide ion
Definition peptide.cpp:95
const pappso_double MASSH2O((MPROTIUM *2)+MASSOXYGEN)
const pappso_double MASSPHOSPHORYLATEDR(MPROTIUM+(MASSOXYGEN *3)+MASSPHOSPHORUS)

References pappso::Enums::b, pappso::Enums::bp, pappso::PeptideRawFragmentMasses::getDeltaMass(), pappso::getPeptideIonDirection(), pappso::PeptideFragment::getPeptideIonDirectionName(), getPeptideIonName(), m_ionType, m_mass, m_neutralPhosphoLossNumber, pappso::MASSH2O(), pappso::MASSPHOSPHORYLATEDR(), msp_fragment, pappso::Enums::y, and pappso::Enums::yp.

◆ PeptideFragmentIon() [2/4]

pappso::PeptideFragmentIon::PeptideFragmentIon ( const PeptideFragmentSp &  sp_fragment,
Enums::PeptideIon  ion_type 
)

Definition at line 39 of file peptidefragmention.cpp.

41 : PeptideFragmentIon(sp_fragment, ion_type, 0)
42{
43}
PeptideFragmentIon(const PeptideFragmentSp &sp_fragment, Enums::PeptideIon ion_type, unsigned int number_of_neutral_phospho_loss)

◆ PeptideFragmentIon() [3/4]

pappso::PeptideFragmentIon::PeptideFragmentIon ( const PeptideFragmentIon &  other)

Definition at line 82 of file peptidefragmention.cpp.

83 : msp_fragment(other.msp_fragment), m_ionType(other.m_ionType)
84{
85 m_mass = other.m_mass;
86}

References m_mass.

◆ PeptideFragmentIon() [4/4]

pappso::PeptideFragmentIon::PeptideFragmentIon ( PeptideFragmentIon &&  toCopy)

Definition at line 89 of file peptidefragmention.cpp.

91 : msp_fragment(std::move(toCopy.msp_fragment)),
92 m_ionType(toCopy.m_ionType),
93 m_mass(toCopy.m_mass)
94{
95}

◆ ~PeptideFragmentIon()

pappso::PeptideFragmentIon::~PeptideFragmentIon ( )
virtual

Definition at line 97 of file peptidefragmention.cpp.

98{
99}

Member Function Documentation

◆ getCompletePeptideIonName()

const QString pappso::PeptideFragmentIon::getCompletePeptideIonName ( unsigned int  charge) const

get a complete ion name string

Parameters
charge

Definition at line 110 of file peptidefragmention.cpp.

111{
112
113 std::size_t size = msp_fragment.get()->size();
114 QString plusstr = "+";
115 plusstr = plusstr.repeated(charge);
117 {
118 return QString("y%1(-P%2)%3")
119 .arg(size)
121 .arg(plusstr);
122 }
124 {
125 return QString("b%1(-P%2)%3")
126 .arg(size)
128 .arg(plusstr);
129 }
130
131 return QString("%1%2%3")
133 .arg(size)
134 .arg(plusstr);
135}
virtual unsigned int size() const override

References pappso::Enums::bp, getPeptideIonName(), m_ionType, m_neutralPhosphoLossNumber, msp_fragment, size(), and pappso::Enums::yp.

◆ getMass()

pappso_double pappso::PeptideFragmentIon::getMass ( ) const
overridevirtual

Implements pappso::Ion.

Definition at line 581 of file peptidefragmention.cpp.

582{
583 return m_mass;
584}

References m_mass.

◆ getName()

const QString pappso::PeptideFragmentIon::getName ( ) const
overridevirtual

Reimplemented from pappso::PeptideInterface.

Definition at line 575 of file peptidefragmention.cpp.

576{
577 return QString("%1-%2").arg(getPeptideIonName(m_ionType)).arg(size());
578}

References getPeptideIonName(), m_ionType, and size().

◆ getNumberOfAtom()

int pappso::PeptideFragmentIon::getNumberOfAtom ( Enums::AtomIsotopeSurvey  atom) const
overridevirtual

get the number of atom C, O, N, H in the molecule

Implements pappso::AtomNumberInterface.

Definition at line 259 of file peptidefragmention.cpp.

260{
261 int number = msp_fragment.get()->getNumberOfAtom(atom);
262 int diff = 0;
263 switch(atom)
264 {
266 switch(m_ionType)
267 {
269 break;
271 // H 1 O 3 P 1 + H 2 0
272 break;
274 // m_mass -= MASSNH3;
275 break;
277 // m_mass -= MASSH2O;
278 break;
280 // m_mass -= MASSH2O;
281 // m_mass -= MASSNH3;
282 break;
284 // m_mass -= MASSH2O;
285 // m_mass -= MASSH2O;
286 break;
288 // m_mass -= MASSH2O;
289 // m_mass -= MASSCO;
290 diff = -1;
291 break;
293 // m_mass += MASSNH3;
294 break;
295 // SvgIon.moxygen - mN
297 // m_mass -= MASSH2O;
298 // m_mass += MASSOXYGEN - MASSNITROGEN - MPROTIUM;
299 break;
301 // m_mass -= MASSH2O;
302 break;
304 // H 1 O 3 P 1 + H 2 0
305 break;
306
308 // m_mass -= MASSH2O;
309 // m_mass = - MASSCO - MASSNH3;
310 diff = -1;
311 break;
313 // m_mass -= MASSH2O;
314 // m_mass = - MASSCO - MASSH2O;
315 diff = -1;
316 break;
318 // +MASSCO + MASSOXYGEN
319 diff = +1;
320 break;
321 default:
322 throw PappsoException(QString("Enums::PeptideIon name not implemented"));
323 break;
324 }
325 break;
327 switch(m_ionType)
328 {
330 break;
332 // H 1 O 3 P 1 + H 2 0
333 diff = -3 * m_neutralPhosphoLossNumber;
334 break;
336 // m_mass -= MASSNH3;
337 diff = -3;
338 break;
340 // m_mass -= MASSH2O;
341 diff = -2;
342 break;
344 // m_mass -= MASSH2O;
345 // m_mass -= MASSNH3;
346 diff = -5;
347 break;
349 // m_mass -= MASSH2O;
350 // m_mass -= MASSH2O;
351 diff = -4;
352 break;
354 // m_mass -= MASSH2O;
355 // m_mass -= MASSCO;
356 diff = -2;
357 break;
359 // m_mass += MASSNH3;
360 diff = -3;
361 break;
362 // SvgIon.moxygen - mN
364 // m_mass -= MASSH2O;
365 // m_mass += MASSOXYGEN - MASSNITROGEN - MPROTIUM;
366 diff = -3;
367 break;
369 // m_mass -= MASSH2O;
370 diff = -2;
371 break;
373 // H 1 O 3 P 1 + H 2 0
374 diff = -3 * m_neutralPhosphoLossNumber;
375 break;
376
377
379 // m_mass -= MASSH2O;
380 // m_mass = - MASSCO - MASSNH3;
381 diff = -5;
382 break;
384 // m_mass -= MASSH2O;
385 // m_mass = - MASSCO - MASSH2O;
386 diff = -4;
387 break;
389 // +MASSCO + MASSOXYGEN
390 diff = -2;
391 break;
392 default:
393 throw PappsoException(QString("Enums::PeptideIon name not implemented"));
394 break;
395 }
396 break;
398 switch(m_ionType)
399 {
401 break;
403 // H 1 O 3 P 1 + H 2 0
404 break;
405
407 // m_mass -= MASSNH3;
408 diff = -1;
409 break;
411 // m_mass -= MASSH2O;
412 break;
414 // m_mass -= MASSH2O;
415 // m_mass -= MASSNH3;
416 diff = -1;
417 break;
419 // m_mass -= MASSH2O;
420 // m_mass -= MASSH2O;
421 break;
423 // m_mass -= MASSH2O;
424 // m_mass -= MASSCO;
425 break;
427 // m_mass += MASSNH3;
428 diff = -1;
429 break;
430 // SvgIon.moxygen - mN
432 // m_mass -= MASSH2O;
433 // m_mass += MASSOXYGEN - MASSNITROGEN - MPROTIUM;
434 diff = -1;
435 break;
437 // m_mass -= MASSH2O;
438 break;
440 // H 1 O 3 P 1 + H 2 0
441 break;
442
443
445 // m_mass -= MASSH2O;
446 // m_mass = - MASSCO - MASSNH3;
447 diff = -1;
448 break;
450 // m_mass -= MASSH2O;
451 // m_mass = - MASSCO - MASSH2O;
452 break;
454 // +MASSCO + MASSOXYGEN
455 break;
456 default:
457 throw PappsoException(QString("Enums::PeptideIon name not implemented"));
458 break;
459 }
460 break;
462 switch(m_ionType)
463 {
465 break;
467 // H 1 O 3 P 1 + H 2 0
468 diff = -4 * m_neutralPhosphoLossNumber;
469 break;
470
472 // m_mass -= MASSNH3;
473 break;
475 // m_mass -= MASSH2O;
476 diff = -1;
477 break;
479 // m_mass -= MASSH2O;
480 // m_mass -= MASSNH3;
481 diff = -1;
482 break;
484 // m_mass -= MASSH2O;
485 // m_mass -= MASSH2O;
486 diff = -2;
487 break;
489 // m_mass -= MASSH2O;
490 // m_mass -= MASSCO;
491 diff = -2;
492 break;
494 // m_mass += MASSNH3;
495 break;
496 // SvgIon.moxygen - mN
498 // m_mass -= MASSH2O;
499 // m_mass += MASSOXYGEN - MASSNITROGEN - MPROTIUM;
500 diff = -2;
501 break;
503 // m_mass -= MASSH2O;
504 diff = -1;
505 break;
507 // H 1 O 3 P 1 + H 2 0
508 diff = -4 * m_neutralPhosphoLossNumber;
509 break;
510
511
513 // m_mass -= MASSH2O;
514 // m_mass = - MASSCO - MASSNH3;
515 diff = -2;
516 break;
518 // m_mass -= MASSH2O;
519 // m_mass = - MASSCO - MASSH2O;
520 diff = -3;
521 break;
523 // +MASSCO + MASSOXYGEN
524 diff = +1;
525 break;
526 default:
527 throw PappsoException(
528 QObject::tr("Enums::PeptideIon name not implemented"));
529 break;
530 }
531 break;
533 break;
534 default:
535 qDebug() << "PeptideFragmentIon::getNumberOfAtom(Enums::AtomIsotopeSurvey "
536 "atom) NOT IMPLEMENTED";
537 }
538 return number + diff;
539}
@ a
Nter aldimine ions.
@ c
Nter amino ions.
@ astar
Nter aldimine ions + NH3 loss.
@ ystar
Cter amino ions + NH3 loss.
@ yo
Cter amino ions + H2O loss.
@ bstar
Nter acylium ions + NH3 loss.
@ x
Cter acylium ions.
@ bo
Nter acylium ions + H2O loss.
@ ao
Nter aldimine ions + H2O loss.
@ z
Cter carbocations.

References pappso::Enums::a, pappso::Enums::ao, pappso::Enums::astar, pappso::Enums::b, pappso::Enums::bo, pappso::Enums::bp, pappso::Enums::bstar, pappso::Enums::C, pappso::Enums::c, pappso::Enums::H, m_ionType, m_neutralPhosphoLossNumber, msp_fragment, pappso::Enums::N, pappso::Enums::O, pappso::Enums::S, pappso::Enums::x, pappso::Enums::y, pappso::Enums::yo, pappso::Enums::yp, pappso::Enums::ystar, and pappso::Enums::z.

◆ getNumberOfIsotope()

int pappso::PeptideFragmentIon::getNumberOfIsotope ( Enums::Isotope  isotope) const
overridevirtual

get the number of isotopes C13, H2, O17, O18, N15, S33, S34, S36 in the molecule

Implements pappso::AtomNumberInterface.

Definition at line 543 of file peptidefragmention.cpp.

544{
545 int number = msp_fragment.get()->getNumberOfIsotope(isotope);
546 return number;
547}

References msp_fragment.

◆ getNumberOfNeutralPhosphoLoss()

unsigned int pappso::PeptideFragmentIon::getNumberOfNeutralPhosphoLoss ( ) const

Definition at line 597 of file peptidefragmention.cpp.

598{
600}

References m_neutralPhosphoLossNumber.

◆ getPeptideFragmentSp()

const PeptideFragmentSp & pappso::PeptideFragmentIon::getPeptideFragmentSp ( ) const
virtual

Definition at line 569 of file peptidefragmention.cpp.

570{
571 return msp_fragment;
572}

References msp_fragment.

◆ getPeptideIonColor()

const QColor pappso::PeptideFragmentIon::getPeptideIonColor ( Enums::PeptideIon  ion_type)
static

Definition at line 204 of file peptidefragmention.cpp.

205{
206 switch(m_ionType)
207 {
209 return QColor("red");
210 break;
212 return QColor("red");
213 break;
215 return QColor("red");
216 break;
218 return QColor("orange");
219 break;
221 return QColor("orange");
222 break;
224 return QColor("blue");
225 break;
227 return QColor("#ff00ff");
228 break;
230 return QColor("green");
231 break;
233 return QColor("green");
234 break;
236 return QColor("green");
237 break;
239 return QColor("blue");
240 break;
241 // SvgIon.moxygen - mN
243 return QColor("red");
244 break;
246 return QColor("blue");
247 break;
249 return QColor("blue");
250 break;
251 default:
252 throw PappsoException(QString("Enums::PeptideIon color not implemented %1")
254 break;
255 }
256}

References pappso::Enums::a, pappso::Enums::ao, pappso::Enums::astar, pappso::Enums::b, pappso::Enums::bo, pappso::Enums::bp, pappso::Enums::bstar, pappso::Enums::c, getPeptideIonName(), m_ionType, pappso::Enums::x, pappso::Enums::y, pappso::Enums::yo, pappso::Enums::yp, pappso::Enums::ystar, and pappso::Enums::z.

Referenced by pappso::QCPSpectrum::QCPSpectrum(), and pappso::MassSpectrumWidget::plot().

◆ getPeptideIonDirection() [1/2]

PeptideDirection pappso::PeptideFragmentIon::getPeptideIonDirection ( ) const

Definition at line 592 of file peptidefragmention.cpp.

593{
594 return msp_fragment.get()->getPeptideIonDirection();
595}

References msp_fragment.

◆ getPeptideIonDirection() [2/2]

PeptideDirection pappso::PeptideFragmentIon::getPeptideIonDirection ( Enums::PeptideIon  ion_type)
static

Definition at line 103 of file peptidefragmention.cpp.

104{
105 return pappso::getPeptideIonDirection(ion_type);
106}

References pappso::getPeptideIonDirection().

◆ getPeptideIonName() [1/2]

const QString pappso::PeptideFragmentIon::getPeptideIonName ( ) const

◆ getPeptideIonName() [2/2]

const QString pappso::PeptideFragmentIon::getPeptideIonName ( Enums::PeptideIon  ion_type)
static

Definition at line 150 of file peptidefragmention.cpp.

151{
152 switch(m_ionType)
153 {
155 return "y";
156 break;
158 return "yP";
159 break;
161 return "y*";
162 break;
164 return "yO";
165 break;
167 return "b*";
168 break;
170 return "bO";
171 break;
173 return "a";
174 break;
176 return "a*";
177 break;
179 return "aO";
180 break;
182 return "c";
183 break;
184 // SvgIon.moxygen - mN
186 return "z";
187 break;
189 return "b";
190 break;
192 return "bP";
193 break;
195 return "x";
196 break;
197 default:
198 throw PappsoException(QString("Enums::PeptideIon name not implemented"));
199 break;
200 }
201}

References pappso::Enums::a, pappso::Enums::ao, pappso::Enums::astar, pappso::Enums::b, pappso::Enums::bo, pappso::Enums::bp, pappso::Enums::bstar, pappso::Enums::c, m_ionType, pappso::Enums::x, pappso::Enums::y, pappso::Enums::yo, pappso::Enums::yp, pappso::Enums::ystar, and pappso::Enums::z.

◆ getPeptideIonType()

Enums::PeptideIon pappso::PeptideFragmentIon::getPeptideIonType ( ) const

Definition at line 587 of file peptidefragmention.cpp.

588{
589 return m_ionType;
590}

References m_ionType.

◆ getSequence()

const QString pappso::PeptideFragmentIon::getSequence ( ) const
overridevirtual

amino acid sequence without modification

Implements pappso::PeptideInterface.

Definition at line 563 of file peptidefragmention.cpp.

564{
565 return msp_fragment.get()->getSequence();
566}

References msp_fragment.

◆ isPalindrome()

bool pappso::PeptideFragmentIon::isPalindrome ( ) const
overridevirtual

tells if the peptide sequence is a palindrome

Implements pappso::PeptideInterface.

Definition at line 603 of file peptidefragmention.cpp.

604{
605 return msp_fragment.get()->isPalindrome();
606}

References msp_fragment.

◆ makePeptideFragmentIonSp()

PeptideFragmentIonSp pappso::PeptideFragmentIon::makePeptideFragmentIonSp ( ) const

Definition at line 550 of file peptidefragmention.cpp.

551{
552 return std::make_shared<PeptideFragmentIon>(*this);
553}

◆ size()

unsigned int pappso::PeptideFragmentIon::size ( ) const
overridevirtual

Implements pappso::PeptideInterface.

Definition at line 557 of file peptidefragmention.cpp.

558{
559 return msp_fragment.get()->size();
560}

References msp_fragment.

Referenced by getCompletePeptideIonName(), and getName().

Member Data Documentation

◆ m_ionType

◆ m_mass

pappso_double pappso::PeptideFragmentIon::m_mass = 0
private

Definition at line 98 of file peptidefragmention.h.

Referenced by PeptideFragmentIon(), PeptideFragmentIon(), and getMass().

◆ m_neutralPhosphoLossNumber

unsigned int pappso::PeptideFragmentIon::m_neutralPhosphoLossNumber = 0
private

◆ msp_fragment


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