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 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::AaModification::createInstanceMutation(), pappso::Aa::toAbsoluteString(), and pappso::Aa::toString().

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

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

393 {
394  switch(atom)
395  {
396  case AtomIsotopeSurvey::C:
397  return this->m_aaNumberOfCarbonMap.at(m_aaLetter);
398  case AtomIsotopeSurvey::H:
399  return this->m_aaNumberOfHydrogenMap.at(m_aaLetter);
400  case AtomIsotopeSurvey::N:
401  return this->m_aaNumberOfNitrogenMap.at(m_aaLetter);
402  case AtomIsotopeSurvey::O:
403  return this->m_aaNumberOfOxygenMap.at(m_aaLetter);
404  case AtomIsotopeSurvey::S:
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 m_aaLetter, m_aaNumberOfCarbonMap, m_aaNumberOfHydrogenMap, m_aaNumberOfNitrogenMap, m_aaNumberOfOxygenMap, and m_aaNumberOfSulfurMap.

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

◆ 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;
}()

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:
= [] {
AminoAcidChar::alanine, AminoAcidChar::arginine,
AminoAcidChar::cysteine, AminoAcidChar::aspartic_acid,
AminoAcidChar::glutamic_acid, AminoAcidChar::phenylalanine,
AminoAcidChar::glycine, AminoAcidChar::histidine,
AminoAcidChar::isoleucine, AminoAcidChar::lysine,
AminoAcidChar::leucine, AminoAcidChar::methionine,
AminoAcidChar::asparagine, AminoAcidChar::proline,
AminoAcidChar::glutamine, AminoAcidChar::arginine,
AminoAcidChar::serine, AminoAcidChar::threonine,
AminoAcidChar::valine, AminoAcidChar::tryptophan,
AminoAcidChar::tyrosine, AminoAcidChar::selenocysteine,
};
return ret;
}()

Definition at line 78 of file aabase.h.

Referenced by getAminoAcidCharList().


The documentation for this class was generated from the following files:
pappso::AaBase::m_aaNumberOfCarbonMap
static AaIntMap m_aaNumberOfCarbonMap
Definition: aabase.h:73
pappso::AaBase::AaIntMap
std::map< char, unsigned int > AaIntMap
Definition: aabase.h:69
pappso::AminoAcidChar::alanine
@ alanine
pappso::AaBase::m_aminoAcidCharList
static AminoAcidCharList m_aminoAcidCharList
Definition: aabase.h:78
pappso::AaBase::m_aaNumberOfHydrogenMap
static AaIntMap m_aaNumberOfHydrogenMap
Definition: aabase.h:75
pappso::AaBase::m_aaNumberOfOxygenMap
static AaIntMap m_aaNumberOfOxygenMap
Definition: aabase.h:77
pappso::AaBase::m_aaNumberOfSulfurMap
static AaIntMap m_aaNumberOfSulfurMap
Definition: aabase.h:74
pappso::AaBase::AminoAcidCharList
std::vector< AminoAcidChar > AminoAcidCharList
Definition: aabase.h:70
pappso::AaBase::m_aaMassMap
static AaMassMap m_aaMassMap
Definition: aabase.h:72
pappso::AaBase::m_aaNumberOfNitrogenMap
static AaIntMap m_aaNumberOfNitrogenMap
Definition: aabase.h:76
pappso::AaBase::m_aaLetter
char m_aaLetter
Definition: aabase.h:65