libpappsomspp
Library for mass spectrometry
pappso::AaBase Class Reference

#include <aabase.h>

Inheritance diagram for pappso::AaBase:
pappso::AtomNumberInterface pappso::Aa

Public Member Functions

virtual pappso_double getMass () const
 
virtual const char & getLetter () const
 
virtual void replaceLeucineIsoleucine ()
 

Static Public Member Functions

static const std::vector< AminoAcidChar > & getAminoAcidCharList ()
 

Protected Member Functions

 AaBase (char aa_letter)
 
 AaBase (AminoAcidChar aa_char)
 
 AaBase (const AaBase &aabase)
 
virtual ~AaBase ()
 
virtual int getNumberOfAtom (AtomIsotopeSurvey atom) const override
 get the number of atom C, O, N, H in the molecule More...
 
int getNumberOfIsotope (Isotope isotope) const override
 get the number of isotopes C13, H2, O17, O18, N15, S33, S34, S36 in the molecule More...
 

Static Protected Member Functions

static pappso_double getAaMass (char aa_letter)
 

Protected Attributes

char m_aaLetter
 

Private Types

using AaMassMap = std::map< char, pappso_double >
 
using AaIntMap = std::map< char, unsigned int >
 
using AminoAcidCharList = std::vector< AminoAcidChar >
 

Static Private Attributes

static AaMassMap m_aaMassMap
 
static AaIntMap m_aaNumberOfCarbonMap
 
static AaIntMap m_aaNumberOfSulfurMap
 
static AaIntMap m_aaNumberOfHydrogenMap
 
static AaIntMap m_aaNumberOfNitrogenMap
 
static AaIntMap m_aaNumberOfOxygenMap
 
static AminoAcidCharList m_aminoAcidCharList
 

Detailed Description

Definition at line 63 of file aabase.h.

Member Typedef Documentation

◆ AaIntMap

using pappso::AaBase::AaIntMap = std::map<char, unsigned int>
private

Definition at line 111 of file aabase.h.

◆ AaMassMap

using pappso::AaBase::AaMassMap = std::map<char, pappso_double>
private

Definition at line 110 of file aabase.h.

◆ AminoAcidCharList

using pappso::AaBase::AminoAcidCharList = std::vector<AminoAcidChar>
private

Definition at line 112 of file aabase.h.

Constructor & Destructor Documentation

◆ AaBase() [1/3]

pappso::AaBase::AaBase ( char  aa_letter)
protected

Definition at line 40 of file aabase.cpp.

40  : m_aaLetter(aa_letter)
41 {
42  /*
43  if (AaBase::_aa_mass_map.empty()) {
44  AaBase::static_builder();
45  }
46  */
47  if(m_aaMassMap.find(aa_letter) == m_aaMassMap.end())
48  {
49  throw ExceptionNotFound(
50  QObject::tr("amino acid %1 not found").arg(aa_letter));
51  }
52 }

References m_aaMassMap.

◆ AaBase() [2/3]

pappso::AaBase::AaBase ( AminoAcidChar  aa_char)
protected

Definition at line 54 of file aabase.cpp.

54  : m_aaLetter((char)aa_char)
55 {
56 }

◆ AaBase() [3/3]

pappso::AaBase::AaBase ( const AaBase aabase)
protected

Definition at line 59 of file aabase.cpp.

59  : m_aaLetter(aa.m_aaLetter)
60 {
61 }

◆ ~AaBase()

pappso::AaBase::~AaBase ( )
protectedvirtual

Definition at line 63 of file aabase.cpp.

64 {
65  // TODO Auto-generated destructor stub
66 }

Member Function Documentation

◆ getAaMass()

pappso_double pappso::AaBase::getAaMass ( char  aa_letter)
staticprotected

Definition at line 378 of file aabase.cpp.

379 {
380  return m_aaMassMap.at(aa_letter);
381 }

References m_aaMassMap.

◆ getAminoAcidCharList()

const std::vector< AminoAcidChar > & pappso::AaBase::getAminoAcidCharList ( )
static

Definition at line 438 of file aabase.cpp.

439 {
440  return m_aminoAcidCharList;
441 }

References m_aminoAcidCharList.

◆ getLetter()

const char & pappso::AaBase::getLetter ( ) const
virtual

Definition at line 432 of file aabase.cpp.

433 {
434  return m_aaLetter;
435 }

References m_aaLetter.

Referenced by pappso::Aa::getModificationList(), and pappso::Aa::toAbsoluteString().

◆ getMass()

pappso_double pappso::AaBase::getMass ( ) const
virtual

Reimplemented in pappso::Aa.

Definition at line 385 of file aabase.cpp.

386 {
387  return m_aaMassMap.at(m_aaLetter);
388 }

References m_aaLetter, and m_aaMassMap.

