JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / bin / jalview / analysis / CodingUtils.js
1 Clazz.declarePackage ("jalview.analysis");\r
2 c$ = Clazz.declareType (jalview.analysis, "CodingUtils");\r
3 c$.encodeCodon = Clazz.defineMethod (c$, "encodeCodon", \r
4 function (codon) {\r
5 if (codon == null) {\r
6 return -1;\r
7 }return jalview.analysis.CodingUtils.encodeCodon (codon[2]) + (jalview.analysis.CodingUtils.encodeCodon (codon[1]) << 2) + (jalview.analysis.CodingUtils.encodeCodon (codon[0]) << (4));\r
8 }, "~A");\r
9 c$.encodeCodon = Clazz.defineMethod (c$, "encodeCodon", \r
10 function (c) {\r
11 var result = -2147483648;\r
12 switch (c) {\r
13 case 'A':\r
14 case 'a':\r
15 result = 0;\r
16 break;\r
17 case 'C':\r
18 case 'c':\r
19 result = 1;\r
20 break;\r
21 case 'G':\r
22 case 'g':\r
23 result = 2;\r
24 break;\r
25 case 'T':\r
26 case 't':\r
27 case 'U':\r
28 case 'u':\r
29 result = 3;\r
30 break;\r
31 }\r
32 return result;\r
33 }, "~S");\r
34 c$.decodeCodon = Clazz.defineMethod (c$, "decodeCodon", \r
35 function (encoded) {\r
36 var result =  Clazz.newCharArray (3, '\0');\r
37 result[2] = jalview.analysis.CodingUtils.decodeNucleotide (encoded & 3);\r
38 encoded = encoded >>> 2;\r
39 result[1] = jalview.analysis.CodingUtils.decodeNucleotide (encoded & 3);\r
40 encoded = encoded >>> 2;\r
41 result[0] = jalview.analysis.CodingUtils.decodeNucleotide (encoded & 3);\r
42 return result;\r
43 }, "~N");\r
44 c$.decodeNucleotide = Clazz.defineMethod (c$, "decodeNucleotide", \r
45 function (i) {\r
46 var result = '0';\r
47 switch (i) {\r
48 case 0:\r
49 result = 'A';\r
50 break;\r
51 case 1:\r
52 result = 'C';\r
53 break;\r
54 case 2:\r
55 result = 'G';\r
56 break;\r
57 case 3:\r
58 result = 'T';\r
59 break;\r
60 }\r
61 return result;\r
62 }, "~N");\r
63 Clazz.defineStatics (c$,\r
64 "CODON_ENCODING_BITSHIFT", 2);\r