Avoid multiple defs of translators by only declaring in header. Now const, so must...
authorDariusz Murakowski <murakdar@mit.edu>
Fri, 24 Apr 2015 02:16:25 +0000 (22:16 -0400)
committerDariusz Murakowski <murakdar@mit.edu>
Fri, 24 Apr 2015 02:16:25 +0000 (22:16 -0400)
Makefile
ham_ss.cpp
pop_ss.cpp
seqTools.cpp
seqTools.h
ss.cpp

index 98b38b5..5f7162c 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -5,12 +5,12 @@ EXECNAME_WF = wf
 SRCS_MC = mc.cpp hamiltonian.cpp population.cpp virus.cpp
 EXECNAME_MC = mc
 
-SRCS_SS = ss.cpp ham_ss.cpp pop_ss.cpp reaction.cpp
+SRCS_SS = ss.cpp ham_ss.cpp pop_ss.cpp reaction.cpp seqTools.cpp
 EXECNAME_SS = ss
 
 
 CXX = c++
-CFLAGS = $(DBGFLAG) -Wall -Wextra -pedantic -Wno-unused-parameter
+CFLAGS = -std=c++0x $(DBGFLAG) -Wall -Wextra -pedantic -Wno-unused-parameter
 INCLUDEDIR = # -I/usr/local/pkg/gsl/gsl-1.15/include
 # = `gsl-config --cflags`
 LIBDIR = # -L/usr/local/pkg/gsl/gsl-1.15/lib
index e988411..bcac30d 100644 (file)
@@ -7,6 +7,7 @@
 #include <vector>
 
 #include "ham_ss.h"
+#include "seqTools.h"
 
 
 //Constructor for loading couplings from John Barton's Ising Inversion code
index 5163e27..05ff5e7 100644 (file)
@@ -8,6 +8,7 @@
 #include <cmath>
 
 #include "pop_ss.h"
+#include "seqTools.h"
 
 
 //Constuct a virus object of wildtype
index b3d8a60..d9d58fe 100644 (file)
@@ -6,6 +6,96 @@
 
 #include "seqTools.h"
 
