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.

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:281
@ b
Nter acylium ions.
Definition types.h:273
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:276
@ c
Nter amino ions.
Definition types.h:280
@ astar
Nter aldimine ions + NH3 loss.
Definition types.h:277
@ ystar
Cter amino ions + NH3 loss.
Definition types.h:282
@ yo
Cter amino ions + H2O loss.
Definition types.h:283
@ bstar
Nter acylium ions + NH3 loss.
Definition types.h:274
@ x
Cter acylium ions.
Definition types.h:286
@ bo
Nter acylium ions + H2O loss.
Definition types.h:275
@ ao
Nter aldimine ions + H2O loss.
Definition types.h:278
@ z
Cter carbocations.
Definition types.h:284

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: