Next version of JABA
[jabaws.git] / binaries / src / muscle / alpha.h
1 #ifndef alpha_h\r
2 #define alpha_h\r
3 \r
4 bool StrHasAmino(const char *Str);\r
5 bool StrHasGap(const char *Str);\r
6 void ClearInvalidLetterWarning();\r
7 void InvalidLetterWarning(char c, char w);\r
8 void ReportInvalidLetters();\r
9 \r
10 extern unsigned g_CharToLetter[];\r
11 extern unsigned g_CharToLetterEx[];\r
12 \r
13 extern char g_LetterToChar[];\r
14 extern char g_LetterExToChar[];\r
15 \r
16 extern char g_UnalignChar[];\r
17 extern char g_AlignChar[];\r
18 \r
19 extern bool g_IsWildcardChar[];\r
20 extern bool g_IsResidueChar[];\r
21 \r
22 #define CharToLetter(c)         (g_CharToLetter[(unsigned char) (c)])\r
23 #define CharToLetterEx(c)       (g_CharToLetterEx[(unsigned char) (c)])\r
24 \r
25 #define LetterToChar(u)         (g_LetterToChar[u])\r
26 #define LetterExToChar(u)       (g_LetterExToChar[u])\r
27 \r
28 #define IsResidueChar(c)        (g_IsResidueChar[(unsigned char) (c)])\r
29 #define IsGapChar(c)            ('-' == (c) || '.' == (c))\r
30 #define IsWildcardChar(c)       (g_IsWildcardChar[(unsigned char) (c)])\r
31 \r
32 #define AlignChar(c)            (g_AlignChar[(unsigned char) (c)])\r
33 #define UnalignChar(c)          (g_UnalignChar[(unsigned char) (c)])\r
34 \r
35 // AX=Amino alphabet with eXtensions (B, Z and X)\r
36 enum AX\r
37         {\r
38         AX_A,\r
39         AX_C,\r
40         AX_D,\r
41         AX_E,\r
42         AX_F,\r
43         AX_G,\r
44         AX_H,\r
45         AX_I,\r
46         AX_K,\r
47         AX_L,\r
48         AX_M,\r
49         AX_N,\r
50         AX_P,\r
51         AX_Q,\r
52         AX_R,\r
53         AX_S,\r
54         AX_T,\r
55         AX_V,\r
56         AX_W,\r
57         AX_Y,\r
58 \r
59         AX_X,   // Any\r
60 \r
61         AX_B,   // D or N\r
62         AX_Z,   // E or Q\r
63 \r
64         AX_GAP,\r
65         };\r
66 const unsigned AX_COUNT = AX_GAP + 1;\r
67 \r
68 // NX=Nucleotide alphabet with extensions\r
69 enum NX\r
70         {\r
71         NX_A,\r
72         NX_C,\r
73         NX_G,\r
74         NX_T,\r
75         NX_U = NX_T,\r
76 \r
77     NX_M, // AC\r
78     NX_R, // AG\r
79     NX_W, // AT\r
80     NX_S, // CG\r
81     NX_Y, // CT\r
82     NX_K, // GT\r
83     NX_V, // ACG\r
84     NX_H, // ACT\r
85     NX_D, // AGT\r
86     NX_B, // CGT\r
87     NX_X, // GATC\r
88     NX_N, // GATC\r
89         NX_GAP\r
90         };\r
91 const unsigned NX_COUNT = NX_GAP + 1;\r
92 \r
93 const unsigned MAX_ALPHA = 20;\r
94 const unsigned MAX_ALPHA_EX = AX_COUNT;\r
95 const unsigned MAX_CHAR = 256;\r
96 \r
97 extern ALPHA g_Alpha;\r
98 extern unsigned g_AlphaSize;\r
99 \r
100 void SetAlpha(ALPHA Alpha);\r
101 char GetWildcardChar();\r
102 bool IsNucleo(char c);\r
103 bool IsDNA(char c);\r
104 bool IsRNA(char c);\r
105 \r
106 #endif  // alpha_h\r