◆ getNumberOfAtom()

int pappso::AaBase::getNumberOfAtom ( AtomIsotopeSurvey  atom) const
overrideprotectedvirtual

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

Implements pappso::AtomNumberInterface.

Reimplemented in pappso::Aa.

Definition at line 392 of file aabase.cpp.

393 {
394  switch(atom)
395  {
397  return this->m_aaNumberOfCarbonMap.at(m_aaLetter);
399  return this->m_aaNumberOfHydrogenMap.at(m_aaLetter);
401  return this->m_aaNumberOfNitrogenMap.at(m_aaLetter);
403  return this->m_aaNumberOfOxygenMap.at(m_aaLetter);
405  return this->m_aaNumberOfSulfurMap.at(m_aaLetter);
406  default:
407  return 0;
408  }
409  // selenium (U) is not taken into account to compute isotopes
410  // it has 5 stable isotopes and the most abundant is 80Se (49,61%)
411  qDebug() << "AaBase::getNumberOfAtom(AtomIsotopeSurvey atom) NOT IMPLEMENTED";
412  return 0;
413 }

References pappso::C, pappso::H, m_aaLetter, m_aaNumberOfCarbonMap, m_aaNumberOfHydrogenMap, m_aaNumberOfNitrogenMap, m_aaNumberOfOxygenMap, m_aaNumberOfSulfurMap, pappso::N, pappso::O, and pappso::S.

◆ getNumberOfIsotope()

int pappso::AaBase::getNumberOfIsotope ( Isotope  isotope) const
overrideprotectedvirtual

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

Implements pappso::AtomNumberInterface.

Definition at line 425 of file aabase.cpp.

426 {
427  return 0;
428 }

◆ replaceLeucineIsoleucine()

void pappso::AaBase::replaceLeucineIsoleucine ( )
virtual

Definition at line 417 of file aabase.cpp.

418 {
419  if(m_aaLetter == 'L')
420  m_aaLetter = 'I';
421 }

References m_aaLetter.

Member Data Documentation

◆ m_aaLetter

char pappso::AaBase::m_aaLetter
protected

Definition at line 107 of file aabase.h.

Referenced by getLetter(), getMass(), getNumberOfAtom(), and replaceLeucineIsoleucine().

◆ m_aaMassMap

AaBase::AaMassMap pappso::AaBase::m_aaMassMap
staticprivate

Definition at line 114 of file aabase.h.

Referenced by AaBase(), getAaMass(), and getMass().

◆ m_aaNumberOfCarbonMap

AaBase::AaIntMap pappso::AaBase::m_aaNumberOfCarbonMap
staticprivate
Initial value:
= [] {
AaIntMap ret;
ret.insert(std::pair<char, unsigned int>('W', 11));
ret.insert(std::pair<char, unsigned int>('G', 2));
ret.insert(std::pair<char, unsigned int>('A', 3));
ret.insert(std::pair<char, unsigned int>('S', 3));
ret.insert(std::pair<char, unsigned int>('P', 5));
ret.insert(std::pair<char, unsigned int>('V', 5));
ret.insert(std::pair<char, unsigned int>('T', 4));
ret.insert(std::pair<char, unsigned int>('L', 6));
ret.insert(std::pair<char, unsigned int>('I', 6));
ret.insert(std::pair<char, unsigned int>('N', 4));
ret.insert(std::pair<char, unsigned int>('D', 4));
ret.insert(std::pair<char, unsigned int>('K', 6));
ret.insert(std::pair<char, unsigned int>('Q', 5));
ret.insert(std::pair<char, unsigned int>('E', 5));
ret.insert(std::pair<char, unsigned int>('M', 5));
ret.insert(std::pair<char, unsigned int>('H', 6));
ret.insert(std::pair<char, unsigned int>('F', 9));
ret.insert(std::pair<char, unsigned int>('R', 6));
ret.insert(std::pair<char, unsigned int>('C', 3));
ret.insert(std::pair<char, unsigned int>('Y', 9));
ret.insert(std::pair<char, unsigned int>('U', 3));
ret.insert(std::pair<char, unsigned int>('O', 12));
return ret;
}()

Definition at line 115 of file aabase.h.

Referenced by getNumberOfAtom().

◆ m_aaNumberOfHydrogenMap

