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.

48 : msp_fragment(sp_fragment), m_ionType(ion_type)
49{
50 m_mass = msp_fragment.get()->getMass();
51 PeptideDirection direction = msp_fragment.get()->getPeptideIonDirection();
53 {
54 throw PappsoException(QString("Enums::PeptideIon %1 is not an %2 fragment")
57 }
58 m_mass -= MASSH2O;
59 switch(m_ionType)
60 {
61 // -MASSH2O
63 m_neutralPhosphoLossNumber = number_of_neutral_phospho_loss;
65 ion_type = Enums::PeptideIon::y;
66 break;
68 m_neutralPhosphoLossNumber = number_of_neutral_phospho_loss;
70 ion_type = Enums::PeptideIon::b;
71 break;
72 default:
73 break;
74 }
76}
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:47
PeptideDirection getPeptideIonDirection(Enums::PeptideIon ion_type)
get the direction of a peptide ion
Definition peptide.cpp:97
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 78 of file peptidefragmention.cpp.

79 : msp_fragment(other.msp_fragment), m_ionType(other.m_ionType)
80{
81 m_mass = other.m_mass;
82}

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

◆ PeptideFragmentIon() [4/4]

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

Definition at line 85 of file peptidefragmention.cpp.

86 : msp_fragment(std::move(toCopy.msp_fragment)), m_ionType(toCopy.m_ionType), m_mass(toCopy.m_mass)
87{
88}

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

◆ ~PeptideFragmentIon()

pappso::PeptideFragmentIon::~PeptideFragmentIon ( )
virtual

Definition at line 90 of file peptidefragmention.cpp.

91{
92}

Member Function Documentation

◆ getCompletePeptideIonName()

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

get a complete ion name string

Parameters
charge

Definition at line 103 of file peptidefragmention.cpp.

104{
105
106 std::size_t size = msp_fragment.get()->size();
107 QString plusstr = "+";
108 plusstr = plusstr.repeated(charge);
110 {
111 return QString("y%1(-P%2)%3").arg(size).arg(m_neutralPhosphoLossNumber).arg(plusstr);
112 }
114 {
115 return QString("b%1(-P%2)%3").arg(size).arg(m_neutralPhosphoLossNumber).arg(plusstr);
116 }
117
118 return QString("%1%2%3").arg(getPeptideIonName(m_ionType)).arg(size).arg(plusstr);
119}
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 562 of file peptidefragmention.cpp.

563{
564 return m_mass;
565}

References m_mass.

Referenced by PeptideFragmentIon().

◆ getName()

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

Reimplemented from pappso::PeptideInterface.

Definition at line 556 of file peptidefragmention.cpp.

557{
558 return QString("%1-%2").arg(getPeptideIonName(m_ionType)).arg(size());
559}

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 241 of file peptidefragmention.cpp.

242{
243 int number = msp_fragment.get()->getNumberOfAtom(atom);
244 int diff = 0;
245 switch(atom)
246 {
248 switch(m_ionType)
249 {
251 break;
253 // H 1 O 3 P 1 + H 2 0
254 break;
256 // m_mass -= MASSNH3;
257 break;
259 // m_mass -= MASSH2O;
260 break;
262 // m_mass -= MASSH2O;
263 // m_mass -= MASSNH3;
264 break;
266 // m_mass -= MASSH2O;
267 // m_mass -= MASSH2O;
268 break;
270 // m_mass -= MASSH2O;
271 // m_mass -= MASSCO;
272 diff = -1;
273 break;
275 // m_mass += MASSNH3;
276 break;
277 // SvgIon.moxygen - mN
279 // m_mass -= MASSH2O;
280 // m_mass += MASSOXYGEN - MASSNITROGEN - MPROTIUM;
281 break;
283 // m_mass -= MASSH2O;
284 break;
286 // H 1 O 3 P 1 + H 2 0
287 break;
288
290 // m_mass -= MASSH2O;
291 // m_mass = - MASSCO - MASSNH3;
292 diff = -1;
293 break;
295 // m_mass -= MASSH2O;
296 // m_mass = - MASSCO - MASSH2O;
297 diff = -1;
298 break;
300 // +MASSCO + MASSOXYGEN
301 diff = +1;
302 break;
303 default:
304 throw PappsoException(QString("Enums::PeptideIon name not implemented"));
305 break;
306 }
307 break;
309 switch(m_ionType)
310 {
312 break;
314 // H 1 O 3 P 1 + H 2 0
315 diff = -3 * m_neutralPhosphoLossNumber;
316 break;
318 // m_mass -= MASSNH3;
319 diff = -3;
320 break;
322 // m_mass -= MASSH2O;
323 diff = -2;
324 break;
326 // m_mass -= MASSH2O;
327 // m_mass -= MASSNH3;
328 diff = -5;
329 break;
331 // m_mass -= MASSH2O;
332 // m_mass -= MASSH2O;
333 diff = -4;
334 break;
336 // m_mass -= MASSH2O;
337 // m_mass -= MASSCO;
338 diff = -2;
339 break;
341 // m_mass += MASSNH3;
342 diff = -3;
343 break;
344 // SvgIon.moxygen - mN
346 // m_mass -= MASSH2O;
347 // m_mass += MASSOXYGEN - MASSNITROGEN - MPROTIUM;
348 diff = -3;
349 break;
351 // m_mass -= MASSH2O;
352 diff = -2;
353 break;
355 // H 1 O 3 P 1 + H 2 0
356 diff = -3 * m_neutralPhosphoLossNumber;
357 break;
358
359
361 // m_mass -= MASSH2O;
362 // m_mass = - MASSCO - MASSNH3;
363 diff = -5;
364 break;
366 // m_mass -= MASSH2O;
367 // m_mass = - MASSCO - MASSH2O;
368 diff = -4;
369 break;
371 // +MASSCO + MASSOXYGEN
372 diff = -2;
373 break;
374 default:
375 throw PappsoException(QString("Enums::PeptideIon name not implemented"));
376 break;
377 }
378 break;
380 switch(m_ionType)
381 {
383 break;
385 // H 1 O 3 P 1 + H 2 0
386 break;
387
389 // m_mass -= MASSNH3;
390 diff = -1;
391 break;
393 // m_mass -= MASSH2O;
394 break;
396 // m_mass -= MASSH2O;
397 // m_mass -= MASSNH3;
398 diff = -1;
399 break;
401 // m_mass -= MASSH2O;
402 // m_mass -= MASSH2O;
403 break;
405 // m_mass -= MASSH2O;
406 // m_mass -= MASSCO;
407 break;
409 // m_mass += MASSNH3;
410 diff = -1;
411 break;
412 // SvgIon.moxygen - mN
414 // m_mass -= MASSH2O;
415 // m_mass += MASSOXYGEN - MASSNITROGEN - MPROTIUM;
416 diff = -1;
417 break;
419 // m_mass -= MASSH2O;
420 break;
422 // H 1 O 3 P 1 + H 2 0
423 break;
424
425
427 // m_mass -= MASSH2O;
428 // m_mass = - MASSCO - MASSNH3;
429 diff = -1;
430 break;
432 // m_mass -= MASSH2O;
433 // m_mass = - MASSCO - MASSH2O;
434 break;
436 // +MASSCO + MASSOXYGEN
437 break;
438 default:
439 throw PappsoException(QString("Enums::PeptideIon name not implemented"));
440 break;
441 }
442 break;
444 switch(m_ionType)
445 {
447 break;
449 // H 1 O 3 P 1 + H 2 0
450 diff = -4 * m_neutralPhosphoLossNumber;
451 break;
452
454 // m_mass -= MASSNH3;
455 break;
457 // m_mass -= MASSH2O;
458 diff = -1;
459 break;
461 // m_mass -= MASSH2O;
462 // m_mass -= MASSNH3;
463 diff = -1;
464 break;
466 // m_mass -= MASSH2O;
467 // m_mass -= MASSH2O;
468 diff = -2;
469 break;
471 // m_mass -= MASSH2O;
472 // m_mass -= MASSCO;
473 diff = -2;
474 break;
476 // m_mass += MASSNH3;
477 break;
478 // SvgIon.moxygen - mN
480 // m_mass -= MASSH2O;
481 // m_mass += MASSOXYGEN - MASSNITROGEN - MPROTIUM;
482 diff = -2;
483 break;
485 // m_mass -= MASSH2O;
486 diff = -1;
487 break;
489 // H 1 O 3 P 1 + H 2 0
490 diff = -4 * m_neutralPhosphoLossNumber;
491 break;
492
493
495 // m_mass -= MASSH2O;
496 // m_mass = - MASSCO - MASSNH3;
497 diff = -2;
498 break;
500 // m_mass -= MASSH2O;
501 // m_mass = - MASSCO - MASSH2O;
502 diff = -3;
503 break;
505 // +MASSCO + MASSOXYGEN
506 diff = +1;
507 break;
508 default:
509 throw PappsoException(QObject::tr("Enums::PeptideIon name not implemented"));
510 break;
511 }
512 break;
514 break;
515 default:
516 qDebug() << "PeptideFragmentIon::getNumberOfAtom(Enums::AtomIsotopeSurvey "
517 "atom) NOT IMPLEMENTED";
518 }
519 return number + diff;
520}
@ 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 524 of file peptidefragmention.cpp.

525{
526 int number = msp_fragment.get()->getNumberOfIsotope(isotope);
527 return number;
528}

References msp_fragment.

◆ getNumberOfNeutralPhosphoLoss()

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

Definition at line 578 of file peptidefragmention.cpp.

579{
581}

References m_neutralPhosphoLossNumber.

◆ getPeptideFragmentSp()

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

Definition at line 550 of file peptidefragmention.cpp.

551{
552 return msp_fragment;
553}

References msp_fragment.

◆ getPeptideIonColor()

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

Definition at line 186 of file peptidefragmention.cpp.

187{
188 switch(m_ionType)
189 {
191 return QColor("red");
192 break;
194 return QColor("red");
195 break;
197 return QColor("red");
198 break;
200 return QColor("orange");
201 break;
203 return QColor("orange");
204 break;
206 return QColor("blue");
207 break;
209 return QColor("#ff00ff");
210 break;
212 return QColor("green");
213 break;
215 return QColor("green");
216 break;
218 return QColor("green");
219 break;
221 return QColor("blue");
222 break;
223 // SvgIon.moxygen - mN
225 return QColor("red");
226 break;
228 return QColor("blue");
229 break;
231 return QColor("blue");
232 break;
233 default:
234 throw PappsoException(
235 QString("Enums::PeptideIon color not implemented %1").arg(getPeptideIonName(m_ionType)));
236 break;
237 }
238}

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 573 of file peptidefragmention.cpp.

574{
575 return msp_fragment.get()->getPeptideIonDirection();
576}

References msp_fragment.

Referenced by PeptideFragmentIon().

◆ getPeptideIonDirection() [2/2]

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

Definition at line 96 of file peptidefragmention.cpp.

97{
98 return pappso::getPeptideIonDirection(ion_type);
99}

References pappso::getPeptideIonDirection().

◆ getPeptideIonName() [1/2]

◆ getPeptideIonName() [2/2]

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

Definition at line 132 of file peptidefragmention.cpp.

133{
134 switch(m_ionType)
135 {
137 return "y";
138 break;
140 return "yP";
141 break;
143 return "y*";
144 break;
146 return "yO";
147 break;
149 return "b*";
150 break;
152 return "bO";
153 break;
155 return "a";
156 break;
158 return "a*";
159 break;
161 return "aO";
162 break;
164 return "c";
165 break;
166 // SvgIon.moxygen - mN
168 return "z";
169 break;
171 return "b";
172 break;
174 return "bP";
175 break;
177 return "x";
178 break;
179 default:
180 throw PappsoException(QString("Enums::PeptideIon name not implemented"));
181 break;
182 }
183}

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 568 of file peptidefragmention.cpp.

569{
570 return m_ionType;
571}

References m_ionType.

◆ getSequence()

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

amino acid sequence without modification

Implements pappso::PeptideInterface.

Definition at line 544 of file peptidefragmention.cpp.

545{
546 return msp_fragment.get()->getSequence();
547}

References msp_fragment.

◆ isPalindrome()

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

tells if the peptide sequence is a palindrome

Implements pappso::PeptideInterface.

Definition at line 584 of file peptidefragmention.cpp.

585{
586 return msp_fragment.get()->isPalindrome();
587}

References msp_fragment.

◆ makePeptideFragmentIonSp()

PeptideFragmentIonSp pappso::PeptideFragmentIon::makePeptideFragmentIonSp ( ) const

Definition at line 531 of file peptidefragmention.cpp.

532{
533 return std::make_shared<PeptideFragmentIon>(*this);
534}

◆ size()

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

Implements pappso::PeptideInterface.

Definition at line 538 of file peptidefragmention.cpp.

539{
540 return msp_fragment.get()->size();
541}

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: