libpappsomspp
Library for mass spectrometry
aabase.h
Go to the documentation of this file.
1/**
2 * \file pappsomspp/amino_acid/aabase.h
3 * \date 7/3/2015
4 * \author Olivier Langella
5 * \brief private amino acid model
6 */
7
8/*******************************************************************************
9 * Copyright (c) 2015 Olivier Langella <Olivier.Langella@moulon.inra.fr>.
10 *
11 * This file is part of the PAPPSOms++ library.
12 *
13 * PAPPSOms++ is free software: you can redistribute it and/or modify
14 * it under the terms of the GNU General Public License as published by
15 * the Free Software Foundation, either version 3 of the License, or
16 * (at your option) any later version.
17 *
18 * PAPPSOms++ is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU General Public License for more details.
22 *
23 * You should have received a copy of the GNU General Public License
24 * along with PAPPSOms++. If not, see <http://www.gnu.org/licenses/>.
25 *
26 * Contributors:
27 * Olivier Langella <Olivier.Langella@moulon.inra.fr> - initial API and
28 *implementation
29 ******************************************************************************/
30
31
32#pragma once
33
34#include <map>
35
36#include "../types.h"
37#include "atomnumberinterface.h"
38
39namespace pappso
40{
41
43{
44
45 public:
46 virtual pappso_double getMass() const;
47 virtual const char &getLetter() const;
48
49 virtual void replaceLeucineIsoleucine();
50
51 static const std::vector<AminoAcidChar> &getAminoAcidCharList();
52
53
54 protected:
55 AaBase(char aa_letter);
56 AaBase(AminoAcidChar aa_char);
57 AaBase(const AaBase &aabase);
58 virtual ~AaBase();
59
60 virtual int getNumberOfAtom(AtomIsotopeSurvey atom) const override;
61 int getNumberOfIsotope(Isotope isotope) const override;
62 static pappso_double getAaMass(char aa_letter);
63
64 protected:
66
67 private:
68 using AaMassMap = std::map<char, pappso_double>;
69 using AaIntMap = std::map<char, unsigned int>;
70 using AminoAcidCharList = std::vector<AminoAcidChar>;
71
79};
80
81} /* namespace pappso */
AaBase(char aa_letter)
Definition: aabase.cpp:42
std::vector< AminoAcidChar > AminoAcidCharList
Definition: aabase.h:70
static AaMassMap m_aaMassMap
Definition: aabase.h:72
std::map< char, unsigned int > AaIntMap
Definition: aabase.h:69
static AaIntMap m_aaNumberOfSulfurMap
Definition: aabase.h:74
static AaIntMap m_aaNumberOfCarbonMap
Definition: aabase.h:73
static AaIntMap m_aaNumberOfOxygenMap
Definition: aabase.h:77
virtual pappso_double getMass() const
Definition: aabase.cpp:387
char m_aaLetter
Definition: aabase.h:65
static const std::vector< AminoAcidChar > & getAminoAcidCharList()
Definition: aabase.cpp:440
static pappso_double getAaMass(char aa_letter)
Definition: aabase.cpp:380
virtual void replaceLeucineIsoleucine()
Definition: aabase.cpp:419
std::map< char, pappso_double > AaMassMap
Definition: aabase.h:68
virtual const char & getLetter() const
Definition: aabase.cpp:434
virtual ~AaBase()
Definition: aabase.cpp:65
static AminoAcidCharList m_aminoAcidCharList
Definition: aabase.h:78
static AaIntMap m_aaNumberOfNitrogenMap
Definition: aabase.h:76
static AaIntMap m_aaNumberOfHydrogenMap
Definition: aabase.h:75
virtual int getNumberOfAtom(AtomIsotopeSurvey atom) const override
get the number of atom C, O, N, H in the molecule
Definition: aabase.cpp:394
int getNumberOfIsotope(Isotope isotope) const override
get the number of isotopes C13, H2, O17, O18, N15, S33, S34, S36 in the molecule
Definition: aabase.cpp:427
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
Definition: aa.cpp:39
AminoAcidChar
Definition: types.h:134
AtomIsotopeSurvey
Definition: types.h:77
double pappso_double
A type definition for doubles.
Definition: types.h:49
Isotope
Definition: types.h:92