AaBase::AaIntMap pappso::AaBase::m_aaNumberOfHydrogenMap
staticprivate
Initial value:
= [] {
AaIntMap ret;
ret.insert(std::pair<char, unsigned int>('A', 5));
ret.insert(std::pair<char, unsigned int>('C', 5));
ret.insert(std::pair<char, unsigned int>('D', 5));
ret.insert(std::pair<char, unsigned int>('E', 7));
ret.insert(std::pair<char, unsigned int>('F', 9));
ret.insert(std::pair<char, unsigned int>('G', 3));
ret.insert(std::pair<char, unsigned int>('H', 7));
ret.insert(std::pair<char, unsigned int>('I', 11));
ret.insert(std::pair<char, unsigned int>('K', 12));
ret.insert(std::pair<char, unsigned int>('L', 11));
ret.insert(std::pair<char, unsigned int>('M', 9));
ret.insert(std::pair<char, unsigned int>('N', 6));
ret.insert(std::pair<char, unsigned int>('P', 7));
ret.insert(std::pair<char, unsigned int>('Q', 8));
ret.insert(std::pair<char, unsigned int>('R', 12));
ret.insert(std::pair<char, unsigned int>('S', 5));
ret.insert(std::pair<char, unsigned int>('T', 7));
ret.insert(std::pair<char, unsigned int>('V', 9));
ret.insert(std::pair<char, unsigned int>('W', 10));
ret.insert(std::pair<char, unsigned int>('Y', 9));
ret.insert(std::pair<char, unsigned int>('U', 7));
ret.insert(std::pair<char, unsigned int>('O', 21));
return ret;
}()

Definition at line 117 of file aabase.h.

Referenced by getNumberOfAtom().

◆ m_aaNumberOfNitrogenMap

AaBase::AaIntMap pappso::AaBase::m_aaNumberOfNitrogenMap
staticprivate
Initial value:
= [] {
AaIntMap ret;
ret.insert(std::pair<char, unsigned int>('A', 1));
ret.insert(std::pair<char, unsigned int>('C', 1));
ret.insert(std::pair<char, unsigned int>('D', 1));
ret.insert(std::pair<char, unsigned int>('E', 1));
ret.insert(std::pair<char, unsigned int>('F', 1));
ret.insert(std::pair<char, unsigned int>('G', 1));
ret.insert(std::pair<char, unsigned int>('H', 3));
ret.insert(std::pair<char, unsigned int>('I', 1));
ret.insert(std::pair<char, unsigned int>('K', 2));
ret.insert(std::pair<char, unsigned int>('L', 1));
ret.insert(std::pair<char, unsigned int>('M', 1));
ret.insert(std::pair<char, unsigned int>('N', 2));
ret.insert(std::pair<char, unsigned int>('P', 1));
ret.insert(std::pair<char, unsigned int>('Q', 2));
ret.insert(std::pair<char, unsigned int>('R', 4));
ret.insert(std::pair<char, unsigned int>('S', 1));
ret.insert(std::pair<char, unsigned int>('T', 1));
ret.insert(std::pair<char, unsigned int>('V', 1));
ret.insert(std::pair<char, unsigned int>('W', 2));
ret.insert(std::pair<char, unsigned int>('Y', 1));
ret.insert(std::pair<char, unsigned int>('U', 1));
ret.insert(std::pair<char, unsigned int>('O', 3));
return ret;
}()

Definition at line 118 of file aabase.h.

Referenced by getNumberOfAtom().

◆ m_aaNumberOfOxygenMap

AaBase::AaIntMap pappso::AaBase::m_aaNumberOfOxygenMap
staticprivate
Initial value:
= [] {
AaIntMap ret;
ret.insert(std::pair<char, unsigned int>('A', 1));
ret.insert(std::pair<char, unsigned int>('C', 1));
ret.insert(std::pair<char, unsigned int>('D', 3));
ret.insert(std::pair<char, unsigned int>('E', 3));
ret.insert(std::pair<char, unsigned int>('F', 1));
ret.insert(std::pair<char, unsigned int>('G', 1));
ret.insert(std::pair<char, unsigned int>('H', 1));
ret.insert(std::pair<char, unsigned int>('I', 1));
ret.insert(std::pair<char, unsigned int>('K', 1));
ret.insert(std::pair<char, unsigned int>('L', 1));
ret.insert(std::pair<char, unsigned int>('M', 1));
ret.insert(std::pair<char, unsigned int>('N', 2));
ret.insert(std::pair<char, unsigned int>('P', 1));
ret.insert(std::pair<char, unsigned int>('Q', 2));
ret.insert(std::pair<char, unsigned int>('R', 1));
ret.insert(std::pair<char, unsigned int>('S', 2));
ret.insert(std::pair<char, unsigned int>('T', 2));
ret.insert(std::pair<char, unsigned int>('V', 1));
ret.insert(std::pair<char, unsigned int>('W', 1));
ret.insert(std::pair<char, unsigned int>('Y', 2));
ret.insert(std::pair<char, unsigned int>('U', 2));
ret.insert(std::pair<char, unsigned int>('O', 3));
return ret;
}()

Definition at line 119 of file aabase.h.

Referenced by getNumberOfAtom().

◆ m_aaNumberOfSulfurMap

AaBase::AaIntMap pappso::AaBase::m_aaNumberOfSulfurMap
staticprivate
Initial value:
= [] {
AaIntMap ret;
ret.insert(std::pair<char, unsigned int>('A', 0));
ret.insert(std::pair<char, unsigned int>('C', 1));
ret.insert(std::pair<char, unsigned int>('D', 0));
ret.insert(std::pair<char, unsigned int>('E', 0));
ret.insert(std::pair<char, unsigned int>('F', 0));
ret.insert(std::pair<char, unsigned int>('G', 0));
ret.insert(std::pair<char, unsigned int>('H', 0));
ret.insert(std::pair<char, unsigned int>('I', 0));
ret.insert(std::pair<char, unsigned int>('K', 0));
ret.insert(std::pair<char, unsigned int>('L', 0));
ret.insert(std::pair<char, unsigned int>('M', 1));
ret.insert(std::pair<char, unsigned int>('N', 0));
ret.insert(std::pair<char, unsigned int>('P', 0));
ret.insert(std::pair<char, unsigned int>('Q', 0));
ret.insert(std::pair<char, unsigned int>('R', 0));
ret.insert(std::pair<char, unsigned int>('S', 0));
ret.insert(std::pair<char, unsigned int>('T', 0));
ret.insert(std::pair<char, unsigned int>('V', 0));
ret.insert(std::pair<char, unsigned int>('W', 0));
ret.insert(std::pair<char, unsigned int>('Y', 0));
ret.insert(std::pair<char, unsigned int>('U', 0));
ret.insert(std::pair<char, unsigned int>('O', 0));
return ret;
}()

Definition at line 116 of file aabase.h.

Referenced by getNumberOfAtom().

◆ m_aminoAcidCharList


The documentation for this class was generated from the following files:
pappso::AminoAcidChar::glycine
@ glycine
pappso::AtomIsotopeSurvey::S
@ S
pappso::AminoAcidChar::glutamine
@ glutamine
pappso::AaBase::m_aaNumberOfCarbonMap
static AaIntMap m_aaNumberOfCarbonMap
Definition: aabase.h:115
pappso::AaBase::AaIntMap
std::map< char, unsigned int > AaIntMap
Definition: aabase.h:111
pappso::AminoAcidChar::alanine
@ alanine
pappso::AminoAcidChar::lysine
@ lysine
pappso::AminoAcidChar::proline
@ proline
pappso::AaBase::m_aminoAcidCharList
static AminoAcidCharList m_aminoAcidCharList
Definition: aabase.h:120
pappso::AaBase::m_aaNumberOfHydrogenMap
static AaIntMap m_aaNumberOfHydrogenMap
Definition: aabase.h:117
pappso::AminoAcidChar::aspartic_acid
@ aspartic_acid
pappso::AminoAcidChar::glutamic_acid
@ glutamic_acid
pappso::AminoAcidChar::selenocysteine
@ selenocysteine
pappso::AminoAcidChar::serine
@ serine
pappso::AminoAcidChar::isoleucine
@ isoleucine
pappso::AminoAcidChar::methionine
@ methionine
pappso::AtomIsotopeSurvey::H
@ H
pappso::AminoAcidChar::threonine
@ threonine
pappso::AaBase::m_aaNumberOfOxygenMap
static AaIntMap m_aaNumberOfOxygenMap
Definition: aabase.h:119
pappso::AminoAcidChar::leucine
@ leucine
pappso::AminoAcidChar::asparagine
@ asparagine
pappso::AminoAcidChar::phenylalanine
@ phenylalanine
pappso::AminoAcidChar::histidine
@ histidine
pappso::AaBase::m_aaNumberOfSulfurMap
static AaIntMap m_aaNumberOfSulfurMap
Definition: aabase.h:116
pappso::AminoAcidChar::pyrrolysine
@ pyrrolysine
pappso::AaBase::AminoAcidCharList
std::vector< AminoAcidChar > AminoAcidCharList
Definition: aabase.h:112
pappso::AaBase::m_aaMassMap
static AaMassMap m_aaMassMap
Definition: aabase.h:114
pappso::AminoAcidChar::tyrosine
@ tyrosine
pappso::AminoAcidChar::arginine
@ arginine
pappso::AaBase::m_aaNumberOfNitrogenMap
static AaIntMap m_aaNumberOfNitrogenMap
Definition: aabase.h:118
pappso::AtomIsotopeSurvey::C
@ C
pappso::AtomIsotopeSurvey::N
@ N
pappso::AminoAcidChar::valine
@ valine
pappso::AminoAcidChar::cysteine
@ cysteine
pappso::AaBase::m_aaLetter
char m_aaLetter
Definition: aabase.h:107
pappso::AminoAcidChar::tryptophan
@ tryptophan
pappso::AtomIsotopeSurvey::O
@ O