1 #ifndef alpha_h
2 #define alpha_h
3 
4 #include <limits.h>
5 #include <string>
6 
7 using namespace std;
8 
9 const unsigned INVALID_LETTER = 0;
10 const unsigned char INVALID_CHAR = '?';
11 
12 extern unsigned g_CharToLetterAmino[];
13 extern unsigned g_CharToLetterAminoStop[];
14 extern unsigned char g_LetterToCharAmino[];
15 extern unsigned g_CharToLetterNucleo[];
16 extern unsigned char g_LetterToCharNucleo[];
17 extern unsigned g_CodonWordToAminoLetter[];
18 extern char g_CodonWordToAminoChar[];
19 extern unsigned char g_CharToCompChar[];
20 extern unsigned g_CharToCompLetter[];
21 extern bool g_IsAminoChar[];
22 extern bool g_IsNucleoChar[];
23 extern bool g_IsACGTU[];
24 extern float g_AminoFreqs[];
25 
26 extern unsigned g_CharToLetterRed[];
27 extern unsigned char g_LetterToCharRed[];
28 extern unsigned g_RedAlphaSize;
29 
30 void LogRedAlphaRed();
31 void ReadRedAlphaFromFile(const string &FileName);
32 unsigned char GetAminoCharFrom3NucChars(unsigned char c1, unsigned char c2,
33   unsigned char c3);
34 
AminoLetterIsStartCodon(unsigned char Letter)35 static inline bool AminoLetterIsStartCodon(unsigned char Letter)
36 	{
37 	return Letter == 10;
38 	}
39 
AminoLetterIsStopCodon(unsigned char Letter)40 static inline bool AminoLetterIsStopCodon(unsigned char Letter)
41 	{
42 	return Letter == 20;
43 	}
44 
45 const char *WordToStr(unsigned Word, unsigned WordLength, bool Nucleo);
46 const char *WordToStrNucleo(unsigned Word, unsigned WordLength);
47 const char *WordToStrAmino(unsigned Word, unsigned WordLength);
48 const char *WordToStrAmino2(unsigned Word, unsigned WordLength, char *Str);
49 
50 #endif // alpha_h
51