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 42 of file aabase.h.

Member Typedef Documentation

◆ AaIntMap

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

Definition at line 69 of file aabase.h.

◆ AaMassMap

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

Definition at line 68 of file aabase.h.

◆ AminoAcidCharList

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

Definition at line 70 of file aabase.h.

Constructor & Destructor Documentation

◆ AaBase() [1/3]

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

Definition at line 42 of file aabase.cpp.

42  : m_aaLetter(aa_letter)
43 {
44  /*
45  if (AaBase::_aa_mass_map.empty()) {
46  AaBase::static_builder();
47  }
48  */
49  if(m_aaMassMap.find(aa_letter) == m_aaMassMap.end())
50  {
51  throw ExceptionNotFound(
52  QObject::tr("amino acid %1 not found").arg(aa_letter));
53  }
54 }
static AaMassMap m_aaMassMap
Definition: aabase.h:72
char m_aaLetter
Definition: aabase.h:65

References m_aaMassMap.

◆ AaBase() [2/3]

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

Definition at line 56 of file aabase.cpp.

56  : m_aaLetter((char)aa_char)
57 {
58 }

◆ AaBase() [3/3]

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

Definition at line 61 of file aabase.cpp.

61  : m_aaLetter(aa.m_aaLetter)
62 {
63 }

◆ ~AaBase()

pappso::AaBase::~AaBase ( )
protectedvirtual

Definition at line 65 of file aabase.cpp.

66 {
67  // TODO Auto-generated destructor stub
68 }

Member Function Documentation

◆ getAaMass()

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

Definition at line 380 of file aabase.cpp.

381 {
382  return m_aaMassMap.at(aa_letter);
383 }

References m_aaMassMap.

◆ getAminoAcidCharList()

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

Definition at line 440 of file aabase.cpp.

441 {
442  return m_aminoAcidCharList;
443 }
static AminoAcidCharList m_aminoAcidCharList
Definition: aabase.h:78

References m_aminoAcidCharList.

◆ getLetter()

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

Definition at line 434 of file aabase.cpp.

435 {
436  return m_aaLetter;
437 }

References m_aaLetter.

Referenced by pappso::AaModification::createInstanceMutation(), pappso::Aa::toAbsoluteString(), and pappso::Aa::toString().

◆ getMass()

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

Reimplemented in pappso::Aa.

Definition at line 387 of file aabase.cpp.

388 {
389  return m_aaMassMap.at(m_aaLetter);
390 }

References m_aaLetter, and m_aaMassMap.

Referenced by pappso::Aa::getMass().

◆ 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 394 of file aabase.cpp.

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

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

Referenced by pappso::Aa::getNumberOfAtom().

◆ 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 427 of file aabase.cpp.

428 {
429  return 0;
430 }

◆ replaceLeucineIsoleucine()

void pappso::AaBase::replaceLeucineIsoleucine ( )
virtual

Definition at line 419 of file aabase.cpp.

420 {
421  if(m_aaLetter == 'L')
422  m_aaLetter = 'I';
423 }

References m_aaLetter.

Member Data Documentation

◆ m_aaLetter

char pappso::AaBase::m_aaLetter
protected

◆ m_aaMassMap

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

Definition at line 72 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;
}()
std::map< char, unsigned int > AaIntMap
Definition: aabase.h:69

Definition at line 73 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 75 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 76 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 77 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 74 of file aabase.h.

Referenced by getNumberOfAtom().

◆ m_aminoAcidCharList

AaBase::AminoAcidCharList pappso::AaBase::m_aminoAcidCharList
staticprivate
Initial value:
= [] {
};
return ret;
}()
std::vector< AminoAcidChar > AminoAcidCharList
Definition: aabase.h:70

Definition at line 78 of file aabase.h.

Referenced by getAminoAcidCharList().


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