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 PeptideFragmentSpgetPeptideFragmentSp () 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.
Definition types.h:295
@ b
Nter acylium ions.
Definition types.h:287
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(), getMass(), pappso::getPeptideIonDirection(), getPeptideIonDirection(), pappso::PeptideFragment::getPeptideIonDirectionName(), getPeptideIonName(), m_ionType, m_mass, m_neutralPhosphoLossNumber, pappso::MASSH2O(), pappso::MASSPHOSPHORYLATEDR(), msp_fragment, pappso::Enums::y, and pappso::Enums::yp.

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

◆ 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)

References PeptideFragmentIon().

◆ 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 PeptideFragmentIon(), m_ionType, m_mass, and msp_fragment.

◆ 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}

References PeptideFragmentIon(), m_ionType, m_mass, and msp_fragment.

◆ ~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.

Referenced by PeptideFragmentIon().

◆ 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.
Definition types.h:290
@ c
Nter amino ions.
Definition types.h:294
@ astar
Nter aldimine ions + NH3 loss.
Definition types.h:291
@ ystar
Cter amino ions + NH3 loss.
Definition types.h:296
@ yo
Cter amino ions + H2O loss.
Definition types.h:297
@ bstar
Nter acylium ions + NH3 loss.
Definition types.h:288
@ x
Cter acylium ions.
Definition types.h:300
@ bo
Nter acylium ions + H2O loss.
Definition types.h:289
@ ao
Nter aldimine ions + H2O loss.
Definition types.h:292
@ z
Cter carbocations.
Definition types.h:298

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.

Referenced by PeptideFragmentIon().

◆ 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 pappso::findComplementIonType(), getCompletePeptideIonName(), and getName().

Member Data Documentation

◆ m_ionType

◆ m_mass

pappso_double pappso::PeptideFragmentIon::m_mass = 0
private

◆ m_neutralPhosphoLossNumber

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

◆ msp_fragment


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