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