+const codon2aa_map codon2aa = {
+    {cod_TTT, aa_F}, {cod_TTC, aa_F}, {cod_TTA, aa_L}, {cod_TTG, aa_L},
+    {cod_TCT, aa_S}, {cod_TCC, aa_S}, {cod_TCA, aa_S}, {cod_TCG, aa_S},
+    {cod_TAT, aa_Y}, {cod_TAC, aa_Y}, {cod_TAA, aa_star}, {cod_TAG, aa_star},
+    {cod_TGT, aa_C}, {cod_TGC, aa_C}, {cod_TGA, aa_star}, {cod_TGG, aa_W},
+    {cod_CTT, aa_L}, {cod_CTC, aa_L}, {cod_CTA, aa_L}, {cod_CTG, aa_L},
+    {cod_CCT, aa_P}, {cod_CCC, aa_P}, {cod_CCA, aa_P}, {cod_CCG, aa_P},
+    {cod_CAT, aa_H}, {cod_CAC, aa_H}, {cod_CAA, aa_Q}, {cod_CAG, aa_Q},
+    {cod_CGT, aa_R}, {cod_CGC, aa_R}, {cod_CGA, aa_R}, {cod_CGG, aa_R},
+    {cod_ATT, aa_I}, {cod_ATC, aa_I}, {cod_ATA, aa_I}, {cod_ATG, aa_M},
+    {cod_ACT, aa_T}, {cod_ACC, aa_T}, {cod_ACA, aa_T}, {cod_ACG, aa_T},
+    {cod_AAT, aa_N}, {cod_AAC, aa_N}, {cod_AAA, aa_K}, {cod_AAG, aa_K},
+    {cod_AGT, aa_S}, {cod_AGC, aa_S}, {cod_AGA, aa_R}, {cod_AGG, aa_R},
+    {cod_GTT, aa_V}, {cod_GTC, aa_V}, {cod_GTA, aa_V}, {cod_GTG, aa_V},
+    {cod_GCT, aa_A}, {cod_GCC, aa_A}, {cod_GCA, aa_A}, {cod_GCG, aa_A},
+    {cod_GAT, aa_D}, {cod_GAC, aa_D}, {cod_GAA, aa_E}, {cod_GAG, aa_E},
+    {cod_GGT, aa_G}, {cod_GGC, aa_G}, {cod_GGA, aa_G}, {cod_GGG, aa_G},
+};
+
+const str2int_map aa2int = {
+    {'A', 1},  {'R', 2},  {'N', 3},  {'D', 4},  {'C', 5},
+    {'Q', 6},  {'E', 7},  {'G', 8},  {'H', 9},  {'I', 10},
+    {'L', 11}, {'K', 12}, {'M', 13}, {'F', 14}, {'P', 15}, 
+    {'S', 16}, {'T', 17}, {'W', 18}, {'Y', 19}, {'V', 20}, 
+    {'B', 21}, {'Z', 22}, {'X', 23}, {'*', 24}, {'-', 25}, {'?', 0}
+};
+
+const int2str_map int2aa = {
+    { 1, 'A'}, { 2, 'R'}, { 3, 'N'}, { 4, 'D'}, { 5, 'C'},
+    { 6, 'Q'}, { 7, 'E'}, { 8, 'G'}, { 9, 'H'}, {10, 'I'},
+    {11, 'L'}, {12, 'K'}, {13, 'M'}, {14, 'F'}, {15, 'P'},
+    {16, 'S'}, {17, 'T'}, {18, 'W'}, {19, 'Y'}, {20, 'V'},
+    {21, 'B'}, {22, 'Z'}, {23, 'X'}, {24, '*'}, {25, '-'}, {0, '?'}
+};
+
+const aa2str_map aa2str = {
+    {aa_A,'A'}, {aa_R,'R'}, {aa_N,'N'}, {aa_D,'D'}, {aa_C,'C'},
+    {aa_Q,'Q'}, {aa_E,'E'}, {aa_G,'G'}, {aa_H,'H'}, {aa_I,'I'},
+    {aa_L,'L'}, {aa_K,'K'}, {aa_M,'M'}, {aa_F,'F'}, {aa_P,'P'},
+    {aa_S,'S'}, {aa_T,'T'}, {aa_W,'W'}, {aa_Y,'Y'}, {aa_V,'V'},
+    {aa_B,'B'}, {aa_Z,'Z'}, {aa_X,'X'}, {aa_star,'*'}, {aa_gap,'-'}, {aa_unknown,'?'}
+};
+
+const str2aa_map str2aa = {
+    {'A',aa_A}, {'R',aa_R}, {'N',aa_N}, {'D',aa_D}, {'C',aa_C},
+    {'Q',aa_Q}, {'E',aa_E}, {'G',aa_G}, {'H',aa_H}, {'I',aa_I},
+    {'L',aa_L}, {'K',aa_K}, {'M',aa_M}, {'F',aa_F}, {'P',aa_P},
+    {'S',aa_S}, {'T',aa_T}, {'W',aa_W}, {'Y',aa_Y}, {'V',aa_V},
+    {'B',aa_B}, {'Z',aa_Z}, {'X',aa_X}, {'*',aa_star}, {'-',aa_gap}, {'?',aa_unknown}
+};
+
+const codon2str_map codon2str = {
+    {cod_TTT, "TTT"}, {cod_TTC, "TTC"}, {cod_TTA, "TTA"}, {cod_TTG, "TTG"},
+    {cod_TCT, "TCT"}, {cod_TCC, "TCC"}, {cod_TCA, "TCA"}, {cod_TCG, "TCG"},
+    {cod_TAT, "TAT"}, {cod_TAC, "TAC"}, {cod_TAA, "TAA"}, {cod_TAG, "TAG"},
+    {cod_TGT, "TGT"}, {cod_TGC, "TGC"}, {cod_TGA, "TGA"}, {cod_TGG, "TGG"},
+    {cod_CTT, "CTT"}, {cod_CTC, "CTC"}, {cod_CTA, "CTA"}, {cod_CTG, "CTG"},
+    {cod_CCT, "CCT"}, {cod_CCC, "CCC"}, {cod_CCA, "CCA"}, {cod_CCG, "CCG"},
+    {cod_CAT, "CAT"}, {cod_CAC, "CAC"}, {cod_CAA, "CAA"}, {cod_CAG, "CAG"},
+    {cod_CGT, "CGT"}, {cod_CGC, "CGC"}, {cod_CGA, "CGA"}, {cod_CGG, "CGG"},
+    {cod_ATT, "ATT"}, {cod_ATC, "ATC"}, {cod_ATA, "ATA"}, {cod_ATG, "ATG"},
+    {cod_ACT, "ACT"}, {cod_ACC, "ACC"}, {cod_ACA, "ACA"}, {cod_ACG, "ACG"},
+    {cod_AAT, "AAT"}, {cod_AAC, "AAC"}, {cod_AAA, "AAA"}, {cod_AAG, "AAG"},
+    {cod_AGT, "AGT"}, {cod_AGC, "AGC"}, {cod_AGA, "AGA"}, {cod_AGG, "AGG"},
+    {cod_GTT, "GTT"}, {cod_GTC, "GTC"}, {cod_GTA, "GTA"}, {cod_GTG, "GTG"},
+    {cod_GCT, "GCT"}, {cod_GCC, "GCC"}, {cod_GCA, "GCA"}, {cod_GCG, "GCG"},
+    {cod_GAT, "GAT"}, {cod_GAC, "GAC"}, {cod_GAA, "GAA"}, {cod_GAG, "GAG"},
+    {cod_GGT, "GGT"}, {cod_GGC, "GGC"}, {cod_GGA, "GGA"}, {cod_GGG, "GGG"},
+};
+
+const str2codon_map str2codon = {
+    {"TTT", cod_TTT}, {"TTC", cod_TTC}, {"TTA", cod_TTA}, {"TTG", cod_TTG},
+    {"TCT", cod_TCT}, {"TCC", cod_TCC}, {"TCA", cod_TCA}, {"TCG", cod_TCG},
+    {"TAT", cod_TAT}, {"TAC", cod_TAC}, {"TAA", cod_TAA}, {"TAG", cod_TAG},
+    {"TGT", cod_TGT}, {"TGC", cod_TGC}, {"TGA", cod_TGA}, {"TGG", cod_TGG},
+    {"CTT", cod_CTT}, {"CTC", cod_CTC}, {"CTA", cod_CTA}, {"CTG", cod_CTG},
+    {"CCT", cod_CCT}, {"CCC", cod_CCC}, {"CCA", cod_CCA}, {"CCG", cod_CCG},
+    {"CAT", cod_CAT}, {"CAC", cod_CAC}, {"CAA", cod_CAA}, {"CAG", cod_CAG},
+    {"CGT", cod_CGT}, {"CGC", cod_CGC}, {"CGA", cod_CGA}, {"CGG", cod_CGG},
+    {"ATT", cod_ATT}, {"ATC", cod_ATC}, {"ATA", cod_ATA}, {"ATG", cod_ATG},
+    {"ACT", cod_ACT}, {"ACC", cod_ACC}, {"ACA", cod_ACA}, {"ACG", cod_ACG},
+    {"AAT", cod_AAT}, {"AAC", cod_AAC}, {"AAA", cod_AAA}, {"AAG", cod_AAG},
+    {"AGT", cod_AGT}, {"AGC", cod_AGC}, {"AGA", cod_AGA}, {"AGG", cod_AGG},
+    {"GTT", cod_GTT}, {"GTC", cod_GTC}, {"GTA", cod_GTA}, {"GTG", cod_GTG},
+    {"GCT", cod_GCT}, {"GCC", cod_GCC}, {"GCA", cod_GCA}, {"GCG", cod_GCG},
+    {"GAT", cod_GAT}, {"GAC", cod_GAC}, {"GAA", cod_GAA}, {"GAG", cod_GAG},
+    {"GGT", cod_GGT}, {"GGC", cod_GGC}, {"GGA", cod_GGA}, {"GGG", cod_GGG},
+};
+
+
 
 // Load each line of a *-seq2state.dat file into a vector of characters.
 
@@ -33,6 +123,7 @@ void getSeq2State(FILE *input, CharVector &p)
 }
 
 
+#if 0
 int main(int argc, char *argv[])
 {
     FILE *f = fopen(argv[1],"r");
@@ -93,6 +184,31 @@ int main(int argc, char *argv[])
     std::cout << '\n';
 
 
+    std::string nt_seq("GCTTAT");
+
+    std::vector<codon> codon_seq;  codon_seq.reserve(nt_seq.size()/3);
+
+    for (unsigned i=0; i<nt_seq.length(); i+=3) {
+        codon_seq.push_back(str2codon[nt_seq.substr(i,3)]);
+    }
+
+    for(unsigned i=0; i<codon_seq.size(); i++) {
+        std::cout << codon_seq[i] << ' ';
+    }
+    std::cout << '\n';
+
+    std::vector<aa> aa_seq;  aa_seq.reserve(nt_seq.size()/3);
+
+    for (unsigned i=0; i<nt_seq.length(); i+=3) {
+        aa_seq.push_back(codon2aa[str2codon[nt_seq.substr(i,3)]]);
+    }
+
+    for(unsigned i=0; i<aa_seq.size(); i++) {
+        std::cout << aa2str[aa_seq[i]] << ' ';
+    }
+    std::cout << '\n';
+
+
 
     /*
     std::cout << x2y<int,float>(5) << std::endl;
@@ -116,6 +232,7 @@ int main(int argc, char *argv[])
 
     return 0;
 }
+#endif
 
 
 /*
index a3b16a8..44778aa 100644 (file)
@@ -45,94 +45,19 @@ namespace std {
     };
 }
 
-codon2aa_map codon2aa {
-    {cod_TTT, aa_F}, {cod_TTC, aa_F}, {cod_TTA, aa_L}, {cod_TTG, aa_L},
-    {cod_TCT, aa_S}, {cod_TCC, aa_S}, {cod_TCA, aa_S}, {cod_TCG, aa_S},
-    {cod_TAT, aa_Y}, {cod_TAC, aa_Y}, {cod_TAA, aa_star}, {cod_TAG, aa_star},
-    {cod_TGT, aa_C}, {cod_TGC, aa_C}, {cod_TGA, aa_star}, {cod_TGG, aa_W},
-    {cod_CTT, aa_L}, {cod_CTC, aa_L}, {cod_CTA, aa_L}, {cod_CTG, aa_L},
-    {cod_CCT, aa_P}, {cod_CCC, aa_P}, {cod_CCA, aa_P}, {cod_CCG, aa_P},
-    {cod_CAT, aa_H}, {cod_CAC, aa_H}, {cod_CAA, aa_Q}, {cod_CAG, aa_Q},
-    {cod_CGT, aa_R}, {cod_CGC, aa_R}, {cod_CGA, aa_R}, {cod_CGG, aa_R},
-    {cod_ATT, aa_I}, {cod_ATC, aa_I}, {cod_ATA, aa_I}, {cod_ATG, aa_M},
-    {cod_ACT, aa_T}, {cod_ACC, aa_T}, {cod_ACA, aa_T}, {cod_ACG, aa_T},
-    {cod_AAT, aa_N}, {cod_AAC, aa_N}, {cod_AAA, aa_K}, {cod_AAG, aa_K},
-    {cod_AGT, aa_S}, {cod_AGC, aa_S}, {cod_AGA, aa_R}, {cod_AGG, aa_R},
-    {cod_GTT, aa_V}, {cod_GTC, aa_V}, {cod_GTA, aa_V}, {cod_GTG, aa_V},
-    {cod_GCT, aa_A}, {cod_GCC, aa_A}, {cod_GCA, aa_A}, {cod_GCG, aa_A},
-    {cod_GAT, aa_D}, {cod_GAC, aa_D}, {cod_GAA, aa_E}, {cod_GAG, aa_E},
-    {cod_GGT, aa_G}, {cod_GGC, aa_G}, {cod_GGA, aa_G}, {cod_GGG, aa_G},
-};
-
-str2int_map aa2int {
-    {'A', 1},  {'R', 2},  {'N', 3},  {'D', 4},  {'C', 5},
-    {'Q', 6},  {'E', 7},  {'G', 8},  {'H', 9},  {'I', 10},
-    {'L', 11}, {'K', 12}, {'M', 13}, {'F', 14}, {'P', 15}, 
-    {'S', 16}, {'T', 17}, {'W', 18}, {'Y', 19}, {'V', 20}, 
-    {'B', 21}, {'Z', 22}, {'X', 23}, {'*', 24}, {'-', 25}, {'?', 0}
-};
-
-int2str_map int2aa = {
-    { 1, 'A'}, { 2, 'R'}, { 3, 'N'}, { 4, 'D'}, { 5, 'C'},
-    { 6, 'Q'}, { 7, 'E'}, { 8, 'G'}, { 9, 'H'}, {10, 'I'},
-    {11, 'L'}, {12, 'K'}, {13, 'M'}, {14, 'F'}, {15, 'P'},
-    {16, 'S'}, {17, 'T'}, {18, 'W'}, {19, 'Y'}, {20, 'V'},
-    {21, 'B'}, {22, 'Z'}, {23, 'X'}, {24, '*'}, {25, '-'}, {0, '?'}
-};
-
-aa2str_map aa2str = {
-    {aa_A,'A'}, {aa_R,'R'}, {aa_N,'N'}, {aa_D,'D'}, {aa_C,'C'},
-    {aa_Q,'Q'}, {aa_E,'E'}, {aa_G,'G'}, {aa_H,'H'}, {aa_I,'I'},
-    {aa_L,'L'}, {aa_K,'K'}, {aa_M,'M'}, {aa_F,'F'}, {aa_P,'P'},
-    {aa_S,'S'}, {aa_T,'T'}, {aa_W,'W'}, {aa_Y,'Y'}, {aa_V,'V'},
-    {aa_B,'B'}, {aa_Z,'Z'}, {aa_X,'X'}, {aa_star,'*'}, {aa_gap,'-'}, {aa_unknown,'?'}
-};
-
-str2aa_map str2aa = {
-    {'A',aa_A}, {'R',aa_R}, {'N',aa_N}, {'D',aa_D}, {'C',aa_C},
-    {'Q',aa_Q}, {'E',aa_E}, {'G',aa_G}, {'H',aa_H}, {'I',aa_I},
-    {'L',aa_L}, {'K',aa_K}, {'M',aa_M}, {'F',aa_F}, {'P',aa_P},
-    {'S',aa_S}, {'T',aa_T}, {'W',aa_W}, {'Y',aa_Y}, {'V',aa_V},
-    {'B',aa_B}, {'Z',aa_Z}, {'X',aa_X}, {'*',aa_star}, {'-',aa_gap}, {'?',aa_unknown}
-};
-
-codon2str_map codon2str = {
-    {cod_TTT, "TTT"}, {cod_TTC, "TTC"}, {cod_TTA, "TTA"}, {cod_TTG, "TTG"},
-    {cod_TCT, "TCT"}, {cod_TCC, "TCC"}, {cod_TCA, "TCA"}, {cod_TCG, "TCG"},
-    {cod_TAT, "TAT"}, {cod_TAC, "TAC"}, {cod_TAA, "TAA"}, {cod_TAG, "TAG"},
-    {cod_TGT, "TGT"}, {cod_TGC, "TGC"}, {cod_TGA, "TGA"}, {cod_TGG, "TGG"},
-    {cod_CTT, "CTT"}, {cod_CTC, "CTC"}, {cod_CTA, "CTA"}, {cod_CTG, "CTG"},
-    {cod_CCT, "CCT"}, {cod_CCC, "CCC"}, {cod_CCA, "CCA"}, {cod_CCG, "CCG"},
-    {cod_CAT, "CAT"}, {cod_CAC, "CAC"}, {cod_CAA, "CAA"}, {cod_CAG, "CAG"},
-    {cod_CGT, "CGT"}, {cod_CGC, "CGC"}, {cod_CGA, "CGA"}, {cod_CGG, "CGG"},
-    {cod_ATT, "ATT"}, {cod_ATC, "ATC"}, {cod_ATA, "ATA"}, {cod_ATG, "ATG"},
-    {cod_ACT, "ACT"}, {cod_ACC, "ACC"}, {cod_ACA, "ACA"}, {cod_ACG, "ACG"},
-    {cod_AAT, "AAT"}, {cod_AAC, "AAC"}, {cod_AAA, "AAA"}, {cod_AAG, "AAG"},
-    {cod_AGT, "AGT"}, {cod_AGC, "AGC"}, {cod_AGA, "AGA"}, {cod_AGG, "AGG"},
-    {cod_GTT, "GTT"}, {cod_GTC, "GTC"}, {cod_GTA, "GTA"}, {cod_GTG, "GTG"},
-    {cod_GCT, "GCT"}, {cod_GCC, "GCC"}, {cod_GCA, "GCA"}, {cod_GCG, "GCG"},
-    {cod_GAT, "GAT"}, {cod_GAC, "GAC"}, {cod_GAA, "GAA"}, {cod_GAG, "GAG"},
-    {cod_GGT, "GGT"}, {cod_GGC, "GGC"}, {cod_GGA, "GGA"}, {cod_GGG, "GGG"},
-};
-
-str2codon_map str2codon = {
-    {"TTT", cod_TTT}, {"TTC", cod_TTC}, {"TTA", cod_TTA}, {"TTG", cod_TTG},
-    {"TCT", cod_TCT}, {"TCC", cod_TCC}, {"TCA", cod_TCA}, {"TCG", cod_TCG},
-    {"TAT", cod_TAT}, {"TAC", cod_TAC}, {"TAA", cod_TAA}, {"TAG", cod_TAG},
-    {"TGT", cod_TGT}, {"TGC", cod_TGC}, {"TGA", cod_TGA}, {"TGG", cod_TGG},
-    {"CTT", cod_CTT}, {"CTC", cod_CTC}, {"CTA", cod_CTA}, {"CTG", cod_CTG},
-    {"CCT", cod_CCT}, {"CCC", cod_CCC}, {"CCA", cod_CCA}, {"CCG", cod_CCG},
-    {"CAT", cod_CAT}, {"CAC", cod_CAC}, {"CAA", cod_CAA}, {"CAG", cod_CAG},
-    {"CGT", cod_CGT}, {"CGC", cod_CGC}, {"CGA", cod_CGA}, {"CGG", cod_CGG},
-    {"ATT", cod_ATT}, {"ATC", cod_ATC}, {"ATA", cod_ATA}, {"ATG", cod_ATG},
-    {"ACT", cod_ACT}, {"ACC", cod_ACC}, {"ACA", cod_ACA}, {"ACG", cod_ACG},
-    {"AAT", cod_AAT}, {"AAC", cod_AAC}, {"AAA", cod_AAA}, {"AAG", cod_AAG},
-    {"AGT", cod_AGT}, {"AGC", cod_AGC}, {"AGA", cod_AGA}, {"AGG", cod_AGG},
-    {"GTT", cod_GTT}, {"GTC", cod_GTC}, {"GTA", cod_GTA}, {"GTG", cod_GTG},
-    {"GCT", cod_GCT}, {"GCC", cod_GCC}, {"GCA", cod_GCA}, {"GCG", cod_GCG},
-    {"GAT", cod_GAT}, {"GAC", cod_GAC}, {"GAA", cod_GAA}, {"GAG", cod_GAG},
-    {"GGT", cod_GGT}, {"GGC", cod_GGC}, {"GGA", cod_GGA}, {"GGG", cod_GGG},
-};
+// defined in seqTools.cpp
+// NOTE: since hash table is const, must get values via .at() method, not operator[] !
+// At the expense of verbosity, this has the advantage of throwing the following exception if an improper key is passed at runtime:
+//   terminate called after throwing an instance of 'std::out_of_range'
+//     what():  _Map_base::at
+//   Aborted
+extern const codon2aa_map codon2aa;
+extern const str2int_map aa2int;
+extern const int2str_map int2aa;
+extern const aa2str_map aa2str;
+extern const str2aa_map str2aa;
+extern const codon2str_map codon2str;
+extern const str2codon_map str2codon;
 
 /*
 template <typename from, typename to>
@@ -149,8 +74,8 @@ to x2y(from x)
     }
 }
 */
-template <typename from, typename to>
-to x2y(from x) {return static_cast<to>(x);}
+//template <typename from, typename to>
+//to x2y(from x) {return static_cast<to>(x);}
 
 
 void getSeq2State(FILE *input, CharVector &p);
diff --git a/ss.cpp b/ss.cpp
index 8131cb7..94dc750 100644 (file)
--- a/ss.cpp
+++ b/ss.cpp
@@ -14,6 +14,7 @@
 //#include "virus.h"
 #include "ss.h"
 #include "reaction.h"
+#include "seqTools.h"
 
 gsl_rng *rnd;   //pointer to random number generator state
 
@@ -496,6 +497,7 @@ int main(int argc, char *argv[]) {
         }
         std::cout << '\n';
     }
+    std::cout << int2aa.at(codon2aa.at(str2codon.at("TTT"))) << '\n';
     return 0;
 
     RunParameters_SS r;