]> git.donarmstrong.com Git - mothur.git/blob - alpha.cpp
9d82f350eb7d8045d59f1005af13057a5ec1a3ac
[mothur.git] / alpha.cpp
1 // Generated by /p/py/alphac.py
2 //uchime by Robert C. Edgar http://drive5.com/uchime This code is donated to the public domain.
3 #include "alpha.h"
4
5 unsigned g_CharToLetterAminoStop[256] =
6         {
7         INVALID_LETTER, // [  0] 0x00
8         INVALID_LETTER, // [  1] 0x01
9         INVALID_LETTER, // [  2] 0x02
10         INVALID_LETTER, // [  3] 0x03
11         INVALID_LETTER, // [  4] 0x04
12         INVALID_LETTER, // [  5] 0x05
13         INVALID_LETTER, // [  6] 0x06
14         INVALID_LETTER, // [  7] 0x07
15         INVALID_LETTER, // [  8] 0x08
16         INVALID_LETTER, // [  9] 0x09
17         INVALID_LETTER, // [ 10] 0x0a
18         INVALID_LETTER, // [ 11] 0x0b
19         INVALID_LETTER, // [ 12] 0x0c
20         INVALID_LETTER, // [ 13] 0x0d
21         INVALID_LETTER, // [ 14] 0x0e
22         INVALID_LETTER, // [ 15] 0x0f
23         INVALID_LETTER, // [ 16] 0x10
24         INVALID_LETTER, // [ 17] 0x11
25         INVALID_LETTER, // [ 18] 0x12
26         INVALID_LETTER, // [ 19] 0x13
27         INVALID_LETTER, // [ 20] 0x14
28         INVALID_LETTER, // [ 21] 0x15
29         INVALID_LETTER, // [ 22] 0x16
30         INVALID_LETTER, // [ 23] 0x17
31         INVALID_LETTER, // [ 24] 0x18
32         INVALID_LETTER, // [ 25] 0x19
33         INVALID_LETTER, // [ 26] 0x1a
34         INVALID_LETTER, // [ 27] 0x1b
35         INVALID_LETTER, // [ 28] 0x1c
36         INVALID_LETTER, // [ 29] 0x1d
37         INVALID_LETTER, // [ 30] 0x1e
38         INVALID_LETTER, // [ 31] 0x1f
39         INVALID_LETTER, // [ 32] ' '
40         INVALID_LETTER, // [ 33] '!'
41         INVALID_LETTER, // [ 34] '"'
42         INVALID_LETTER, // [ 35] '#'
43         INVALID_LETTER, // [ 36] '$'
44         INVALID_LETTER, // [ 37] '%'
45         INVALID_LETTER, // [ 38] '&'
46         INVALID_LETTER, // [ 39] '''
47         INVALID_LETTER, // [ 40] '('
48         INVALID_LETTER, // [ 41] ')'
49         20 ,            // [ 42] '*' = STP
50         INVALID_LETTER, // [ 43] '+'
51         INVALID_LETTER, // [ 44] ','
52         INVALID_LETTER, // [ 45] '-'
53         INVALID_LETTER, // [ 46] '.'
54         INVALID_LETTER, // [ 47] '/'
55         INVALID_LETTER, // [ 48] '0'
56         INVALID_LETTER, // [ 49] '1'
57         INVALID_LETTER, // [ 50] '2'
58         INVALID_LETTER, // [ 51] '3'
59         INVALID_LETTER, // [ 52] '4'
60         INVALID_LETTER, // [ 53] '5'
61         INVALID_LETTER, // [ 54] '6'
62         INVALID_LETTER, // [ 55] '7'
63         INVALID_LETTER, // [ 56] '8'
64         INVALID_LETTER, // [ 57] '9'
65         INVALID_LETTER, // [ 58] ':'
66         INVALID_LETTER, // [ 59] ';'
67         INVALID_LETTER, // [ 60] '<'
68         INVALID_LETTER, // [ 61] '='
69         INVALID_LETTER, // [ 62] '>'
70         INVALID_LETTER, // [ 63] '?'
71         INVALID_LETTER, // [ 64] '@'
72         0  ,            // [ 65] 'A' = Ala
73         INVALID_LETTER, // [ 66] 'B'
74         1  ,            // [ 67] 'C' = Cys
75         2  ,            // [ 68] 'D' = Asp
76         3  ,            // [ 69] 'E' = Glu
77         4  ,            // [ 70] 'F' = Phe
78         5  ,            // [ 71] 'G' = Gly
79         6  ,            // [ 72] 'H' = His
80         7  ,            // [ 73] 'I' = Ile
81         INVALID_LETTER, // [ 74] 'J'
82         8  ,            // [ 75] 'K' = Lys
83         9  ,            // [ 76] 'L' = Leu
84         10 ,            // [ 77] 'M' = Met
85         11 ,            // [ 78] 'N' = Asn
86         INVALID_LETTER, // [ 79] 'O'
87         12 ,            // [ 80] 'P' = Pro
88         13 ,            // [ 81] 'Q' = Gln
89         14 ,            // [ 82] 'R' = Arg
90         15 ,            // [ 83] 'S' = Ser
91         16 ,            // [ 84] 'T' = Thr
92         INVALID_LETTER, // [ 85] 'U'
93         17 ,            // [ 86] 'V' = Val
94         18 ,            // [ 87] 'W' = Trp
95         INVALID_LETTER, // [ 88] 'X'
96         19 ,            // [ 89] 'Y' = Tyr
97         INVALID_LETTER, // [ 90] 'Z'
98         INVALID_LETTER, // [ 91] '['
99         INVALID_LETTER, // [ 92] '\'
100         INVALID_LETTER, // [ 93] ']'
101         INVALID_LETTER, // [ 94] '^'
102         INVALID_LETTER, // [ 95] '_'
103         INVALID_LETTER, // [ 96] '`'
104         0  ,            // [ 97] 'a' = Ala
105         INVALID_LETTER, // [ 98] 'b'
106         1  ,            // [ 99] 'c' = Cys
107         2  ,            // [100] 'd' = Asp
108         3  ,            // [101] 'e' = Glu
109         4  ,            // [102] 'f' = Phe
110         5  ,            // [103] 'g' = Gly
111         6  ,            // [104] 'h' = His
112         7  ,            // [105] 'i' = Ile
113         INVALID_LETTER, // [106] 'j'
114         8  ,            // [107] 'k' = Lys
115         9  ,            // [108] 'l' = Leu
116         10 ,            // [109] 'm' = Met
117         11 ,            // [110] 'n' = Asn
118         INVALID_LETTER, // [111] 'o'
119         12 ,            // [112] 'p' = Pro
120         13 ,            // [113] 'q' = Gln
121         14 ,            // [114] 'r' = Arg
122         15 ,            // [115] 's' = Ser
123         16 ,            // [116] 't' = Thr
124         INVALID_LETTER, // [117] 'u'
125         17 ,            // [118] 'v' = Val
126         18 ,            // [119] 'w' = Trp
127         INVALID_LETTER, // [120] 'x'
128         19 ,            // [121] 'y' = Tyr
129         INVALID_LETTER, // [122] 'z'
130         INVALID_LETTER, // [123] '{'
131         INVALID_LETTER, // [124] '|'
132         INVALID_LETTER, // [125] '}'
133         INVALID_LETTER, // [126] '~'
134         INVALID_LETTER, // [127] 0x7f
135         INVALID_LETTER, // [128] 0x80
136         INVALID_LETTER, // [129] 0x81
137         INVALID_LETTER, // [130] 0x82
138         INVALID_LETTER, // [131] 0x83
139         INVALID_LETTER, // [132] 0x84
140         INVALID_LETTER, // [133] 0x85
141         INVALID_LETTER, // [134] 0x86
142         INVALID_LETTER, // [135] 0x87
143         INVALID_LETTER, // [136] 0x88
144         INVALID_LETTER, // [137] 0x89
145         INVALID_LETTER, // [138] 0x8a
146         INVALID_LETTER, // [139] 0x8b
147         INVALID_LETTER, // [140] 0x8c
148         INVALID_LETTER, // [141] 0x8d
149         INVALID_LETTER, // [142] 0x8e
150         INVALID_LETTER, // [143] 0x8f
151         INVALID_LETTER, // [144] 0x90
152         INVALID_LETTER, // [145] 0x91
153         INVALID_LETTER, // [146] 0x92
154         INVALID_LETTER, // [147] 0x93
155         INVALID_LETTER, // [148] 0x94
156         INVALID_LETTER, // [149] 0x95
157         INVALID_LETTER, // [150] 0x96
158         INVALID_LETTER, // [151] 0x97
159         INVALID_LETTER, // [152] 0x98
160         INVALID_LETTER, // [153] 0x99
161         INVALID_LETTER, // [154] 0x9a
162         INVALID_LETTER, // [155] 0x9b
163         INVALID_LETTER, // [156] 0x9c
164         INVALID_LETTER, // [157] 0x9d
165         INVALID_LETTER, // [158] 0x9e
166         INVALID_LETTER, // [159] 0x9f
167         INVALID_LETTER, // [160] 0xa0
168         INVALID_LETTER, // [161] 0xa1
169         INVALID_LETTER, // [162] 0xa2
170         INVALID_LETTER, // [163] 0xa3
171         INVALID_LETTER, // [164] 0xa4
172         INVALID_LETTER, // [165] 0xa5
173         INVALID_LETTER, // [166] 0xa6
174         INVALID_LETTER, // [167] 0xa7
175         INVALID_LETTER, // [168] 0xa8
176         INVALID_LETTER, // [169] 0xa9
177         INVALID_LETTER, // [170] 0xaa
178         INVALID_LETTER, // [171] 0xab
179         INVALID_LETTER, // [172] 0xac
180         INVALID_LETTER, // [173] 0xad
181         INVALID_LETTER, // [174] 0xae
182         INVALID_LETTER, // [175] 0xaf
183         INVALID_LETTER, // [176] 0xb0
184         INVALID_LETTER, // [177] 0xb1
185         INVALID_LETTER, // [178] 0xb2
186         INVALID_LETTER, // [179] 0xb3
187         INVALID_LETTER, // [180] 0xb4
188         INVALID_LETTER, // [181] 0xb5
189         INVALID_LETTER, // [182] 0xb6
190         INVALID_LETTER, // [183] 0xb7
191         INVALID_LETTER, // [184] 0xb8
192         INVALID_LETTER, // [185] 0xb9
193         INVALID_LETTER, // [186] 0xba
194         INVALID_LETTER, // [187] 0xbb
195         INVALID_LETTER, // [188] 0xbc
196         INVALID_LETTER, // [189] 0xbd
197         INVALID_LETTER, // [190] 0xbe
198         INVALID_LETTER, // [191] 0xbf
199         INVALID_LETTER, // [192] 0xc0
200         INVALID_LETTER, // [193] 0xc1
201         INVALID_LETTER, // [194] 0xc2
202         INVALID_LETTER, // [195] 0xc3
203         INVALID_LETTER, // [196] 0xc4
204         INVALID_LETTER, // [197] 0xc5
205         INVALID_LETTER, // [198] 0xc6
206         INVALID_LETTER, // [199] 0xc7
207         INVALID_LETTER, // [200] 0xc8
208         INVALID_LETTER, // [201] 0xc9
209         INVALID_LETTER, // [202] 0xca
210         INVALID_LETTER, // [203] 0xcb
211         INVALID_LETTER, // [204] 0xcc
212         INVALID_LETTER, // [205] 0xcd
213         INVALID_LETTER, // [206] 0xce
214         INVALID_LETTER, // [207] 0xcf
215         INVALID_LETTER, // [208] 0xd0
216         INVALID_LETTER, // [209] 0xd1
217         INVALID_LETTER, // [210] 0xd2
218         INVALID_LETTER, // [211] 0xd3
219         INVALID_LETTER, // [212] 0xd4
220         INVALID_LETTER, // [213] 0xd5
221         INVALID_LETTER, // [214] 0xd6
222         INVALID_LETTER, // [215] 0xd7
223         INVALID_LETTER, // [216] 0xd8
224         INVALID_LETTER, // [217] 0xd9
225         INVALID_LETTER, // [218] 0xda
226         INVALID_LETTER, // [219] 0xdb
227         INVALID_LETTER, // [220] 0xdc
228         INVALID_LETTER, // [221] 0xdd
229         INVALID_LETTER, // [222] 0xde
230         INVALID_LETTER, // [223] 0xdf
231         INVALID_LETTER, // [224] 0xe0
232         INVALID_LETTER, // [225] 0xe1
233         INVALID_LETTER, // [226] 0xe2
234         INVALID_LETTER, // [227] 0xe3
235         INVALID_LETTER, // [228] 0xe4
236         INVALID_LETTER, // [229] 0xe5
237         INVALID_LETTER, // [230] 0xe6
238         INVALID_LETTER, // [231] 0xe7
239         INVALID_LETTER, // [232] 0xe8
240         INVALID_LETTER, // [233] 0xe9
241         INVALID_LETTER, // [234] 0xea
242         INVALID_LETTER, // [235] 0xeb
243         INVALID_LETTER, // [236] 0xec
244         INVALID_LETTER, // [237] 0xed
245         INVALID_LETTER, // [238] 0xee
246         INVALID_LETTER, // [239] 0xef
247         INVALID_LETTER, // [240] 0xf0
248         INVALID_LETTER, // [241] 0xf1
249         INVALID_LETTER, // [242] 0xf2
250         INVALID_LETTER, // [243] 0xf3
251         INVALID_LETTER, // [244] 0xf4
252         INVALID_LETTER, // [245] 0xf5
253         INVALID_LETTER, // [246] 0xf6
254         INVALID_LETTER, // [247] 0xf7
255         INVALID_LETTER, // [248] 0xf8
256         INVALID_LETTER, // [249] 0xf9
257         INVALID_LETTER, // [250] 0xfa
258         INVALID_LETTER, // [251] 0xfb
259         INVALID_LETTER, // [252] 0xfc
260         INVALID_LETTER, // [253] 0xfd
261         INVALID_LETTER, // [254] 0xfe
262         INVALID_LETTER, // [255] 0xff
263         };
264 unsigned g_CharToLetterAmino[256] =
265         {
266         INVALID_LETTER, // [  0] 0x00
267         INVALID_LETTER, // [  1] 0x01
268         INVALID_LETTER, // [  2] 0x02
269         INVALID_LETTER, // [  3] 0x03
270         INVALID_LETTER, // [  4] 0x04
271         INVALID_LETTER, // [  5] 0x05
272         INVALID_LETTER, // [  6] 0x06
273         INVALID_LETTER, // [  7] 0x07
274         INVALID_LETTER, // [  8] 0x08
275         INVALID_LETTER, // [  9] 0x09
276         INVALID_LETTER, // [ 10] 0x0a
277         INVALID_LETTER, // [ 11] 0x0b
278         INVALID_LETTER, // [ 12] 0x0c
279         INVALID_LETTER, // [ 13] 0x0d
280         INVALID_LETTER, // [ 14] 0x0e
281         INVALID_LETTER, // [ 15] 0x0f
282         INVALID_LETTER, // [ 16] 0x10
283         INVALID_LETTER, // [ 17] 0x11
284         INVALID_LETTER, // [ 18] 0x12
285         INVALID_LETTER, // [ 19] 0x13
286         INVALID_LETTER, // [ 20] 0x14
287         INVALID_LETTER, // [ 21] 0x15
288         INVALID_LETTER, // [ 22] 0x16
289         INVALID_LETTER, // [ 23] 0x17
290         INVALID_LETTER, // [ 24] 0x18
291         INVALID_LETTER, // [ 25] 0x19
292         INVALID_LETTER, // [ 26] 0x1a
293         INVALID_LETTER, // [ 27] 0x1b
294         INVALID_LETTER, // [ 28] 0x1c
295         INVALID_LETTER, // [ 29] 0x1d
296         INVALID_LETTER, // [ 30] 0x1e
297         INVALID_LETTER, // [ 31] 0x1f
298         INVALID_LETTER, // [ 32] ' '
299         INVALID_LETTER, // [ 33] '!'
300         INVALID_LETTER, // [ 34] '"'
301         INVALID_LETTER, // [ 35] '#'
302         INVALID_LETTER, // [ 36] '$'
303         INVALID_LETTER, // [ 37] '%'
304         INVALID_LETTER, // [ 38] '&'
305         INVALID_LETTER, // [ 39] '''
306         INVALID_LETTER, // [ 40] '('
307         INVALID_LETTER, // [ 41] ')'
308         INVALID_LETTER, // [ 42] '*'
309         INVALID_LETTER, // [ 43] '+'
310         INVALID_LETTER, // [ 44] ','
311         INVALID_LETTER, // [ 45] '-'
312         INVALID_LETTER, // [ 46] '.'
313         INVALID_LETTER, // [ 47] '/'
314         INVALID_LETTER, // [ 48] '0'
315         INVALID_LETTER, // [ 49] '1'
316         INVALID_LETTER, // [ 50] '2'
317         INVALID_LETTER, // [ 51] '3'
318         INVALID_LETTER, // [ 52] '4'
319         INVALID_LETTER, // [ 53] '5'
320         INVALID_LETTER, // [ 54] '6'
321         INVALID_LETTER, // [ 55] '7'
322         INVALID_LETTER, // [ 56] '8'
323         INVALID_LETTER, // [ 57] '9'
324         INVALID_LETTER, // [ 58] ':'
325         INVALID_LETTER, // [ 59] ';'
326         INVALID_LETTER, // [ 60] '<'
327         INVALID_LETTER, // [ 61] '='
328         INVALID_LETTER, // [ 62] '>'
329         INVALID_LETTER, // [ 63] '?'
330         INVALID_LETTER, // [ 64] '@'
331         0  ,            // [ 65] 'A' = Ala
332         INVALID_LETTER, // [ 66] 'B'
333         1  ,            // [ 67] 'C' = Cys
334         2  ,            // [ 68] 'D' = Asp
335         3  ,            // [ 69] 'E' = Glu
336         4  ,            // [ 70] 'F' = Phe
337         5  ,            // [ 71] 'G' = Gly
338         6  ,            // [ 72] 'H' = His
339         7  ,            // [ 73] 'I' = Ile
340         INVALID_LETTER, // [ 74] 'J'
341         8  ,            // [ 75] 'K' = Lys
342         9  ,            // [ 76] 'L' = Leu
343         10 ,            // [ 77] 'M' = Met
344         11 ,            // [ 78] 'N' = Asn
345         INVALID_LETTER, // [ 79] 'O'
346         12 ,            // [ 80] 'P' = Pro
347         13 ,            // [ 81] 'Q' = Gln
348         14 ,            // [ 82] 'R' = Arg
349         15 ,            // [ 83] 'S' = Ser
350         16 ,            // [ 84] 'T' = Thr
351         INVALID_LETTER, // [ 85] 'U'
352         17 ,            // [ 86] 'V' = Val
353         18 ,            // [ 87] 'W' = Trp
354         INVALID_LETTER, // [ 88] 'X'
355         19 ,            // [ 89] 'Y' = Tyr
356         INVALID_LETTER, // [ 90] 'Z'
357         INVALID_LETTER, // [ 91] '['
358         INVALID_LETTER, // [ 92] '\'
359         INVALID_LETTER, // [ 93] ']'
360         INVALID_LETTER, // [ 94] '^'
361         INVALID_LETTER, // [ 95] '_'
362         INVALID_LETTER, // [ 96] '`'
363         0  ,            // [ 97] 'a' = Ala
364         INVALID_LETTER, // [ 98] 'b'
365         1  ,            // [ 99] 'c' = Cys
366         2  ,            // [100] 'd' = Asp
367         3  ,            // [101] 'e' = Glu
368         4  ,            // [102] 'f' = Phe
369         5  ,            // [103] 'g' = Gly
370         6  ,            // [104] 'h' = His
371         7  ,            // [105] 'i' = Ile
372         INVALID_LETTER, // [106] 'j'
373         8  ,            // [107] 'k' = Lys
374         9  ,            // [108] 'l' = Leu
375         10 ,            // [109] 'm' = Met
376         11 ,            // [110] 'n' = Asn
377         INVALID_LETTER, // [111] 'o'
378         12 ,            // [112] 'p' = Pro
379         13 ,            // [113] 'q' = Gln
380         14 ,            // [114] 'r' = Arg
381         15 ,            // [115] 's' = Ser
382         16 ,            // [116] 't' = Thr
383         INVALID_LETTER, // [117] 'u'
384         17 ,            // [118] 'v' = Val
385         18 ,            // [119] 'w' = Trp
386         INVALID_LETTER, // [120] 'x'
387         19 ,            // [121] 'y' = Tyr
388         INVALID_LETTER, // [122] 'z'
389         INVALID_LETTER, // [123] '{'
390         INVALID_LETTER, // [124] '|'
391         INVALID_LETTER, // [125] '}'
392         INVALID_LETTER, // [126] '~'
393         INVALID_LETTER, // [127] 0x7f
394         INVALID_LETTER, // [128] 0x80
395         INVALID_LETTER, // [129] 0x81
396         INVALID_LETTER, // [130] 0x82
397         INVALID_LETTER, // [131] 0x83
398         INVALID_LETTER, // [132] 0x84
399         INVALID_LETTER, // [133] 0x85
400         INVALID_LETTER, // [134] 0x86
401         INVALID_LETTER, // [135] 0x87
402         INVALID_LETTER, // [136] 0x88
403         INVALID_LETTER, // [137] 0x89
404         INVALID_LETTER, // [138] 0x8a
405         INVALID_LETTER, // [139] 0x8b
406         INVALID_LETTER, // [140] 0x8c
407         INVALID_LETTER, // [141] 0x8d
408         INVALID_LETTER, // [142] 0x8e
409         INVALID_LETTER, // [143] 0x8f
410         INVALID_LETTER, // [144] 0x90
411         INVALID_LETTER, // [145] 0x91
412         INVALID_LETTER, // [146] 0x92
413         INVALID_LETTER, // [147] 0x93
414         INVALID_LETTER, // [148] 0x94
415         INVALID_LETTER, // [149] 0x95
416         INVALID_LETTER, // [150] 0x96
417         INVALID_LETTER, // [151] 0x97
418         INVALID_LETTER, // [152] 0x98
419         INVALID_LETTER, // [153] 0x99
420         INVALID_LETTER, // [154] 0x9a
421         INVALID_LETTER, // [155] 0x9b
422         INVALID_LETTER, // [156] 0x9c
423         INVALID_LETTER, // [157] 0x9d
424         INVALID_LETTER, // [158] 0x9e
425         INVALID_LETTER, // [159] 0x9f
426         INVALID_LETTER, // [160] 0xa0
427         INVALID_LETTER, // [161] 0xa1
428         INVALID_LETTER, // [162] 0xa2
429         INVALID_LETTER, // [163] 0xa3
430         INVALID_LETTER, // [164] 0xa4
431         INVALID_LETTER, // [165] 0xa5
432         INVALID_LETTER, // [166] 0xa6
433         INVALID_LETTER, // [167] 0xa7
434         INVALID_LETTER, // [168] 0xa8
435         INVALID_LETTER, // [169] 0xa9
436         INVALID_LETTER, // [170] 0xaa
437         INVALID_LETTER, // [171] 0xab
438         INVALID_LETTER, // [172] 0xac
439         INVALID_LETTER, // [173] 0xad
440         INVALID_LETTER, // [174] 0xae
441         INVALID_LETTER, // [175] 0xaf
442         INVALID_LETTER, // [176] 0xb0
443         INVALID_LETTER, // [177] 0xb1
444         INVALID_LETTER, // [178] 0xb2
445         INVALID_LETTER, // [179] 0xb3
446         INVALID_LETTER, // [180] 0xb4
447         INVALID_LETTER, // [181] 0xb5
448         INVALID_LETTER, // [182] 0xb6
449         INVALID_LETTER, // [183] 0xb7
450         INVALID_LETTER, // [184] 0xb8
451         INVALID_LETTER, // [185] 0xb9
452         INVALID_LETTER, // [186] 0xba
453         INVALID_LETTER, // [187] 0xbb
454         INVALID_LETTER, // [188] 0xbc
455         INVALID_LETTER, // [189] 0xbd
456         INVALID_LETTER, // [190] 0xbe
457         INVALID_LETTER, // [191] 0xbf
458         INVALID_LETTER, // [192] 0xc0
459         INVALID_LETTER, // [193] 0xc1
460         INVALID_LETTER, // [194] 0xc2
461         INVALID_LETTER, // [195] 0xc3
462         INVALID_LETTER, // [196] 0xc4
463         INVALID_LETTER, // [197] 0xc5
464         INVALID_LETTER, // [198] 0xc6
465         INVALID_LETTER, // [199] 0xc7
466         INVALID_LETTER, // [200] 0xc8
467         INVALID_LETTER, // [201] 0xc9
468         INVALID_LETTER, // [202] 0xca
469         INVALID_LETTER, // [203] 0xcb
470         INVALID_LETTER, // [204] 0xcc
471         INVALID_LETTER, // [205] 0xcd
472         INVALID_LETTER, // [206] 0xce
473         INVALID_LETTER, // [207] 0xcf
474         INVALID_LETTER, // [208] 0xd0
475         INVALID_LETTER, // [209] 0xd1
476         INVALID_LETTER, // [210] 0xd2
477         INVALID_LETTER, // [211] 0xd3
478         INVALID_LETTER, // [212] 0xd4
479         INVALID_LETTER, // [213] 0xd5
480         INVALID_LETTER, // [214] 0xd6
481         INVALID_LETTER, // [215] 0xd7
482         INVALID_LETTER, // [216] 0xd8
483         INVALID_LETTER, // [217] 0xd9
484         INVALID_LETTER, // [218] 0xda
485         INVALID_LETTER, // [219] 0xdb
486         INVALID_LETTER, // [220] 0xdc
487         INVALID_LETTER, // [221] 0xdd
488         INVALID_LETTER, // [222] 0xde
489         INVALID_LETTER, // [223] 0xdf
490         INVALID_LETTER, // [224] 0xe0
491         INVALID_LETTER, // [225] 0xe1
492         INVALID_LETTER, // [226] 0xe2
493         INVALID_LETTER, // [227] 0xe3
494         INVALID_LETTER, // [228] 0xe4
495         INVALID_LETTER, // [229] 0xe5
496         INVALID_LETTER, // [230] 0xe6
497         INVALID_LETTER, // [231] 0xe7
498         INVALID_LETTER, // [232] 0xe8
499         INVALID_LETTER, // [233] 0xe9
500         INVALID_LETTER, // [234] 0xea
501         INVALID_LETTER, // [235] 0xeb
502         INVALID_LETTER, // [236] 0xec
503         INVALID_LETTER, // [237] 0xed
504         INVALID_LETTER, // [238] 0xee
505         INVALID_LETTER, // [239] 0xef
506         INVALID_LETTER, // [240] 0xf0
507         INVALID_LETTER, // [241] 0xf1
508         INVALID_LETTER, // [242] 0xf2
509         INVALID_LETTER, // [243] 0xf3
510         INVALID_LETTER, // [244] 0xf4
511         INVALID_LETTER, // [245] 0xf5
512         INVALID_LETTER, // [246] 0xf6
513         INVALID_LETTER, // [247] 0xf7
514         INVALID_LETTER, // [248] 0xf8
515         INVALID_LETTER, // [249] 0xf9
516         INVALID_LETTER, // [250] 0xfa
517         INVALID_LETTER, // [251] 0xfb
518         INVALID_LETTER, // [252] 0xfc
519         INVALID_LETTER, // [253] 0xfd
520         INVALID_LETTER, // [254] 0xfe
521         INVALID_LETTER, // [255] 0xff
522         };
523
524 unsigned char g_LetterToCharAmino[256] =
525         {
526         'A', // [0] 
527         'C', // [1] 
528         'D', // [2] 
529         'E', // [3] 
530         'F', // [4] 
531         'G', // [5] 
532         'H', // [6] 
533         'I', // [7] 
534         'K', // [8] 
535         'L', // [9] 
536         'M', // [10] 
537         'N', // [11] 
538         'P', // [12] 
539         'Q', // [13] 
540         'R', // [14] 
541         'S', // [15] 
542         'T', // [16] 
543         'V', // [17] 
544         'W', // [18] 
545         'Y', // [19] 
546         '*', // [20] 
547         INVALID_CHAR, // [21]
548         INVALID_CHAR, // [22]
549         INVALID_CHAR, // [23]
550         INVALID_CHAR, // [24]
551         INVALID_CHAR, // [25]
552         INVALID_CHAR, // [26]
553         INVALID_CHAR, // [27]
554         INVALID_CHAR, // [28]
555         INVALID_CHAR, // [29]
556         INVALID_CHAR, // [30]
557         INVALID_CHAR, // [31]
558         INVALID_CHAR, // [32]
559         INVALID_CHAR, // [33]
560         INVALID_CHAR, // [34]
561         INVALID_CHAR, // [35]
562         INVALID_CHAR, // [36]
563         INVALID_CHAR, // [37]
564         INVALID_CHAR, // [38]
565         INVALID_CHAR, // [39]
566         INVALID_CHAR, // [40]
567         INVALID_CHAR, // [41]
568         INVALID_CHAR, // [42]
569         INVALID_CHAR, // [43]
570         INVALID_CHAR, // [44]
571         INVALID_CHAR, // [45]
572         INVALID_CHAR, // [46]
573         INVALID_CHAR, // [47]
574         INVALID_CHAR, // [48]
575         INVALID_CHAR, // [49]
576         INVALID_CHAR, // [50]
577         INVALID_CHAR, // [51]
578         INVALID_CHAR, // [52]
579         INVALID_CHAR, // [53]
580         INVALID_CHAR, // [54]
581         INVALID_CHAR, // [55]
582         INVALID_CHAR, // [56]
583         INVALID_CHAR, // [57]
584         INVALID_CHAR, // [58]
585         INVALID_CHAR, // [59]
586         INVALID_CHAR, // [60]
587         INVALID_CHAR, // [61]
588         INVALID_CHAR, // [62]
589         INVALID_CHAR, // [63]
590         INVALID_CHAR, // [64]
591         INVALID_CHAR, // [65]
592         INVALID_CHAR, // [66]
593         INVALID_CHAR, // [67]
594         INVALID_CHAR, // [68]
595         INVALID_CHAR, // [69]
596         INVALID_CHAR, // [70]
597         INVALID_CHAR, // [71]
598         INVALID_CHAR, // [72]
599         INVALID_CHAR, // [73]
600         INVALID_CHAR, // [74]
601         INVALID_CHAR, // [75]
602         INVALID_CHAR, // [76]
603         INVALID_CHAR, // [77]
604         INVALID_CHAR, // [78]
605         INVALID_CHAR, // [79]
606         INVALID_CHAR, // [80]
607         INVALID_CHAR, // [81]
608         INVALID_CHAR, // [82]
609         INVALID_CHAR, // [83]
610         INVALID_CHAR, // [84]
611         INVALID_CHAR, // [85]
612         INVALID_CHAR, // [86]
613         INVALID_CHAR, // [87]
614         INVALID_CHAR, // [88]
615         INVALID_CHAR, // [89]
616         INVALID_CHAR, // [90]
617         INVALID_CHAR, // [91]
618         INVALID_CHAR, // [92]
619         INVALID_CHAR, // [93]
620         INVALID_CHAR, // [94]
621         INVALID_CHAR, // [95]
622         INVALID_CHAR, // [96]
623         INVALID_CHAR, // [97]
624         INVALID_CHAR, // [98]
625         INVALID_CHAR, // [99]
626         INVALID_CHAR, // [100]
627         INVALID_CHAR, // [101]
628         INVALID_CHAR, // [102]
629         INVALID_CHAR, // [103]
630         INVALID_CHAR, // [104]
631         INVALID_CHAR, // [105]
632         INVALID_CHAR, // [106]
633         INVALID_CHAR, // [107]
634         INVALID_CHAR, // [108]
635         INVALID_CHAR, // [109]
636         INVALID_CHAR, // [110]
637         INVALID_CHAR, // [111]
638         INVALID_CHAR, // [112]
639         INVALID_CHAR, // [113]
640         INVALID_CHAR, // [114]
641         INVALID_CHAR, // [115]
642         INVALID_CHAR, // [116]
643         INVALID_CHAR, // [117]
644         INVALID_CHAR, // [118]
645         INVALID_CHAR, // [119]
646         INVALID_CHAR, // [120]
647         INVALID_CHAR, // [121]
648         INVALID_CHAR, // [122]
649         INVALID_CHAR, // [123]
650         INVALID_CHAR, // [124]
651         INVALID_CHAR, // [125]
652         INVALID_CHAR, // [126]
653         INVALID_CHAR, // [127]
654         INVALID_CHAR, // [128]
655         INVALID_CHAR, // [129]
656         INVALID_CHAR, // [130]
657         INVALID_CHAR, // [131]
658         INVALID_CHAR, // [132]
659         INVALID_CHAR, // [133]
660         INVALID_CHAR, // [134]
661         INVALID_CHAR, // [135]
662         INVALID_CHAR, // [136]
663         INVALID_CHAR, // [137]
664         INVALID_CHAR, // [138]
665         INVALID_CHAR, // [139]
666         INVALID_CHAR, // [140]
667         INVALID_CHAR, // [141]
668         INVALID_CHAR, // [142]
669         INVALID_CHAR, // [143]
670         INVALID_CHAR, // [144]
671         INVALID_CHAR, // [145]
672         INVALID_CHAR, // [146]
673         INVALID_CHAR, // [147]
674         INVALID_CHAR, // [148]
675         INVALID_CHAR, // [149]
676         INVALID_CHAR, // [150]
677         INVALID_CHAR, // [151]
678         INVALID_CHAR, // [152]
679         INVALID_CHAR, // [153]
680         INVALID_CHAR, // [154]
681         INVALID_CHAR, // [155]
682         INVALID_CHAR, // [156]
683         INVALID_CHAR, // [157]
684         INVALID_CHAR, // [158]
685         INVALID_CHAR, // [159]
686         INVALID_CHAR, // [160]
687         INVALID_CHAR, // [161]
688         INVALID_CHAR, // [162]
689         INVALID_CHAR, // [163]
690         INVALID_CHAR, // [164]
691         INVALID_CHAR, // [165]
692         INVALID_CHAR, // [166]
693         INVALID_CHAR, // [167]
694         INVALID_CHAR, // [168]
695         INVALID_CHAR, // [169]
696         INVALID_CHAR, // [170]
697         INVALID_CHAR, // [171]
698         INVALID_CHAR, // [172]
699         INVALID_CHAR, // [173]
700         INVALID_CHAR, // [174]
701         INVALID_CHAR, // [175]
702         INVALID_CHAR, // [176]
703         INVALID_CHAR, // [177]
704         INVALID_CHAR, // [178]
705         INVALID_CHAR, // [179]
706         INVALID_CHAR, // [180]
707         INVALID_CHAR, // [181]
708         INVALID_CHAR, // [182]
709         INVALID_CHAR, // [183]
710         INVALID_CHAR, // [184]
711         INVALID_CHAR, // [185]
712         INVALID_CHAR, // [186]
713         INVALID_CHAR, // [187]
714         INVALID_CHAR, // [188]
715         INVALID_CHAR, // [189]
716         INVALID_CHAR, // [190]
717         INVALID_CHAR, // [191]
718         INVALID_CHAR, // [192]
719         INVALID_CHAR, // [193]
720         INVALID_CHAR, // [194]
721         INVALID_CHAR, // [195]
722         INVALID_CHAR, // [196]
723         INVALID_CHAR, // [197]
724         INVALID_CHAR, // [198]
725         INVALID_CHAR, // [199]
726         INVALID_CHAR, // [200]
727         INVALID_CHAR, // [201]
728         INVALID_CHAR, // [202]
729         INVALID_CHAR, // [203]
730         INVALID_CHAR, // [204]
731         INVALID_CHAR, // [205]
732         INVALID_CHAR, // [206]
733         INVALID_CHAR, // [207]
734         INVALID_CHAR, // [208]
735         INVALID_CHAR, // [209]
736         INVALID_CHAR, // [210]
737         INVALID_CHAR, // [211]
738         INVALID_CHAR, // [212]
739         INVALID_CHAR, // [213]
740         INVALID_CHAR, // [214]
741         INVALID_CHAR, // [215]
742         INVALID_CHAR, // [216]
743         INVALID_CHAR, // [217]
744         INVALID_CHAR, // [218]
745         INVALID_CHAR, // [219]
746         INVALID_CHAR, // [220]
747         INVALID_CHAR, // [221]
748         INVALID_CHAR, // [222]
749         INVALID_CHAR, // [223]
750         INVALID_CHAR, // [224]
751         INVALID_CHAR, // [225]
752         INVALID_CHAR, // [226]
753         INVALID_CHAR, // [227]
754         INVALID_CHAR, // [228]
755         INVALID_CHAR, // [229]
756         INVALID_CHAR, // [230]
757         INVALID_CHAR, // [231]
758         INVALID_CHAR, // [232]
759         INVALID_CHAR, // [233]
760         INVALID_CHAR, // [234]
761         INVALID_CHAR, // [235]
762         INVALID_CHAR, // [236]
763         INVALID_CHAR, // [237]
764         INVALID_CHAR, // [238]
765         INVALID_CHAR, // [239]
766         INVALID_CHAR, // [240]
767         INVALID_CHAR, // [241]
768         INVALID_CHAR, // [242]
769         INVALID_CHAR, // [243]
770         INVALID_CHAR, // [244]
771         INVALID_CHAR, // [245]
772         INVALID_CHAR, // [246]
773         INVALID_CHAR, // [247]
774         INVALID_CHAR, // [248]
775         INVALID_CHAR, // [249]
776         INVALID_CHAR, // [250]
777         INVALID_CHAR, // [251]
778         INVALID_CHAR, // [252]
779         INVALID_CHAR, // [253]
780         INVALID_CHAR, // [254]
781         INVALID_CHAR, // [255]
782         };
783
784 unsigned g_CharToLetterNucleo[256] =
785         {
786         INVALID_LETTER, // [  0] = 0x00
787         INVALID_LETTER, // [  1] = 0x01
788         INVALID_LETTER, // [  2] = 0x02
789         INVALID_LETTER, // [  3] = 0x03
790         INVALID_LETTER, // [  4] = 0x04
791         INVALID_LETTER, // [  5] = 0x05
792         INVALID_LETTER, // [  6] = 0x06
793         INVALID_LETTER, // [  7] = 0x07
794         INVALID_LETTER, // [  8] = 0x08
795         INVALID_LETTER, // [  9] = 0x09
796         INVALID_LETTER, // [ 10] = 0x0a
797         INVALID_LETTER, // [ 11] = 0x0b
798         INVALID_LETTER, // [ 12] = 0x0c
799         INVALID_LETTER, // [ 13] = 0x0d
800         INVALID_LETTER, // [ 14] = 0x0e
801         INVALID_LETTER, // [ 15] = 0x0f
802         INVALID_LETTER, // [ 16] = 0x10
803         INVALID_LETTER, // [ 17] = 0x11
804         INVALID_LETTER, // [ 18] = 0x12
805         INVALID_LETTER, // [ 19] = 0x13
806         INVALID_LETTER, // [ 20] = 0x14
807         INVALID_LETTER, // [ 21] = 0x15
808         INVALID_LETTER, // [ 22] = 0x16
809         INVALID_LETTER, // [ 23] = 0x17
810         INVALID_LETTER, // [ 24] = 0x18
811         INVALID_LETTER, // [ 25] = 0x19
812         INVALID_LETTER, // [ 26] = 0x1a
813         INVALID_LETTER, // [ 27] = 0x1b
814         INVALID_LETTER, // [ 28] = 0x1c
815         INVALID_LETTER, // [ 29] = 0x1d
816         INVALID_LETTER, // [ 30] = 0x1e
817         INVALID_LETTER, // [ 31] = 0x1f
818         INVALID_LETTER, // [ 32] = 32
819         INVALID_LETTER, // [ 33] = 33
820         INVALID_LETTER, // [ 34] = 34
821         INVALID_LETTER, // [ 35] = 35
822         INVALID_LETTER, // [ 36] = 36
823         INVALID_LETTER, // [ 37] = 37
824         INVALID_LETTER, // [ 38] = 38
825         INVALID_LETTER, // [ 39] = 39
826         INVALID_LETTER, // [ 40] = 40
827         INVALID_LETTER, // [ 41] = 41
828         INVALID_LETTER, // [ 42] = 42
829         INVALID_LETTER, // [ 43] = 43
830         INVALID_LETTER, // [ 44] = 44
831         INVALID_LETTER, // [ 45] = 45
832         INVALID_LETTER, // [ 46] = 46
833         INVALID_LETTER, // [ 47] = 47
834         INVALID_LETTER, // [ 48] = 48
835         INVALID_LETTER, // [ 49] = 49
836         INVALID_LETTER, // [ 50] = 50
837         INVALID_LETTER, // [ 51] = 51
838         INVALID_LETTER, // [ 52] = 52
839         INVALID_LETTER, // [ 53] = 53
840         INVALID_LETTER, // [ 54] = 54
841         INVALID_LETTER, // [ 55] = 55
842         INVALID_LETTER, // [ 56] = 56
843         INVALID_LETTER, // [ 57] = 57
844         INVALID_LETTER, // [ 58] = 58
845         INVALID_LETTER, // [ 59] = 59
846         INVALID_LETTER, // [ 60] = 60
847         INVALID_LETTER, // [ 61] = 61
848         INVALID_LETTER, // [ 62] = 62
849         INVALID_LETTER, // [ 63] = 63
850         INVALID_LETTER, // [ 64] = 64
851         0  ,            // [ 65] = A (Nucleotide)
852         INVALID_LETTER, // [ 66] = 66
853         1  ,            // [ 67] = C (Nucleotide)
854         INVALID_LETTER, // [ 68] = 68
855         INVALID_LETTER, // [ 69] = 69
856         INVALID_LETTER, // [ 70] = 70
857         2  ,            // [ 71] = G (Nucleotide)
858         INVALID_LETTER, // [ 72] = 72
859         INVALID_LETTER, // [ 73] = 73
860         INVALID_LETTER, // [ 74] = 74
861         INVALID_LETTER, // [ 75] = 75
862         INVALID_LETTER, // [ 76] = 76
863         INVALID_LETTER, // [ 77] = 77
864         INVALID_LETTER, // [ 78] = 78
865         INVALID_LETTER, // [ 79] = 79
866         INVALID_LETTER, // [ 80] = 80
867         INVALID_LETTER, // [ 81] = 81
868         INVALID_LETTER, // [ 82] = 82
869         INVALID_LETTER, // [ 83] = 83
870         3  ,            // [ 84] = T (Nucleotide)
871         3  ,            // [ 85] = U (Nucleotide)
872         INVALID_LETTER, // [ 86] = 86
873         INVALID_LETTER, // [ 87] = 87
874         INVALID_LETTER, // [ 88] = 88
875         INVALID_LETTER, // [ 89] = 89
876         INVALID_LETTER, // [ 90] = 90
877         INVALID_LETTER, // [ 91] = 91
878         INVALID_LETTER, // [ 92] = 92
879         INVALID_LETTER, // [ 93] = 93
880         INVALID_LETTER, // [ 94] = 94
881         INVALID_LETTER, // [ 95] = 95
882         INVALID_LETTER, // [ 96] = 96
883         0  ,            // [ 97] = a (Nucleotide)
884         INVALID_LETTER, // [ 98] = 98
885         1  ,            // [ 99] = c (Nucleotide)
886         INVALID_LETTER, // [100] = 100
887         INVALID_LETTER, // [101] = 101
888         INVALID_LETTER, // [102] = 102
889         2  ,            // [103] = g (Nucleotide)
890         INVALID_LETTER, // [104] = 104
891         INVALID_LETTER, // [105] = 105
892         INVALID_LETTER, // [106] = 106
893         INVALID_LETTER, // [107] = 107
894         INVALID_LETTER, // [108] = 108
895         INVALID_LETTER, // [109] = 109
896         INVALID_LETTER, // [110] = 110
897         INVALID_LETTER, // [111] = 111
898         INVALID_LETTER, // [112] = 112
899         INVALID_LETTER, // [113] = 113
900         INVALID_LETTER, // [114] = 114
901         INVALID_LETTER, // [115] = 115
902         3  ,            // [116] = t (Nucleotide)
903         3  ,            // [117] = u (Nucleotide)
904         INVALID_LETTER, // [118] = 118
905         INVALID_LETTER, // [119] = 119
906         INVALID_LETTER, // [120] = 120
907         INVALID_LETTER, // [121] = 121
908         INVALID_LETTER, // [122] = 122
909         INVALID_LETTER, // [123] = 123
910         INVALID_LETTER, // [124] = 124
911         INVALID_LETTER, // [125] = 125
912         INVALID_LETTER, // [126] = 126
913         INVALID_LETTER, // [127] = 0x7f
914         INVALID_LETTER, // [128] = 0x80
915         INVALID_LETTER, // [129] = 0x81
916         INVALID_LETTER, // [130] = 0x82
917         INVALID_LETTER, // [131] = 0x83
918         INVALID_LETTER, // [132] = 0x84
919         INVALID_LETTER, // [133] = 0x85
920         INVALID_LETTER, // [134] = 0x86
921         INVALID_LETTER, // [135] = 0x87
922         INVALID_LETTER, // [136] = 0x88
923         INVALID_LETTER, // [137] = 0x89
924         INVALID_LETTER, // [138] = 0x8a
925         INVALID_LETTER, // [139] = 0x8b
926         INVALID_LETTER, // [140] = 0x8c
927         INVALID_LETTER, // [141] = 0x8d
928         INVALID_LETTER, // [142] = 0x8e
929         INVALID_LETTER, // [143] = 0x8f
930         INVALID_LETTER, // [144] = 0x90
931         INVALID_LETTER, // [145] = 0x91
932         INVALID_LETTER, // [146] = 0x92
933         INVALID_LETTER, // [147] = 0x93
934         INVALID_LETTER, // [148] = 0x94
935         INVALID_LETTER, // [149] = 0x95
936         INVALID_LETTER, // [150] = 0x96
937         INVALID_LETTER, // [151] = 0x97
938         INVALID_LETTER, // [152] = 0x98
939         INVALID_LETTER, // [153] = 0x99
940         INVALID_LETTER, // [154] = 0x9a
941         INVALID_LETTER, // [155] = 0x9b
942         INVALID_LETTER, // [156] = 0x9c
943         INVALID_LETTER, // [157] = 0x9d
944         INVALID_LETTER, // [158] = 0x9e
945         INVALID_LETTER, // [159] = 0x9f
946         INVALID_LETTER, // [160] = 0xa0
947         INVALID_LETTER, // [161] = 0xa1
948         INVALID_LETTER, // [162] = 0xa2
949         INVALID_LETTER, // [163] = 0xa3
950         INVALID_LETTER, // [164] = 0xa4
951         INVALID_LETTER, // [165] = 0xa5
952         INVALID_LETTER, // [166] = 0xa6
953         INVALID_LETTER, // [167] = 0xa7
954         INVALID_LETTER, // [168] = 0xa8
955         INVALID_LETTER, // [169] = 0xa9
956         INVALID_LETTER, // [170] = 0xaa
957         INVALID_LETTER, // [171] = 0xab
958         INVALID_LETTER, // [172] = 0xac
959         INVALID_LETTER, // [173] = 0xad
960         INVALID_LETTER, // [174] = 0xae
961         INVALID_LETTER, // [175] = 0xaf
962         INVALID_LETTER, // [176] = 0xb0
963         INVALID_LETTER, // [177] = 0xb1
964         INVALID_LETTER, // [178] = 0xb2
965         INVALID_LETTER, // [179] = 0xb3
966         INVALID_LETTER, // [180] = 0xb4
967         INVALID_LETTER, // [181] = 0xb5
968         INVALID_LETTER, // [182] = 0xb6
969         INVALID_LETTER, // [183] = 0xb7
970         INVALID_LETTER, // [184] = 0xb8
971         INVALID_LETTER, // [185] = 0xb9
972         INVALID_LETTER, // [186] = 0xba
973         INVALID_LETTER, // [187] = 0xbb
974         INVALID_LETTER, // [188] = 0xbc
975         INVALID_LETTER, // [189] = 0xbd
976         INVALID_LETTER, // [190] = 0xbe
977         INVALID_LETTER, // [191] = 0xbf
978         INVALID_LETTER, // [192] = 0xc0
979         INVALID_LETTER, // [193] = 0xc1
980         INVALID_LETTER, // [194] = 0xc2
981         INVALID_LETTER, // [195] = 0xc3
982         INVALID_LETTER, // [196] = 0xc4
983         INVALID_LETTER, // [197] = 0xc5
984         INVALID_LETTER, // [198] = 0xc6
985         INVALID_LETTER, // [199] = 0xc7
986         INVALID_LETTER, // [200] = 0xc8
987         INVALID_LETTER, // [201] = 0xc9
988         INVALID_LETTER, // [202] = 0xca
989         INVALID_LETTER, // [203] = 0xcb
990         INVALID_LETTER, // [204] = 0xcc
991         INVALID_LETTER, // [205] = 0xcd
992         INVALID_LETTER, // [206] = 0xce
993         INVALID_LETTER, // [207] = 0xcf
994         INVALID_LETTER, // [208] = 0xd0
995         INVALID_LETTER, // [209] = 0xd1
996         INVALID_LETTER, // [210] = 0xd2
997         INVALID_LETTER, // [211] = 0xd3
998         INVALID_LETTER, // [212] = 0xd4
999         INVALID_LETTER, // [213] = 0xd5
1000         INVALID_LETTER, // [214] = 0xd6
1001         INVALID_LETTER, // [215] = 0xd7
1002         INVALID_LETTER, // [216] = 0xd8
1003         INVALID_LETTER, // [217] = 0xd9
1004         INVALID_LETTER, // [218] = 0xda
1005         INVALID_LETTER, // [219] = 0xdb
1006         INVALID_LETTER, // [220] = 0xdc
1007         INVALID_LETTER, // [221] = 0xdd
1008         INVALID_LETTER, // [222] = 0xde
1009         INVALID_LETTER, // [223] = 0xdf
1010         INVALID_LETTER, // [224] = 0xe0
1011         INVALID_LETTER, // [225] = 0xe1
1012         INVALID_LETTER, // [226] = 0xe2
1013         INVALID_LETTER, // [227] = 0xe3
1014         INVALID_LETTER, // [228] = 0xe4
1015         INVALID_LETTER, // [229] = 0xe5
1016         INVALID_LETTER, // [230] = 0xe6
1017         INVALID_LETTER, // [231] = 0xe7
1018         INVALID_LETTER, // [232] = 0xe8
1019         INVALID_LETTER, // [233] = 0xe9
1020         INVALID_LETTER, // [234] = 0xea
1021         INVALID_LETTER, // [235] = 0xeb
1022         INVALID_LETTER, // [236] = 0xec
1023         INVALID_LETTER, // [237] = 0xed
1024         INVALID_LETTER, // [238] = 0xee
1025         INVALID_LETTER, // [239] = 0xef
1026         INVALID_LETTER, // [240] = 0xf0
1027         INVALID_LETTER, // [241] = 0xf1
1028         INVALID_LETTER, // [242] = 0xf2
1029         INVALID_LETTER, // [243] = 0xf3
1030         INVALID_LETTER, // [244] = 0xf4
1031         INVALID_LETTER, // [245] = 0xf5
1032         INVALID_LETTER, // [246] = 0xf6
1033         INVALID_LETTER, // [247] = 0xf7
1034         INVALID_LETTER, // [248] = 0xf8
1035         INVALID_LETTER, // [249] = 0xf9
1036         INVALID_LETTER, // [250] = 0xfa
1037         INVALID_LETTER, // [251] = 0xfb
1038         INVALID_LETTER, // [252] = 0xfc
1039         INVALID_LETTER, // [253] = 0xfd
1040         INVALID_LETTER, // [254] = 0xfe
1041         INVALID_LETTER, // [255] = 0xff
1042         };
1043
1044 unsigned char g_LetterToCharNucleo[256] =
1045         {
1046         'A', // [0]
1047         'C', // [1]
1048         'G', // [2]
1049         'T', // [3]
1050         INVALID_CHAR, // [4]
1051         INVALID_CHAR, // [5]
1052         INVALID_CHAR, // [6]
1053         INVALID_CHAR, // [7]
1054         INVALID_CHAR, // [8]
1055         INVALID_CHAR, // [9]
1056         INVALID_CHAR, // [10]
1057         INVALID_CHAR, // [11]
1058         INVALID_CHAR, // [12]
1059         INVALID_CHAR, // [13]
1060         INVALID_CHAR, // [14]
1061         INVALID_CHAR, // [15]
1062         INVALID_CHAR, // [16]
1063         INVALID_CHAR, // [17]
1064         INVALID_CHAR, // [18]
1065         INVALID_CHAR, // [19]
1066         INVALID_CHAR, // [20]
1067         INVALID_CHAR, // [21]
1068         INVALID_CHAR, // [22]
1069         INVALID_CHAR, // [23]
1070         INVALID_CHAR, // [24]
1071         INVALID_CHAR, // [25]
1072         INVALID_CHAR, // [26]
1073         INVALID_CHAR, // [27]
1074         INVALID_CHAR, // [28]
1075         INVALID_CHAR, // [29]
1076         INVALID_CHAR, // [30]
1077         INVALID_CHAR, // [31]
1078         INVALID_CHAR, // [32]
1079         INVALID_CHAR, // [33]
1080         INVALID_CHAR, // [34]
1081         INVALID_CHAR, // [35]
1082         INVALID_CHAR, // [36]
1083         INVALID_CHAR, // [37]
1084         INVALID_CHAR, // [38]
1085         INVALID_CHAR, // [39]
1086         INVALID_CHAR, // [40]
1087         INVALID_CHAR, // [41]
1088         INVALID_CHAR, // [42]
1089         INVALID_CHAR, // [43]
1090         INVALID_CHAR, // [44]
1091         INVALID_CHAR, // [45]
1092         INVALID_CHAR, // [46]
1093         INVALID_CHAR, // [47]
1094         INVALID_CHAR, // [48]
1095         INVALID_CHAR, // [49]
1096         INVALID_CHAR, // [50]
1097         INVALID_CHAR, // [51]
1098         INVALID_CHAR, // [52]
1099         INVALID_CHAR, // [53]
1100         INVALID_CHAR, // [54]
1101         INVALID_CHAR, // [55]
1102         INVALID_CHAR, // [56]
1103         INVALID_CHAR, // [57]
1104         INVALID_CHAR, // [58]
1105         INVALID_CHAR, // [59]
1106         INVALID_CHAR, // [60]
1107         INVALID_CHAR, // [61]
1108         INVALID_CHAR, // [62]
1109         INVALID_CHAR, // [63]
1110         INVALID_CHAR, // [64]
1111         INVALID_CHAR, // [65]
1112         INVALID_CHAR, // [66]
1113         INVALID_CHAR, // [67]
1114         INVALID_CHAR, // [68]
1115         INVALID_CHAR, // [69]
1116         INVALID_CHAR, // [70]
1117         INVALID_CHAR, // [71]
1118         INVALID_CHAR, // [72]
1119         INVALID_CHAR, // [73]
1120         INVALID_CHAR, // [74]
1121         INVALID_CHAR, // [75]
1122         INVALID_CHAR, // [76]
1123         INVALID_CHAR, // [77]
1124         INVALID_CHAR, // [78]
1125         INVALID_CHAR, // [79]
1126         INVALID_CHAR, // [80]
1127         INVALID_CHAR, // [81]
1128         INVALID_CHAR, // [82]
1129         INVALID_CHAR, // [83]
1130         INVALID_CHAR, // [84]
1131         INVALID_CHAR, // [85]
1132         INVALID_CHAR, // [86]
1133         INVALID_CHAR, // [87]
1134         INVALID_CHAR, // [88]
1135         INVALID_CHAR, // [89]
1136         INVALID_CHAR, // [90]
1137         INVALID_CHAR, // [91]
1138         INVALID_CHAR, // [92]
1139         INVALID_CHAR, // [93]
1140         INVALID_CHAR, // [94]
1141         INVALID_CHAR, // [95]
1142         INVALID_CHAR, // [96]
1143         INVALID_CHAR, // [97]
1144         INVALID_CHAR, // [98]
1145         INVALID_CHAR, // [99]
1146         INVALID_CHAR, // [100]
1147         INVALID_CHAR, // [101]
1148         INVALID_CHAR, // [102]
1149         INVALID_CHAR, // [103]
1150         INVALID_CHAR, // [104]
1151         INVALID_CHAR, // [105]
1152         INVALID_CHAR, // [106]
1153         INVALID_CHAR, // [107]
1154         INVALID_CHAR, // [108]
1155         INVALID_CHAR, // [109]
1156         INVALID_CHAR, // [110]
1157         INVALID_CHAR, // [111]
1158         INVALID_CHAR, // [112]
1159         INVALID_CHAR, // [113]
1160         INVALID_CHAR, // [114]
1161         INVALID_CHAR, // [115]
1162         INVALID_CHAR, // [116]
1163         INVALID_CHAR, // [117]
1164         INVALID_CHAR, // [118]
1165         INVALID_CHAR, // [119]
1166         INVALID_CHAR, // [120]
1167         INVALID_CHAR, // [121]
1168         INVALID_CHAR, // [122]
1169         INVALID_CHAR, // [123]
1170         INVALID_CHAR, // [124]
1171         INVALID_CHAR, // [125]
1172         INVALID_CHAR, // [126]
1173         INVALID_CHAR, // [127]
1174         INVALID_CHAR, // [128]
1175         INVALID_CHAR, // [129]
1176         INVALID_CHAR, // [130]
1177         INVALID_CHAR, // [131]
1178         INVALID_CHAR, // [132]
1179         INVALID_CHAR, // [133]
1180         INVALID_CHAR, // [134]
1181         INVALID_CHAR, // [135]
1182         INVALID_CHAR, // [136]
1183         INVALID_CHAR, // [137]
1184         INVALID_CHAR, // [138]
1185         INVALID_CHAR, // [139]
1186         INVALID_CHAR, // [140]
1187         INVALID_CHAR, // [141]
1188         INVALID_CHAR, // [142]
1189         INVALID_CHAR, // [143]
1190         INVALID_CHAR, // [144]
1191         INVALID_CHAR, // [145]
1192         INVALID_CHAR, // [146]
1193         INVALID_CHAR, // [147]
1194         INVALID_CHAR, // [148]
1195         INVALID_CHAR, // [149]
1196         INVALID_CHAR, // [150]
1197         INVALID_CHAR, // [151]
1198         INVALID_CHAR, // [152]
1199         INVALID_CHAR, // [153]
1200         INVALID_CHAR, // [154]
1201         INVALID_CHAR, // [155]
1202         INVALID_CHAR, // [156]
1203         INVALID_CHAR, // [157]
1204         INVALID_CHAR, // [158]
1205         INVALID_CHAR, // [159]
1206         INVALID_CHAR, // [160]
1207         INVALID_CHAR, // [161]
1208         INVALID_CHAR, // [162]
1209         INVALID_CHAR, // [163]
1210         INVALID_CHAR, // [164]
1211         INVALID_CHAR, // [165]
1212         INVALID_CHAR, // [166]
1213         INVALID_CHAR, // [167]
1214         INVALID_CHAR, // [168]
1215         INVALID_CHAR, // [169]
1216         INVALID_CHAR, // [170]
1217         INVALID_CHAR, // [171]
1218         INVALID_CHAR, // [172]
1219         INVALID_CHAR, // [173]
1220         INVALID_CHAR, // [174]
1221         INVALID_CHAR, // [175]
1222         INVALID_CHAR, // [176]
1223         INVALID_CHAR, // [177]
1224         INVALID_CHAR, // [178]
1225         INVALID_CHAR, // [179]
1226         INVALID_CHAR, // [180]
1227         INVALID_CHAR, // [181]
1228         INVALID_CHAR, // [182]
1229         INVALID_CHAR, // [183]
1230         INVALID_CHAR, // [184]
1231         INVALID_CHAR, // [185]
1232         INVALID_CHAR, // [186]
1233         INVALID_CHAR, // [187]
1234         INVALID_CHAR, // [188]
1235         INVALID_CHAR, // [189]
1236         INVALID_CHAR, // [190]
1237         INVALID_CHAR, // [191]
1238         INVALID_CHAR, // [192]
1239         INVALID_CHAR, // [193]
1240         INVALID_CHAR, // [194]
1241         INVALID_CHAR, // [195]
1242         INVALID_CHAR, // [196]
1243         INVALID_CHAR, // [197]
1244         INVALID_CHAR, // [198]
1245         INVALID_CHAR, // [199]
1246         INVALID_CHAR, // [200]
1247         INVALID_CHAR, // [201]
1248         INVALID_CHAR, // [202]
1249         INVALID_CHAR, // [203]
1250         INVALID_CHAR, // [204]
1251         INVALID_CHAR, // [205]
1252         INVALID_CHAR, // [206]
1253         INVALID_CHAR, // [207]
1254         INVALID_CHAR, // [208]
1255         INVALID_CHAR, // [209]
1256         INVALID_CHAR, // [210]
1257         INVALID_CHAR, // [211]
1258         INVALID_CHAR, // [212]
1259         INVALID_CHAR, // [213]
1260         INVALID_CHAR, // [214]
1261         INVALID_CHAR, // [215]
1262         INVALID_CHAR, // [216]
1263         INVALID_CHAR, // [217]
1264         INVALID_CHAR, // [218]
1265         INVALID_CHAR, // [219]
1266         INVALID_CHAR, // [220]
1267         INVALID_CHAR, // [221]
1268         INVALID_CHAR, // [222]
1269         INVALID_CHAR, // [223]
1270         INVALID_CHAR, // [224]
1271         INVALID_CHAR, // [225]
1272         INVALID_CHAR, // [226]
1273         INVALID_CHAR, // [227]
1274         INVALID_CHAR, // [228]
1275         INVALID_CHAR, // [229]
1276         INVALID_CHAR, // [230]
1277         INVALID_CHAR, // [231]
1278         INVALID_CHAR, // [232]
1279         INVALID_CHAR, // [233]
1280         INVALID_CHAR, // [234]
1281         INVALID_CHAR, // [235]
1282         INVALID_CHAR, // [236]
1283         INVALID_CHAR, // [237]
1284         INVALID_CHAR, // [238]
1285         INVALID_CHAR, // [239]
1286         INVALID_CHAR, // [240]
1287         INVALID_CHAR, // [241]
1288         INVALID_CHAR, // [242]
1289         INVALID_CHAR, // [243]
1290         INVALID_CHAR, // [244]
1291         INVALID_CHAR, // [245]
1292         INVALID_CHAR, // [246]
1293         INVALID_CHAR, // [247]
1294         INVALID_CHAR, // [248]
1295         INVALID_CHAR, // [249]
1296         INVALID_CHAR, // [250]
1297         INVALID_CHAR, // [251]
1298         INVALID_CHAR, // [252]
1299         INVALID_CHAR, // [253]
1300         INVALID_CHAR, // [254]
1301         INVALID_CHAR, // [255]
1302         };
1303
1304 unsigned g_CodonWordToAminoLetter[4*4*4] =
1305         {
1306         8 , // [ 0] = AAA K (Lys)
1307         11, // [ 1] = AAC N (Asn)
1308         8 , // [ 2] = AAG K (Lys)
1309         11, // [ 3] = AAT N (Asn)
1310         16, // [ 4] = ACA T (Thr)
1311         16, // [ 5] = ACC T (Thr)
1312         16, // [ 6] = ACG T (Thr)
1313         16, // [ 7] = ACT T (Thr)
1314         14, // [ 8] = AGA R (Arg)
1315         15, // [ 9] = AGC S (Ser)
1316         14, // [10] = AGG R (Arg)
1317         15, // [11] = AGT S (Ser)
1318         7 , // [12] = ATA I (Ile)
1319         7 , // [13] = ATC I (Ile)
1320         10, // [14] = ATG M (Met)
1321         7 , // [15] = ATT I (Ile)
1322         13, // [16] = CAA Q (Gln)
1323         6 , // [17] = CAC H (His)
1324         13, // [18] = CAG Q (Gln)
1325         6 , // [19] = CAT H (His)
1326         12, // [20] = CCA P (Pro)
1327         12, // [21] = CCC P (Pro)
1328         12, // [22] = CCG P (Pro)
1329         12, // [23] = CCT P (Pro)
1330         14, // [24] = CGA R (Arg)
1331         14, // [25] = CGC R (Arg)
1332         14, // [26] = CGG R (Arg)
1333         14, // [27] = CGT R (Arg)
1334         9 , // [28] = CTA L (Leu)
1335         9 , // [29] = CTC L (Leu)
1336         9 , // [30] = CTG L (Leu)
1337         9 , // [31] = CTT L (Leu)
1338         3 , // [32] = GAA E (Glu)
1339         2 , // [33] = GAC D (Asp)
1340         3 , // [34] = GAG E (Glu)
1341         2 , // [35] = GAT D (Asp)
1342         0 , // [36] = GCA A (Ala)
1343         0 , // [37] = GCC A (Ala)
1344         0 , // [38] = GCG A (Ala)
1345         0 , // [39] = GCT A (Ala)
1346         5 , // [40] = GGA G (Gly)
1347         5 , // [41] = GGC G (Gly)
1348         5 , // [42] = GGG G (Gly)
1349         5 , // [43] = GGT G (Gly)
1350         17, // [44] = GTA V (Val)
1351         17, // [45] = GTC V (Val)
1352         17, // [46] = GTG V (Val)
1353         17, // [47] = GTT V (Val)
1354         20, // [48] = TAA * (STP)
1355         19, // [49] = TAC Y (Tyr)
1356         20, // [50] = TAG * (STP)
1357         19, // [51] = TAT Y (Tyr)
1358         15, // [52] = TCA S (Ser)
1359         15, // [53] = TCC S (Ser)
1360         15, // [54] = TCG S (Ser)
1361         15, // [55] = TCT S (Ser)
1362         20, // [56] = TGA * (STP)
1363         1 , // [57] = TGC C (Cys)
1364         18, // [58] = TGG W (Trp)
1365         1 , // [59] = TGT C (Cys)
1366         9 , // [60] = TTA L (Leu)
1367         4 , // [61] = TTC F (Phe)
1368         9 , // [62] = TTG L (Leu)
1369         4 , // [63] = TTT F (Phe)
1370         };
1371
1372 char g_CodonWordToAminoChar[4*4*4] =
1373         {
1374         'K', // [ 0] = AAA (Lys)
1375         'N', // [ 1] = AAC (Asn)
1376         'K', // [ 2] = AAG (Lys)
1377         'N', // [ 3] = AAT (Asn)
1378         'T', // [ 4] = ACA (Thr)
1379         'T', // [ 5] = ACC (Thr)
1380         'T', // [ 6] = ACG (Thr)
1381         'T', // [ 7] = ACT (Thr)
1382         'R', // [ 8] = AGA (Arg)
1383         'S', // [ 9] = AGC (Ser)
1384         'R', // [10] = AGG (Arg)
1385         'S', // [11] = AGT (Ser)
1386         'I', // [12] = ATA (Ile)
1387         'I', // [13] = ATC (Ile)
1388         'M', // [14] = ATG (Met)
1389         'I', // [15] = ATT (Ile)
1390         'Q', // [16] = CAA (Gln)
1391         'H', // [17] = CAC (His)
1392         'Q', // [18] = CAG (Gln)
1393         'H', // [19] = CAT (His)
1394         'P', // [20] = CCA (Pro)
1395         'P', // [21] = CCC (Pro)
1396         'P', // [22] = CCG (Pro)
1397         'P', // [23] = CCT (Pro)
1398         'R', // [24] = CGA (Arg)
1399         'R', // [25] = CGC (Arg)
1400         'R', // [26] = CGG (Arg)
1401         'R', // [27] = CGT (Arg)
1402         'L', // [28] = CTA (Leu)
1403         'L', // [29] = CTC (Leu)
1404         'L', // [30] = CTG (Leu)
1405         'L', // [31] = CTT (Leu)
1406         'E', // [32] = GAA (Glu)
1407         'D', // [33] = GAC (Asp)
1408         'E', // [34] = GAG (Glu)
1409         'D', // [35] = GAT (Asp)
1410         'A', // [36] = GCA (Ala)
1411         'A', // [37] = GCC (Ala)
1412         'A', // [38] = GCG (Ala)
1413         'A', // [39] = GCT (Ala)
1414         'G', // [40] = GGA (Gly)
1415         'G', // [41] = GGC (Gly)
1416         'G', // [42] = GGG (Gly)
1417         'G', // [43] = GGT (Gly)
1418         'V', // [44] = GTA (Val)
1419         'V', // [45] = GTC (Val)
1420         'V', // [46] = GTG (Val)
1421         'V', // [47] = GTT (Val)
1422         '*', // [48] = TAA (STP)
1423         'Y', // [49] = TAC (Tyr)
1424         '*', // [50] = TAG (STP)
1425         'Y', // [51] = TAT (Tyr)
1426         'S', // [52] = TCA (Ser)
1427         'S', // [53] = TCC (Ser)
1428         'S', // [54] = TCG (Ser)
1429         'S', // [55] = TCT (Ser)
1430         '*', // [56] = TGA (STP)
1431         'C', // [57] = TGC (Cys)
1432         'W', // [58] = TGG (Trp)
1433         'C', // [59] = TGT (Cys)
1434         'L', // [60] = TTA (Leu)
1435         'F', // [61] = TTC (Phe)
1436         'L', // [62] = TTG (Leu)
1437         'F', // [63] = TTT (Phe)
1438         };
1439
1440 unsigned char g_CharToCompChar[256] =
1441         {
1442         INVALID_CHAR, // [  0]
1443         INVALID_CHAR, // [  1]
1444         INVALID_CHAR, // [  2]
1445         INVALID_CHAR, // [  3]
1446         INVALID_CHAR, // [  4]
1447         INVALID_CHAR, // [  5]
1448         INVALID_CHAR, // [  6]
1449         INVALID_CHAR, // [  7]
1450         INVALID_CHAR, // [  8]
1451         INVALID_CHAR, // [  9]
1452         INVALID_CHAR, // [ 10]
1453         INVALID_CHAR, // [ 11]
1454         INVALID_CHAR, // [ 12]
1455         INVALID_CHAR, // [ 13]
1456         INVALID_CHAR, // [ 14]
1457         INVALID_CHAR, // [ 15]
1458         INVALID_CHAR, // [ 16]
1459         INVALID_CHAR, // [ 17]
1460         INVALID_CHAR, // [ 18]
1461         INVALID_CHAR, // [ 19]
1462         INVALID_CHAR, // [ 20]
1463         INVALID_CHAR, // [ 21]
1464         INVALID_CHAR, // [ 22]
1465         INVALID_CHAR, // [ 23]
1466         INVALID_CHAR, // [ 24]
1467         INVALID_CHAR, // [ 25]
1468         INVALID_CHAR, // [ 26]
1469         INVALID_CHAR, // [ 27]
1470         INVALID_CHAR, // [ 28]
1471         INVALID_CHAR, // [ 29]
1472         INVALID_CHAR, // [ 30]
1473         INVALID_CHAR, // [ 31]
1474         INVALID_CHAR, // [ 32]
1475         INVALID_CHAR, // [ 33]
1476         INVALID_CHAR, // [ 34]
1477         INVALID_CHAR, // [ 35]
1478         INVALID_CHAR, // [ 36]
1479         INVALID_CHAR, // [ 37]
1480         INVALID_CHAR, // [ 38]
1481         INVALID_CHAR, // [ 39]
1482         INVALID_CHAR, // [ 40]
1483         INVALID_CHAR, // [ 41]
1484         INVALID_CHAR, // [ 42]
1485         INVALID_CHAR, // [ 43]
1486         INVALID_CHAR, // [ 44]
1487         INVALID_CHAR, // [ 45]
1488         INVALID_CHAR, // [ 46]
1489         INVALID_CHAR, // [ 47]
1490         INVALID_CHAR, // [ 48]
1491         INVALID_CHAR, // [ 49]
1492         INVALID_CHAR, // [ 50]
1493         INVALID_CHAR, // [ 51]
1494         INVALID_CHAR, // [ 52]
1495         INVALID_CHAR, // [ 53]
1496         INVALID_CHAR, // [ 54]
1497         INVALID_CHAR, // [ 55]
1498         INVALID_CHAR, // [ 56]
1499         INVALID_CHAR, // [ 57]
1500         INVALID_CHAR, // [ 58]
1501         INVALID_CHAR, // [ 59]
1502         INVALID_CHAR, // [ 60]
1503         INVALID_CHAR, // [ 61]
1504         INVALID_CHAR, // [ 62]
1505         INVALID_CHAR, // [ 63]
1506         INVALID_CHAR, // [ 64]
1507         'T',          // [ 65] A -> T
1508         INVALID_CHAR, // [ 66]
1509         'G',          // [ 67] C -> G
1510         INVALID_CHAR, // [ 68]
1511         INVALID_CHAR, // [ 69]
1512         INVALID_CHAR, // [ 70]
1513         'C',          // [ 71] G -> C
1514         INVALID_CHAR, // [ 72]
1515         INVALID_CHAR, // [ 73]
1516         INVALID_CHAR, // [ 74]
1517         INVALID_CHAR, // [ 75]
1518         INVALID_CHAR, // [ 76]
1519         INVALID_CHAR, // [ 77]
1520         INVALID_CHAR, // [ 78]
1521         INVALID_CHAR, // [ 79]
1522         INVALID_CHAR, // [ 80]
1523         INVALID_CHAR, // [ 81]
1524         INVALID_CHAR, // [ 82]
1525         INVALID_CHAR, // [ 83]
1526         'A',          // [ 84] T -> A
1527         'A',          // [ 85] U -> A
1528         INVALID_CHAR, // [ 86]
1529         INVALID_CHAR, // [ 87]
1530         INVALID_CHAR, // [ 88]
1531         INVALID_CHAR, // [ 89]
1532         INVALID_CHAR, // [ 90]
1533         INVALID_CHAR, // [ 91]
1534         INVALID_CHAR, // [ 92]
1535         INVALID_CHAR, // [ 93]
1536         INVALID_CHAR, // [ 94]
1537         INVALID_CHAR, // [ 95]
1538         INVALID_CHAR, // [ 96]
1539         'T',          // [ 97] a -> T
1540         INVALID_CHAR, // [ 98]
1541         'G',          // [ 99] c -> G
1542         INVALID_CHAR, // [100]
1543         INVALID_CHAR, // [101]
1544         INVALID_CHAR, // [102]
1545         'C',          // [103] g -> C
1546         INVALID_CHAR, // [104]
1547         INVALID_CHAR, // [105]
1548         INVALID_CHAR, // [106]
1549         INVALID_CHAR, // [107]
1550         INVALID_CHAR, // [108]
1551         INVALID_CHAR, // [109]
1552         INVALID_CHAR, // [110]
1553         INVALID_CHAR, // [111]
1554         INVALID_CHAR, // [112]
1555         INVALID_CHAR, // [113]
1556         INVALID_CHAR, // [114]
1557         INVALID_CHAR, // [115]
1558         'A',          // [116] t -> A
1559         'A',          // [117] u -> A
1560         INVALID_CHAR, // [118]
1561         INVALID_CHAR, // [119]
1562         INVALID_CHAR, // [120]
1563         INVALID_CHAR, // [121]
1564         INVALID_CHAR, // [122]
1565         INVALID_CHAR, // [123]
1566         INVALID_CHAR, // [124]
1567         INVALID_CHAR, // [125]
1568         INVALID_CHAR, // [126]
1569         INVALID_CHAR, // [127]
1570         INVALID_CHAR, // [128]
1571         INVALID_CHAR, // [129]
1572         INVALID_CHAR, // [130]
1573         INVALID_CHAR, // [131]
1574         INVALID_CHAR, // [132]
1575         INVALID_CHAR, // [133]
1576         INVALID_CHAR, // [134]
1577         INVALID_CHAR, // [135]
1578         INVALID_CHAR, // [136]
1579         INVALID_CHAR, // [137]
1580         INVALID_CHAR, // [138]
1581         INVALID_CHAR, // [139]
1582         INVALID_CHAR, // [140]
1583         INVALID_CHAR, // [141]
1584         INVALID_CHAR, // [142]
1585         INVALID_CHAR, // [143]
1586         INVALID_CHAR, // [144]
1587         INVALID_CHAR, // [145]
1588         INVALID_CHAR, // [146]
1589         INVALID_CHAR, // [147]
1590         INVALID_CHAR, // [148]
1591         INVALID_CHAR, // [149]
1592         INVALID_CHAR, // [150]
1593         INVALID_CHAR, // [151]
1594         INVALID_CHAR, // [152]
1595         INVALID_CHAR, // [153]
1596         INVALID_CHAR, // [154]
1597         INVALID_CHAR, // [155]
1598         INVALID_CHAR, // [156]
1599         INVALID_CHAR, // [157]
1600         INVALID_CHAR, // [158]
1601         INVALID_CHAR, // [159]
1602         INVALID_CHAR, // [160]
1603         INVALID_CHAR, // [161]
1604         INVALID_CHAR, // [162]
1605         INVALID_CHAR, // [163]
1606         INVALID_CHAR, // [164]
1607         INVALID_CHAR, // [165]
1608         INVALID_CHAR, // [166]
1609         INVALID_CHAR, // [167]
1610         INVALID_CHAR, // [168]
1611         INVALID_CHAR, // [169]
1612         INVALID_CHAR, // [170]
1613         INVALID_CHAR, // [171]
1614         INVALID_CHAR, // [172]
1615         INVALID_CHAR, // [173]
1616         INVALID_CHAR, // [174]
1617         INVALID_CHAR, // [175]
1618         INVALID_CHAR, // [176]
1619         INVALID_CHAR, // [177]
1620         INVALID_CHAR, // [178]
1621         INVALID_CHAR, // [179]
1622         INVALID_CHAR, // [180]
1623         INVALID_CHAR, // [181]
1624         INVALID_CHAR, // [182]
1625         INVALID_CHAR, // [183]
1626         INVALID_CHAR, // [184]
1627         INVALID_CHAR, // [185]
1628         INVALID_CHAR, // [186]
1629         INVALID_CHAR, // [187]
1630         INVALID_CHAR, // [188]
1631         INVALID_CHAR, // [189]
1632         INVALID_CHAR, // [190]
1633         INVALID_CHAR, // [191]
1634         INVALID_CHAR, // [192]
1635         INVALID_CHAR, // [193]
1636         INVALID_CHAR, // [194]
1637         INVALID_CHAR, // [195]
1638         INVALID_CHAR, // [196]
1639         INVALID_CHAR, // [197]
1640         INVALID_CHAR, // [198]
1641         INVALID_CHAR, // [199]
1642         INVALID_CHAR, // [200]
1643         INVALID_CHAR, // [201]
1644         INVALID_CHAR, // [202]
1645         INVALID_CHAR, // [203]
1646         INVALID_CHAR, // [204]
1647         INVALID_CHAR, // [205]
1648         INVALID_CHAR, // [206]
1649         INVALID_CHAR, // [207]
1650         INVALID_CHAR, // [208]
1651         INVALID_CHAR, // [209]
1652         INVALID_CHAR, // [210]
1653         INVALID_CHAR, // [211]
1654         INVALID_CHAR, // [212]
1655         INVALID_CHAR, // [213]
1656         INVALID_CHAR, // [214]
1657         INVALID_CHAR, // [215]
1658         INVALID_CHAR, // [216]
1659         INVALID_CHAR, // [217]
1660         INVALID_CHAR, // [218]
1661         INVALID_CHAR, // [219]
1662         INVALID_CHAR, // [220]
1663         INVALID_CHAR, // [221]
1664         INVALID_CHAR, // [222]
1665         INVALID_CHAR, // [223]
1666         INVALID_CHAR, // [224]
1667         INVALID_CHAR, // [225]
1668         INVALID_CHAR, // [226]
1669         INVALID_CHAR, // [227]
1670         INVALID_CHAR, // [228]
1671         INVALID_CHAR, // [229]
1672         INVALID_CHAR, // [230]
1673         INVALID_CHAR, // [231]
1674         INVALID_CHAR, // [232]
1675         INVALID_CHAR, // [233]
1676         INVALID_CHAR, // [234]
1677         INVALID_CHAR, // [235]
1678         INVALID_CHAR, // [236]
1679         INVALID_CHAR, // [237]
1680         INVALID_CHAR, // [238]
1681         INVALID_CHAR, // [239]
1682         INVALID_CHAR, // [240]
1683         INVALID_CHAR, // [241]
1684         INVALID_CHAR, // [242]
1685         INVALID_CHAR, // [243]
1686         INVALID_CHAR, // [244]
1687         INVALID_CHAR, // [245]
1688         INVALID_CHAR, // [246]
1689         INVALID_CHAR, // [247]
1690         INVALID_CHAR, // [248]
1691         INVALID_CHAR, // [249]
1692         INVALID_CHAR, // [250]
1693         INVALID_CHAR, // [251]
1694         INVALID_CHAR, // [252]
1695         INVALID_CHAR, // [253]
1696         INVALID_CHAR, // [254]
1697         INVALID_CHAR, // [255]
1698 };
1699
1700 unsigned g_CharToCompLetter[256] =
1701         {
1702         INVALID_LETTER, // [  0]
1703         INVALID_LETTER, // [  1]
1704         INVALID_LETTER, // [  2]
1705         INVALID_LETTER, // [  3]
1706         INVALID_LETTER, // [  4]
1707         INVALID_LETTER, // [  5]
1708         INVALID_LETTER, // [  6]
1709         INVALID_LETTER, // [  7]
1710         INVALID_LETTER, // [  8]
1711         INVALID_LETTER, // [  9]
1712         INVALID_LETTER, // [ 10]
1713         INVALID_LETTER, // [ 11]
1714         INVALID_LETTER, // [ 12]
1715         INVALID_LETTER, // [ 13]
1716         INVALID_LETTER, // [ 14]
1717         INVALID_LETTER, // [ 15]
1718         INVALID_LETTER, // [ 16]
1719         INVALID_LETTER, // [ 17]
1720         INVALID_LETTER, // [ 18]
1721         INVALID_LETTER, // [ 19]
1722         INVALID_LETTER, // [ 20]
1723         INVALID_LETTER, // [ 21]
1724         INVALID_LETTER, // [ 22]
1725         INVALID_LETTER, // [ 23]
1726         INVALID_LETTER, // [ 24]
1727         INVALID_LETTER, // [ 25]
1728         INVALID_LETTER, // [ 26]
1729         INVALID_LETTER, // [ 27]
1730         INVALID_LETTER, // [ 28]
1731         INVALID_LETTER, // [ 29]
1732         INVALID_LETTER, // [ 30]
1733         INVALID_LETTER, // [ 31]
1734         INVALID_LETTER, // [ 32]
1735         INVALID_LETTER, // [ 33]
1736         INVALID_LETTER, // [ 34]
1737         INVALID_LETTER, // [ 35]
1738         INVALID_LETTER, // [ 36]
1739         INVALID_LETTER, // [ 37]
1740         INVALID_LETTER, // [ 38]
1741         INVALID_LETTER, // [ 39]
1742         INVALID_LETTER, // [ 40]
1743         INVALID_LETTER, // [ 41]
1744         INVALID_LETTER, // [ 42]
1745         INVALID_LETTER, // [ 43]
1746         INVALID_LETTER, // [ 44]
1747         INVALID_LETTER, // [ 45]
1748         INVALID_LETTER, // [ 46]
1749         INVALID_LETTER, // [ 47]
1750         INVALID_LETTER, // [ 48]
1751         INVALID_LETTER, // [ 49]
1752         INVALID_LETTER, // [ 50]
1753         INVALID_LETTER, // [ 51]
1754         INVALID_LETTER, // [ 52]
1755         INVALID_LETTER, // [ 53]
1756         INVALID_LETTER, // [ 54]
1757         INVALID_LETTER, // [ 55]
1758         INVALID_LETTER, // [ 56]
1759         INVALID_LETTER, // [ 57]
1760         INVALID_LETTER, // [ 58]
1761         INVALID_LETTER, // [ 59]
1762         INVALID_LETTER, // [ 60]
1763         INVALID_LETTER, // [ 61]
1764         INVALID_LETTER, // [ 62]
1765         INVALID_LETTER, // [ 63]
1766         INVALID_LETTER, // [ 64]
1767         3,              // [ 65] A -> T
1768         INVALID_LETTER, // [ 66]
1769         2,              // [ 67] C -> G
1770         INVALID_LETTER, // [ 68]
1771         INVALID_LETTER, // [ 69]
1772         INVALID_LETTER, // [ 70]
1773         1,              // [ 71] G -> C
1774         INVALID_LETTER, // [ 72]
1775         INVALID_LETTER, // [ 73]
1776         INVALID_LETTER, // [ 74]
1777         INVALID_LETTER, // [ 75]
1778         INVALID_LETTER, // [ 76]
1779         INVALID_LETTER, // [ 77]
1780         INVALID_LETTER, // [ 78]
1781         INVALID_LETTER, // [ 79]
1782         INVALID_LETTER, // [ 80]
1783         INVALID_LETTER, // [ 81]
1784         INVALID_LETTER, // [ 82]
1785         INVALID_LETTER, // [ 83]
1786         0,              // [ 84] T -> A
1787         0,              // [ 85] U -> A
1788         INVALID_LETTER, // [ 86]
1789         INVALID_LETTER, // [ 87]
1790         INVALID_LETTER, // [ 88]
1791         INVALID_LETTER, // [ 89]
1792         INVALID_LETTER, // [ 90]
1793         INVALID_LETTER, // [ 91]
1794         INVALID_LETTER, // [ 92]
1795         INVALID_LETTER, // [ 93]
1796         INVALID_LETTER, // [ 94]
1797         INVALID_LETTER, // [ 95]
1798         INVALID_LETTER, // [ 96]
1799         3,              // [ 97] a -> T
1800         INVALID_LETTER, // [ 98]
1801         2,              // [ 99] c -> G
1802         INVALID_LETTER, // [100]
1803         INVALID_LETTER, // [101]
1804         INVALID_LETTER, // [102]
1805         1,              // [103] g -> C
1806         INVALID_LETTER, // [104]
1807         INVALID_LETTER, // [105]
1808         INVALID_LETTER, // [106]
1809         INVALID_LETTER, // [107]
1810         INVALID_LETTER, // [108]
1811         INVALID_LETTER, // [109]
1812         INVALID_LETTER, // [110]
1813         INVALID_LETTER, // [111]
1814         INVALID_LETTER, // [112]
1815         INVALID_LETTER, // [113]
1816         INVALID_LETTER, // [114]
1817         INVALID_LETTER, // [115]
1818         0,              // [116] t -> A
1819         0,              // [117] u -> A
1820         INVALID_LETTER, // [118]
1821         INVALID_LETTER, // [119]
1822         INVALID_LETTER, // [120]
1823         INVALID_LETTER, // [121]
1824         INVALID_LETTER, // [122]
1825         INVALID_LETTER, // [123]
1826         INVALID_LETTER, // [124]
1827         INVALID_LETTER, // [125]
1828         INVALID_LETTER, // [126]
1829         INVALID_LETTER, // [127]
1830         INVALID_LETTER, // [128]
1831         INVALID_LETTER, // [129]
1832         INVALID_LETTER, // [130]
1833         INVALID_LETTER, // [131]
1834         INVALID_LETTER, // [132]
1835         INVALID_LETTER, // [133]
1836         INVALID_LETTER, // [134]
1837         INVALID_LETTER, // [135]
1838         INVALID_LETTER, // [136]
1839         INVALID_LETTER, // [137]
1840         INVALID_LETTER, // [138]
1841         INVALID_LETTER, // [139]
1842         INVALID_LETTER, // [140]
1843         INVALID_LETTER, // [141]
1844         INVALID_LETTER, // [142]
1845         INVALID_LETTER, // [143]
1846         INVALID_LETTER, // [144]
1847         INVALID_LETTER, // [145]
1848         INVALID_LETTER, // [146]
1849         INVALID_LETTER, // [147]
1850         INVALID_LETTER, // [148]
1851         INVALID_LETTER, // [149]
1852         INVALID_LETTER, // [150]
1853         INVALID_LETTER, // [151]
1854         INVALID_LETTER, // [152]
1855         INVALID_LETTER, // [153]
1856         INVALID_LETTER, // [154]
1857         INVALID_LETTER, // [155]
1858         INVALID_LETTER, // [156]
1859         INVALID_LETTER, // [157]
1860         INVALID_LETTER, // [158]
1861         INVALID_LETTER, // [159]
1862         INVALID_LETTER, // [160]
1863         INVALID_LETTER, // [161]
1864         INVALID_LETTER, // [162]
1865         INVALID_LETTER, // [163]
1866         INVALID_LETTER, // [164]
1867         INVALID_LETTER, // [165]
1868         INVALID_LETTER, // [166]
1869         INVALID_LETTER, // [167]
1870         INVALID_LETTER, // [168]
1871         INVALID_LETTER, // [169]
1872         INVALID_LETTER, // [170]
1873         INVALID_LETTER, // [171]
1874         INVALID_LETTER, // [172]
1875         INVALID_LETTER, // [173]
1876         INVALID_LETTER, // [174]
1877         INVALID_LETTER, // [175]
1878         INVALID_LETTER, // [176]
1879         INVALID_LETTER, // [177]
1880         INVALID_LETTER, // [178]
1881         INVALID_LETTER, // [179]
1882         INVALID_LETTER, // [180]
1883         INVALID_LETTER, // [181]
1884         INVALID_LETTER, // [182]
1885         INVALID_LETTER, // [183]
1886         INVALID_LETTER, // [184]
1887         INVALID_LETTER, // [185]
1888         INVALID_LETTER, // [186]
1889         INVALID_LETTER, // [187]
1890         INVALID_LETTER, // [188]
1891         INVALID_LETTER, // [189]
1892         INVALID_LETTER, // [190]
1893         INVALID_LETTER, // [191]
1894         INVALID_LETTER, // [192]
1895         INVALID_LETTER, // [193]
1896         INVALID_LETTER, // [194]
1897         INVALID_LETTER, // [195]
1898         INVALID_LETTER, // [196]
1899         INVALID_LETTER, // [197]
1900         INVALID_LETTER, // [198]
1901         INVALID_LETTER, // [199]
1902         INVALID_LETTER, // [200]
1903         INVALID_LETTER, // [201]
1904         INVALID_LETTER, // [202]
1905         INVALID_LETTER, // [203]
1906         INVALID_LETTER, // [204]
1907         INVALID_LETTER, // [205]
1908         INVALID_LETTER, // [206]
1909         INVALID_LETTER, // [207]
1910         INVALID_LETTER, // [208]
1911         INVALID_LETTER, // [209]
1912         INVALID_LETTER, // [210]
1913         INVALID_LETTER, // [211]
1914         INVALID_LETTER, // [212]
1915         INVALID_LETTER, // [213]
1916         INVALID_LETTER, // [214]
1917         INVALID_LETTER, // [215]
1918         INVALID_LETTER, // [216]
1919         INVALID_LETTER, // [217]
1920         INVALID_LETTER, // [218]
1921         INVALID_LETTER, // [219]
1922         INVALID_LETTER, // [220]
1923         INVALID_LETTER, // [221]
1924         INVALID_LETTER, // [222]
1925         INVALID_LETTER, // [223]
1926         INVALID_LETTER, // [224]
1927         INVALID_LETTER, // [225]
1928         INVALID_LETTER, // [226]
1929         INVALID_LETTER, // [227]
1930         INVALID_LETTER, // [228]
1931         INVALID_LETTER, // [229]
1932         INVALID_LETTER, // [230]
1933         INVALID_LETTER, // [231]
1934         INVALID_LETTER, // [232]
1935         INVALID_LETTER, // [233]
1936         INVALID_LETTER, // [234]
1937         INVALID_LETTER, // [235]
1938         INVALID_LETTER, // [236]
1939         INVALID_LETTER, // [237]
1940         INVALID_LETTER, // [238]
1941         INVALID_LETTER, // [239]
1942         INVALID_LETTER, // [240]
1943         INVALID_LETTER, // [241]
1944         INVALID_LETTER, // [242]
1945         INVALID_LETTER, // [243]
1946         INVALID_LETTER, // [244]
1947         INVALID_LETTER, // [245]
1948         INVALID_LETTER, // [246]
1949         INVALID_LETTER, // [247]
1950         INVALID_LETTER, // [248]
1951         INVALID_LETTER, // [249]
1952         INVALID_LETTER, // [250]
1953         INVALID_LETTER, // [251]
1954         INVALID_LETTER, // [252]
1955         INVALID_LETTER, // [253]
1956         INVALID_LETTER, // [254]
1957         INVALID_LETTER, // [255]
1958 };
1959
1960 bool g_IsAminoChar[256] =
1961         {
1962         false, // [  0] 0x00
1963         false, // [  1] 0x01
1964         false, // [  2] 0x02
1965         false, // [  3] 0x03
1966         false, // [  4] 0x04
1967         false, // [  5] 0x05
1968         false, // [  6] 0x06
1969         false, // [  7] 0x07
1970         false, // [  8] 0x08
1971         false, // [  9] 0x09
1972         false, // [ 10] 0x0a
1973         false, // [ 11] 0x0b
1974         false, // [ 12] 0x0c
1975         false, // [ 13] 0x0d
1976         false, // [ 14] 0x0e
1977         false, // [ 15] 0x0f
1978         false, // [ 16] 0x10
1979         false, // [ 17] 0x11
1980         false, // [ 18] 0x12
1981         false, // [ 19] 0x13
1982         false, // [ 20] 0x14
1983         false, // [ 21] 0x15
1984         false, // [ 22] 0x16
1985         false, // [ 23] 0x17
1986         false, // [ 24] 0x18
1987         false, // [ 25] 0x19
1988         false, // [ 26] 0x1a
1989         false, // [ 27] 0x1b
1990         false, // [ 28] 0x1c
1991         false, // [ 29] 0x1d
1992         false, // [ 30] 0x1e
1993         false, // [ 31] 0x1f
1994         false, // [ 32] ' '
1995         false, // [ 33] '!'
1996         false, // [ 34] '"'
1997         false, // [ 35] '#'
1998         false, // [ 36] '$'
1999         false, // [ 37] '%'
2000         false, // [ 38] '&'
2001         false, // [ 39] '''
2002         false, // [ 40] '('
2003         false, // [ 41] ')'
2004         true,  // [ 42] '*' = STP
2005         false, // [ 43] '+'
2006         false, // [ 44] ','
2007         false, // [ 45] '-'
2008         false, // [ 46] '.'
2009         false, // [ 47] '/'
2010         false, // [ 48] '0'
2011         false, // [ 49] '1'
2012         false, // [ 50] '2'
2013         false, // [ 51] '3'
2014         false, // [ 52] '4'
2015         false, // [ 53] '5'
2016         false, // [ 54] '6'
2017         false, // [ 55] '7'
2018         false, // [ 56] '8'
2019         false, // [ 57] '9'
2020         false, // [ 58] ':'
2021         false, // [ 59] ';'
2022         false, // [ 60] '<'
2023         false, // [ 61] '='
2024         false, // [ 62] '>'
2025         false, // [ 63] '?'
2026         false, // [ 64] '@'
2027         true,  // [ 65] 'A' = Ala
2028         false, // [ 66] 'B'
2029         true,  // [ 67] 'C' = Cys
2030         true,  // [ 68] 'D' = Asp
2031         true,  // [ 69] 'E' = Glu
2032         true,  // [ 70] 'F' = Phe
2033         true,  // [ 71] 'G' = Gly
2034         true,  // [ 72] 'H' = His
2035         true,  // [ 73] 'I' = Ile
2036         false, // [ 74] 'J'
2037         true,  // [ 75] 'K' = Lys
2038         true,  // [ 76] 'L' = Leu
2039         true,  // [ 77] 'M' = Met
2040         true,  // [ 78] 'N' = Asn
2041         false, // [ 79] 'O'
2042         true,  // [ 80] 'P' = Pro
2043         true,  // [ 81] 'Q' = Gln
2044         true,  // [ 82] 'R' = Arg
2045         true,  // [ 83] 'S' = Ser
2046         true,  // [ 84] 'T' = Thr
2047         false, // [ 85] 'U'
2048         true,  // [ 86] 'V' = Val
2049         true,  // [ 87] 'W' = Trp
2050         false, // [ 88] 'X'
2051         true,  // [ 89] 'Y' = Tyr
2052         false, // [ 90] 'Z'
2053         false, // [ 91] '['
2054         false, // [ 92] '\'
2055         false, // [ 93] ']'
2056         false, // [ 94] '^'
2057         false, // [ 95] '_'
2058         false, // [ 96] '`'
2059         true,  // [ 97] 'A' = Ala
2060         false, // [ 98] 'B'
2061         true,  // [ 99] 'C' = Cys
2062         true,  // [100] 'D' = Asp
2063         true,  // [101] 'E' = Glu
2064         true,  // [102] 'F' = Phe
2065         true,  // [103] 'G' = Gly
2066         true,  // [104] 'H' = His
2067         true,  // [105] 'I' = Ile
2068         false, // [106] 'J'
2069         true,  // [107] 'K' = Lys
2070         true,  // [108] 'L' = Leu
2071         true,  // [109] 'M' = Met
2072         true,  // [110] 'N' = Asn
2073         false, // [111] 'O'
2074         true,  // [112] 'P' = Pro
2075         true,  // [113] 'Q' = Gln
2076         true,  // [114] 'R' = Arg
2077         true,  // [115] 'S' = Ser
2078         true,  // [116] 'T' = Thr
2079         false, // [117] 'U'
2080         true,  // [118] 'V' = Val
2081         true,  // [119] 'W' = Trp
2082         false, // [120] 'X'
2083         true,  // [121] 'Y' = Tyr
2084         false, // [122] 'Z'
2085         false, // [123] '{'
2086         false, // [124] '|'
2087         false, // [125] '}'
2088         false, // [126] '~'
2089         false, // [127] 0x7f
2090         false, // [128] 0x80
2091         false, // [129] 0x81
2092         false, // [130] 0x82
2093         false, // [131] 0x83
2094         false, // [132] 0x84
2095         false, // [133] 0x85
2096         false, // [134] 0x86
2097         false, // [135] 0x87
2098         false, // [136] 0x88
2099         false, // [137] 0x89
2100         false, // [138] 0x8a
2101         false, // [139] 0x8b
2102         false, // [140] 0x8c
2103         false, // [141] 0x8d
2104         false, // [142] 0x8e
2105         false, // [143] 0x8f
2106         false, // [144] 0x90
2107         false, // [145] 0x91
2108         false, // [146] 0x92
2109         false, // [147] 0x93
2110         false, // [148] 0x94
2111         false, // [149] 0x95
2112         false, // [150] 0x96
2113         false, // [151] 0x97
2114         false, // [152] 0x98
2115         false, // [153] 0x99
2116         false, // [154] 0x9a
2117         false, // [155] 0x9b
2118         false, // [156] 0x9c
2119         false, // [157] 0x9d
2120         false, // [158] 0x9e
2121         false, // [159] 0x9f
2122         false, // [160] 0xa0
2123         false, // [161] 0xa1
2124         false, // [162] 0xa2
2125         false, // [163] 0xa3
2126         false, // [164] 0xa4
2127         false, // [165] 0xa5
2128         false, // [166] 0xa6
2129         false, // [167] 0xa7
2130         false, // [168] 0xa8
2131         false, // [169] 0xa9
2132         false, // [170] 0xaa
2133         false, // [171] 0xab
2134         false, // [172] 0xac
2135         false, // [173] 0xad
2136         false, // [174] 0xae
2137         false, // [175] 0xaf
2138         false, // [176] 0xb0
2139         false, // [177] 0xb1
2140         false, // [178] 0xb2
2141         false, // [179] 0xb3
2142         false, // [180] 0xb4
2143         false, // [181] 0xb5
2144         false, // [182] 0xb6
2145         false, // [183] 0xb7
2146         false, // [184] 0xb8
2147         false, // [185] 0xb9
2148         false, // [186] 0xba
2149         false, // [187] 0xbb
2150         false, // [188] 0xbc
2151         false, // [189] 0xbd
2152         false, // [190] 0xbe
2153         false, // [191] 0xbf
2154         false, // [192] 0xc0
2155         false, // [193] 0xc1
2156         false, // [194] 0xc2
2157         false, // [195] 0xc3
2158         false, // [196] 0xc4
2159         false, // [197] 0xc5
2160         false, // [198] 0xc6
2161         false, // [199] 0xc7
2162         false, // [200] 0xc8
2163         false, // [201] 0xc9
2164         false, // [202] 0xca
2165         false, // [203] 0xcb
2166         false, // [204] 0xcc
2167         false, // [205] 0xcd
2168         false, // [206] 0xce
2169         false, // [207] 0xcf
2170         false, // [208] 0xd0
2171         false, // [209] 0xd1
2172         false, // [210] 0xd2
2173         false, // [211] 0xd3
2174         false, // [212] 0xd4
2175         false, // [213] 0xd5
2176         false, // [214] 0xd6
2177         false, // [215] 0xd7
2178         false, // [216] 0xd8
2179         false, // [217] 0xd9
2180         false, // [218] 0xda
2181         false, // [219] 0xdb
2182         false, // [220] 0xdc
2183         false, // [221] 0xdd
2184         false, // [222] 0xde
2185         false, // [223] 0xdf
2186         false, // [224] 0xe0
2187         false, // [225] 0xe1
2188         false, // [226] 0xe2
2189         false, // [227] 0xe3
2190         false, // [228] 0xe4
2191         false, // [229] 0xe5
2192         false, // [230] 0xe6
2193         false, // [231] 0xe7
2194         false, // [232] 0xe8
2195         false, // [233] 0xe9
2196         false, // [234] 0xea
2197         false, // [235] 0xeb
2198         false, // [236] 0xec
2199         false, // [237] 0xed
2200         false, // [238] 0xee
2201         false, // [239] 0xef
2202         false, // [240] 0xf0
2203         false, // [241] 0xf1
2204         false, // [242] 0xf2
2205         false, // [243] 0xf3
2206         false, // [244] 0xf4
2207         false, // [245] 0xf5
2208         false, // [246] 0xf6
2209         false, // [247] 0xf7
2210         false, // [248] 0xf8
2211         false, // [249] 0xf9
2212         false, // [250] 0xfa
2213         false, // [251] 0xfb
2214         false, // [252] 0xfc
2215         false, // [253] 0xfd
2216         false, // [254] 0xfe
2217         false, // [255] 0xff
2218         };
2219
2220 bool g_IsNucleoChar[256] =
2221         {
2222         false, // [  0] 0x00
2223         false, // [  1] 0x01
2224         false, // [  2] 0x02
2225         false, // [  3] 0x03
2226         false, // [  4] 0x04
2227         false, // [  5] 0x05
2228         false, // [  6] 0x06
2229         false, // [  7] 0x07
2230         false, // [  8] 0x08
2231         false, // [  9] 0x09
2232         false, // [ 10] 0x0a
2233         false, // [ 11] 0x0b
2234         false, // [ 12] 0x0c
2235         false, // [ 13] 0x0d
2236         false, // [ 14] 0x0e
2237         false, // [ 15] 0x0f
2238         false, // [ 16] 0x10
2239         false, // [ 17] 0x11
2240         false, // [ 18] 0x12
2241         false, // [ 19] 0x13
2242         false, // [ 20] 0x14
2243         false, // [ 21] 0x15
2244         false, // [ 22] 0x16
2245         false, // [ 23] 0x17
2246         false, // [ 24] 0x18
2247         false, // [ 25] 0x19
2248         false, // [ 26] 0x1a
2249         false, // [ 27] 0x1b
2250         false, // [ 28] 0x1c
2251         false, // [ 29] 0x1d
2252         false, // [ 30] 0x1e
2253         false, // [ 31] 0x1f
2254         false, // [ 32] ' '
2255         false, // [ 33] '!'
2256         false, // [ 34] '"'
2257         false, // [ 35] '#'
2258         false, // [ 36] '$'
2259         false, // [ 37] '%'
2260         false, // [ 38] '&'
2261         false, // [ 39] '''
2262         false, // [ 40] '('
2263         false, // [ 41] ')'
2264         false, // [ 42] '*'
2265         false, // [ 43] '+'
2266         false, // [ 44] ','
2267         false, // [ 45] '-'
2268         false, // [ 46] '.'
2269         false, // [ 47] '/'
2270         false, // [ 48] '0'
2271         false, // [ 49] '1'
2272         false, // [ 50] '2'
2273         false, // [ 51] '3'
2274         false, // [ 52] '4'
2275         false, // [ 53] '5'
2276         false, // [ 54] '6'
2277         false, // [ 55] '7'
2278         false, // [ 56] '8'
2279         false, // [ 57] '9'
2280         false, // [ 58] ':'
2281         false, // [ 59] ';'
2282         false, // [ 60] '<'
2283         false, // [ 61] '='
2284         false, // [ 62] '>'
2285         false, // [ 63] '?'
2286         false, // [ 64] '@'
2287         true,  // [ 65] 'A' (Nucleotide)
2288         false, // [ 66] 'B'
2289         true,  // [ 67] 'C' (Nucleotide)
2290         false, // [ 68] 'D'
2291         false, // [ 69] 'E'
2292         false, // [ 70] 'F'
2293         true,  // [ 71] 'G' (Nucleotide)
2294         false, // [ 72] 'H'
2295         false, // [ 73] 'I'
2296         false, // [ 74] 'J'
2297         false, // [ 75] 'K'
2298         false, // [ 76] 'L'
2299         false, // [ 77] 'M'
2300         true,  // [ 78] 'N' (Nucleotide)
2301         false, // [ 79] 'O'
2302         false, // [ 80] 'P'
2303         false, // [ 81] 'Q'
2304         false, // [ 82] 'R'
2305         false, // [ 83] 'S'
2306         true,  // [ 84] 'T' (Nucleotide)
2307         true,  // [ 85] 'U' (Nucleotide)
2308         false, // [ 86] 'V'
2309         false, // [ 87] 'W'
2310         false, // [ 88] 'X'
2311         false, // [ 89] 'Y'
2312         false, // [ 90] 'Z'
2313         false, // [ 91] '['
2314         false, // [ 92] '\'
2315         false, // [ 93] ']'
2316         false, // [ 94] '^'
2317         false, // [ 95] '_'
2318         false, // [ 96] '`'
2319         true,  // [ 97] 'A' (Nucleotide)
2320         false, // [ 98] 'B'
2321         true,  // [ 99] 'C' (Nucleotide)
2322         false, // [100] 'D'
2323         false, // [101] 'E'
2324         false, // [102] 'F'
2325         true,  // [103] 'G' (Nucleotide)
2326         false, // [104] 'H'
2327         false, // [105] 'I'
2328         false, // [106] 'J'
2329         false, // [107] 'K'
2330         false, // [108] 'L'
2331         false, // [109] 'M'
2332         true,  // [110] 'N' (Nucleotide)
2333         false, // [111] 'O'
2334         false, // [112] 'P'
2335         false, // [113] 'Q'
2336         false, // [114] 'R'
2337         false, // [115] 'S'
2338         true,  // [116] 'T' (Nucleotide)
2339         true,  // [117] 'U' (Nucleotide)
2340         false, // [118] 'V'
2341         false, // [119] 'W'
2342         false, // [120] 'X'
2343         false, // [121] 'Y'
2344         false, // [122] 'Z'
2345         false, // [123] '{'
2346         false, // [124] '|'
2347         false, // [125] '}'
2348         false, // [126] '~'
2349         false, // [127] 0x7f
2350         false, // [128] 0x80
2351         false, // [129] 0x81
2352         false, // [130] 0x82
2353         false, // [131] 0x83
2354         false, // [132] 0x84
2355         false, // [133] 0x85
2356         false, // [134] 0x86
2357         false, // [135] 0x87
2358         false, // [136] 0x88
2359         false, // [137] 0x89
2360         false, // [138] 0x8a
2361         false, // [139] 0x8b
2362         false, // [140] 0x8c
2363         false, // [141] 0x8d
2364         false, // [142] 0x8e
2365         false, // [143] 0x8f
2366         false, // [144] 0x90
2367         false, // [145] 0x91
2368         false, // [146] 0x92
2369         false, // [147] 0x93
2370         false, // [148] 0x94
2371         false, // [149] 0x95
2372         false, // [150] 0x96
2373         false, // [151] 0x97
2374         false, // [152] 0x98
2375         false, // [153] 0x99
2376         false, // [154] 0x9a
2377         false, // [155] 0x9b
2378         false, // [156] 0x9c
2379         false, // [157] 0x9d
2380         false, // [158] 0x9e
2381         false, // [159] 0x9f
2382         false, // [160] 0xa0
2383         false, // [161] 0xa1
2384         false, // [162] 0xa2
2385         false, // [163] 0xa3
2386         false, // [164] 0xa4
2387         false, // [165] 0xa5
2388         false, // [166] 0xa6
2389         false, // [167] 0xa7
2390         false, // [168] 0xa8
2391         false, // [169] 0xa9
2392         false, // [170] 0xaa
2393         false, // [171] 0xab
2394         false, // [172] 0xac
2395         false, // [173] 0xad
2396         false, // [174] 0xae
2397         false, // [175] 0xaf
2398         false, // [176] 0xb0
2399         false, // [177] 0xb1
2400         false, // [178] 0xb2
2401         false, // [179] 0xb3
2402         false, // [180] 0xb4
2403         false, // [181] 0xb5
2404         false, // [182] 0xb6
2405         false, // [183] 0xb7
2406         false, // [184] 0xb8
2407         false, // [185] 0xb9
2408         false, // [186] 0xba
2409         false, // [187] 0xbb
2410         false, // [188] 0xbc
2411         false, // [189] 0xbd
2412         false, // [190] 0xbe
2413         false, // [191] 0xbf
2414         false, // [192] 0xc0
2415         false, // [193] 0xc1
2416         false, // [194] 0xc2
2417         false, // [195] 0xc3
2418         false, // [196] 0xc4
2419         false, // [197] 0xc5
2420         false, // [198] 0xc6
2421         false, // [199] 0xc7
2422         false, // [200] 0xc8
2423         false, // [201] 0xc9
2424         false, // [202] 0xca
2425         false, // [203] 0xcb
2426         false, // [204] 0xcc
2427         false, // [205] 0xcd
2428         false, // [206] 0xce
2429         false, // [207] 0xcf
2430         false, // [208] 0xd0
2431         false, // [209] 0xd1
2432         false, // [210] 0xd2
2433         false, // [211] 0xd3
2434         false, // [212] 0xd4
2435         false, // [213] 0xd5
2436         false, // [214] 0xd6
2437         false, // [215] 0xd7
2438         false, // [216] 0xd8
2439         false, // [217] 0xd9
2440         false, // [218] 0xda
2441         false, // [219] 0xdb
2442         false, // [220] 0xdc
2443         false, // [221] 0xdd
2444         false, // [222] 0xde
2445         false, // [223] 0xdf
2446         false, // [224] 0xe0
2447         false, // [225] 0xe1
2448         false, // [226] 0xe2
2449         false, // [227] 0xe3
2450         false, // [228] 0xe4
2451         false, // [229] 0xe5
2452         false, // [230] 0xe6
2453         false, // [231] 0xe7
2454         false, // [232] 0xe8
2455         false, // [233] 0xe9
2456         false, // [234] 0xea
2457         false, // [235] 0xeb
2458         false, // [236] 0xec
2459         false, // [237] 0xed
2460         false, // [238] 0xee
2461         false, // [239] 0xef
2462         false, // [240] 0xf0
2463         false, // [241] 0xf1
2464         false, // [242] 0xf2
2465         false, // [243] 0xf3
2466         false, // [244] 0xf4
2467         false, // [245] 0xf5
2468         false, // [246] 0xf6
2469         false, // [247] 0xf7
2470         false, // [248] 0xf8
2471         false, // [249] 0xf9
2472         false, // [250] 0xfa
2473         false, // [251] 0xfb
2474         false, // [252] 0xfc
2475         false, // [253] 0xfd
2476         false, // [254] 0xfe
2477         false, // [255] 0xff
2478         };
2479
2480 bool g_IsACGTU[256] =
2481         {
2482         false, // [  0] 0x00
2483         false, // [  1] 0x01
2484         false, // [  2] 0x02
2485         false, // [  3] 0x03
2486         false, // [  4] 0x04
2487         false, // [  5] 0x05
2488         false, // [  6] 0x06
2489         false, // [  7] 0x07
2490         false, // [  8] 0x08
2491         false, // [  9] 0x09
2492         false, // [ 10] 0x0a
2493         false, // [ 11] 0x0b
2494         false, // [ 12] 0x0c
2495         false, // [ 13] 0x0d
2496         false, // [ 14] 0x0e
2497         false, // [ 15] 0x0f
2498         false, // [ 16] 0x10
2499         false, // [ 17] 0x11
2500         false, // [ 18] 0x12
2501         false, // [ 19] 0x13
2502         false, // [ 20] 0x14
2503         false, // [ 21] 0x15
2504         false, // [ 22] 0x16
2505         false, // [ 23] 0x17
2506         false, // [ 24] 0x18
2507         false, // [ 25] 0x19
2508         false, // [ 26] 0x1a
2509         false, // [ 27] 0x1b
2510         false, // [ 28] 0x1c
2511         false, // [ 29] 0x1d
2512         false, // [ 30] 0x1e
2513         false, // [ 31] 0x1f
2514         false, // [ 32] ' '
2515         false, // [ 33] '!'
2516         false, // [ 34] '"'
2517         false, // [ 35] '#'
2518         false, // [ 36] '$'
2519         false, // [ 37] '%'
2520         false, // [ 38] '&'
2521         false, // [ 39] '''
2522         false, // [ 40] '('
2523         false, // [ 41] ')'
2524         false, // [ 42] '*'
2525         false, // [ 43] '+'
2526         false, // [ 44] ','
2527         false, // [ 45] '-'
2528         false, // [ 46] '.'
2529         false, // [ 47] '/'
2530         false, // [ 48] '0'
2531         false, // [ 49] '1'
2532         false, // [ 50] '2'
2533         false, // [ 51] '3'
2534         false, // [ 52] '4'
2535         false, // [ 53] '5'
2536         false, // [ 54] '6'
2537         false, // [ 55] '7'
2538         false, // [ 56] '8'
2539         false, // [ 57] '9'
2540         false, // [ 58] ':'
2541         false, // [ 59] ';'
2542         false, // [ 60] '<'
2543         false, // [ 61] '='
2544         false, // [ 62] '>'
2545         false, // [ 63] '?'
2546         false, // [ 64] '@'
2547         true,  // [ 65] 'A' (ACGT)
2548         false, // [ 66] 'B'
2549         true,  // [ 67] 'C' (ACGT)
2550         false, // [ 68] 'D'
2551         false, // [ 69] 'E'
2552         false, // [ 70] 'F'
2553         true,  // [ 71] 'G' (ACGT)
2554         false, // [ 72] 'H'
2555         false, // [ 73] 'I'
2556         false, // [ 74] 'J'
2557         false, // [ 75] 'K'
2558         false, // [ 76] 'L'
2559         false, // [ 77] 'M'
2560         false, // [ 78] 'N'
2561         false, // [ 79] 'O'
2562         false, // [ 80] 'P'
2563         false, // [ 81] 'Q'
2564         false, // [ 82] 'R'
2565         false, // [ 83] 'S'
2566         true,  // [ 84] 'T' (ACGT)
2567         true,  // [ 85] 'U' (ACGT)
2568         false, // [ 86] 'V'
2569         false, // [ 87] 'W'
2570         false, // [ 88] 'X'
2571         false, // [ 89] 'Y'
2572         false, // [ 90] 'Z'
2573         false, // [ 91] '['
2574         false, // [ 92] '\'
2575         false, // [ 93] ']'
2576         false, // [ 94] '^'
2577         false, // [ 95] '_'
2578         false, // [ 96] '`'
2579         true,  // [ 97] 'A' (ACGT)
2580         false, // [ 98] 'B'
2581         true,  // [ 99] 'C' (ACGT)
2582         false, // [100] 'D'
2583         false, // [101] 'E'
2584         false, // [102] 'F'
2585         true,  // [103] 'G' (ACGT)
2586         false, // [104] 'H'
2587         false, // [105] 'I'
2588         false, // [106] 'J'
2589         false, // [107] 'K'
2590         false, // [108] 'L'
2591         false, // [109] 'M'
2592         false, // [110] 'N'
2593         false, // [111] 'O'
2594         false, // [112] 'P'
2595         false, // [113] 'Q'
2596         false, // [114] 'R'
2597         false, // [115] 'S'
2598         true,  // [116] 'T' (ACGT)
2599         true,  // [117] 'U' (ACGT)
2600         false, // [118] 'V'
2601         false, // [119] 'W'
2602         false, // [120] 'X'
2603         false, // [121] 'Y'
2604         false, // [122] 'Z'
2605         false, // [123] '{'
2606         false, // [124] '|'
2607         false, // [125] '}'
2608         false, // [126] '~'
2609         false, // [127] 0x7f
2610         false, // [128] 0x80
2611         false, // [129] 0x81
2612         false, // [130] 0x82
2613         false, // [131] 0x83
2614         false, // [132] 0x84
2615         false, // [133] 0x85
2616         false, // [134] 0x86
2617         false, // [135] 0x87
2618         false, // [136] 0x88
2619         false, // [137] 0x89
2620         false, // [138] 0x8a
2621         false, // [139] 0x8b
2622         false, // [140] 0x8c
2623         false, // [141] 0x8d
2624         false, // [142] 0x8e
2625         false, // [143] 0x8f
2626         false, // [144] 0x90
2627         false, // [145] 0x91
2628         false, // [146] 0x92
2629         false, // [147] 0x93
2630         false, // [148] 0x94
2631         false, // [149] 0x95
2632         false, // [150] 0x96
2633         false, // [151] 0x97
2634         false, // [152] 0x98
2635         false, // [153] 0x99
2636         false, // [154] 0x9a
2637         false, // [155] 0x9b
2638         false, // [156] 0x9c
2639         false, // [157] 0x9d
2640         false, // [158] 0x9e
2641         false, // [159] 0x9f
2642         false, // [160] 0xa0
2643         false, // [161] 0xa1
2644         false, // [162] 0xa2
2645         false, // [163] 0xa3
2646         false, // [164] 0xa4
2647         false, // [165] 0xa5
2648         false, // [166] 0xa6
2649         false, // [167] 0xa7
2650         false, // [168] 0xa8
2651         false, // [169] 0xa9
2652         false, // [170] 0xaa
2653         false, // [171] 0xab
2654         false, // [172] 0xac
2655         false, // [173] 0xad
2656         false, // [174] 0xae
2657         false, // [175] 0xaf
2658         false, // [176] 0xb0
2659         false, // [177] 0xb1
2660         false, // [178] 0xb2
2661         false, // [179] 0xb3
2662         false, // [180] 0xb4
2663         false, // [181] 0xb5
2664         false, // [182] 0xb6
2665         false, // [183] 0xb7
2666         false, // [184] 0xb8
2667         false, // [185] 0xb9
2668         false, // [186] 0xba
2669         false, // [187] 0xbb
2670         false, // [188] 0xbc
2671         false, // [189] 0xbd
2672         false, // [190] 0xbe
2673         false, // [191] 0xbf
2674         false, // [192] 0xc0
2675         false, // [193] 0xc1
2676         false, // [194] 0xc2
2677         false, // [195] 0xc3
2678         false, // [196] 0xc4
2679         false, // [197] 0xc5
2680         false, // [198] 0xc6
2681         false, // [199] 0xc7
2682         false, // [200] 0xc8
2683         false, // [201] 0xc9
2684         false, // [202] 0xca
2685         false, // [203] 0xcb
2686         false, // [204] 0xcc
2687         false, // [205] 0xcd
2688         false, // [206] 0xce
2689         false, // [207] 0xcf
2690         false, // [208] 0xd0
2691         false, // [209] 0xd1
2692         false, // [210] 0xd2
2693         false, // [211] 0xd3
2694         false, // [212] 0xd4
2695         false, // [213] 0xd5
2696         false, // [214] 0xd6
2697         false, // [215] 0xd7
2698         false, // [216] 0xd8
2699         false, // [217] 0xd9
2700         false, // [218] 0xda
2701         false, // [219] 0xdb
2702         false, // [220] 0xdc
2703         false, // [221] 0xdd
2704         false, // [222] 0xde
2705         false, // [223] 0xdf
2706         false, // [224] 0xe0
2707         false, // [225] 0xe1
2708         false, // [226] 0xe2
2709         false, // [227] 0xe3
2710         false, // [228] 0xe4
2711         false, // [229] 0xe5
2712         false, // [230] 0xe6
2713         false, // [231] 0xe7
2714         false, // [232] 0xe8
2715         false, // [233] 0xe9
2716         false, // [234] 0xea
2717         false, // [235] 0xeb
2718         false, // [236] 0xec
2719         false, // [237] 0xed
2720         false, // [238] 0xee
2721         false, // [239] 0xef
2722         false, // [240] 0xf0
2723         false, // [241] 0xf1
2724         false, // [242] 0xf2
2725         false, // [243] 0xf3
2726         false, // [244] 0xf4
2727         false, // [245] 0xf5
2728         false, // [246] 0xf6
2729         false, // [247] 0xf7
2730         false, // [248] 0xf8
2731         false, // [249] 0xf9
2732         false, // [250] 0xfa
2733         false, // [251] 0xfb
2734         false, // [252] 0xfc
2735         false, // [253] 0xfd
2736         false, // [254] 0xfe
2737         false, // [255] 0xff
2738         };
2739
2740 float g_AminoFreqs[20] =
2741         {
2742         0.0777f, // 'A' = Ala
2743         0.0161f, // 'C' = Cys
2744         0.0527f, // 'D' = Asp
2745         0.0631f, // 'E' = Glu
2746         0.0417f, // 'F' = Phe
2747         0.0718f, // 'G' = Gly
2748         0.0238f, // 'H' = His
2749         0.0606f, // 'I' = Ile
2750         0.0601f, // 'K' = Lys
2751         0.0906f, // 'L' = Leu
2752         0.0233f, // 'M' = Met
2753         0.0439f, // 'N' = Asn
2754         0.0456f, // 'P' = Pro
2755         0.0368f, // 'Q' = Gln
2756         0.0526f, // 'R' = Arg
2757         0.0639f, // 'S' = Ser
2758         0.0570f, // 'T' = Thr
2759         0.0712f, // 'V' = Val
2760         0.0134f, // 'W' = Trp
2761         0.0339f, // 'Y' = Tyr
2762         };