View Javadoc

1   /*--------------------------------------------------------------------------
2    *  Copyright 2010 utgenome.org
3    *
4    *  Licensed under the Apache License, Version 2.0 (the "License");
5    *  you may not use this file except in compliance with the License.
6    *  You may obtain a copy of the License at
7    *
8    *     http://www.apache.org/licenses/LICENSE-2.0
9    *
10   *  Unless required by applicable law or agreed to in writing, software
11   *  distributed under the License is distributed on an "AS IS" BASIS,
12   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   *  See the License for the specific language governing permissions and
14   *  limitations under the License.
15   *--------------------------------------------------------------------------*/
16  //--------------------------------------
17  // utgb-core Project
18  //
19  // CodonTable.java
20  // Since: 2010/10/07
21  //
22  //--------------------------------------
23  package org.utgenome.gwt.utgb.client.bio;
24  
25  /**
26   * Codon table
27   * 
28   * @author leo
29   * 
30   */
31  public class CodonTable {
32  
33  	/**
34  	 * 3mer integer (2bit encoding) to amino acid
35  	 */
36  	public final static AminoAcid[] kmerIntToAminoAcidTable = new AminoAcid[] { AminoAcid.Lys, AminoAcid.Asn, AminoAcid.Lys, AminoAcid.Asn, AminoAcid.Thr,
37  			AminoAcid.Thr, AminoAcid.Thr, AminoAcid.Thr, AminoAcid.Arg, AminoAcid.Ser, AminoAcid.Arg, AminoAcid.Ser, AminoAcid.Ile, AminoAcid.Ile,
38  			AminoAcid.Met, AminoAcid.Ile, AminoAcid.Gln, AminoAcid.His, AminoAcid.Glu, AminoAcid.His, AminoAcid.Pro, AminoAcid.Pro, AminoAcid.Pro,
39  			AminoAcid.Pro, AminoAcid.Arg, AminoAcid.Arg, AminoAcid.Arg, AminoAcid.Arg, AminoAcid.Leu, AminoAcid.Leu, AminoAcid.Leu, AminoAcid.Leu,
40  			AminoAcid.Glu, AminoAcid.Asp, AminoAcid.Glu, AminoAcid.Asp, AminoAcid.Ala, AminoAcid.Ala, AminoAcid.Ala, AminoAcid.Ala, AminoAcid.Gly,
41  			AminoAcid.Gly, AminoAcid.Gly, AminoAcid.Gly, AminoAcid.Val, AminoAcid.Val, AminoAcid.Val, AminoAcid.Val, AminoAcid.Ochre, AminoAcid.Tyr,
42  			AminoAcid.Amber, AminoAcid.Tyr, AminoAcid.Ser, AminoAcid.Ser, AminoAcid.Ser, AminoAcid.Ser, AminoAcid.Opal, AminoAcid.Cys, AminoAcid.Trp,
43  			AminoAcid.Cys, AminoAcid.Leu, AminoAcid.Phe, AminoAcid.Leu, AminoAcid.Phe };
44  
45  	public static AminoAcid toAminoAcid(int codon3merInt) {
46  		return kmerIntToAminoAcidTable[codon3merInt & 0x3F];
47  	}
48  
49  	public static AminoAcid toAminoAcid(String codon3mer) {
50  
51  		int codonInt = 0;
52  		if (codon3mer.length() != 3)
53  			return AminoAcid.Xaa;
54  
55  		for (int i = 0; i < 3; ++i) {
56  			int code2bit = ACGTEncoder.to2bitCode(codon3mer.charAt(i));
57  			if (code2bit >= 4)
58  				return AminoAcid.Xaa;
59  
60  			codonInt <<= 2;
61  			codonInt |= code2bit;
62  		}
63  		return toAminoAcid(codonInt);
64  	}
65  
66  	//	static {
67  	//		
68  	//		// AA
69  	//		codonToAminoAcidTable.put("AAA", AminoAcid.Lys);
70  	//		codonToAminoAcidTable.put("AAC", AminoAcid.Asn);
71  	//		codonToAminoAcidTable.put("AAG", AminoAcid.Lys);
72  	//		codonToAminoAcidTable.put("AAT", AminoAcid.Asn);
73  	//
74  	//		// AC
75  	//		codonToAminoAcidTable.put("ACA", AminoAcid.Thr);
76  	//		codonToAminoAcidTable.put("ACC", AminoAcid.Thr);
77  	//		codonToAminoAcidTable.put("ACG", AminoAcid.Thr);
78  	//		codonToAminoAcidTable.put("ACT", AminoAcid.Thr);
79  	//
80  	//		// AG
81  	//		codonToAminoAcidTable.put("AGA", AminoAcid.Arg);
82  	//		codonToAminoAcidTable.put("AGC", AminoAcid.Ser);
83  	//		codonToAminoAcidTable.put("AGG", AminoAcid.Arg);
84  	//		codonToAminoAcidTable.put("AGT", AminoAcid.Ser);
85  	//
86  	//		// AT
87  	//		codonToAminoAcidTable.put("ATA", AminoAcid.Ile);
88  	//		codonToAminoAcidTable.put("ATC", AminoAcid.Ile);
89  	//		codonToAminoAcidTable.put("ATG", AminoAcid.Met);
90  	//		codonToAminoAcidTable.put("ATT", AminoAcid.Ile);
91  	//
92  	//		// CA
93  	//		codonToAminoAcidTable.put("CAA", AminoAcid.Gln);
94  	//		codonToAminoAcidTable.put("CAC", AminoAcid.His);
95  	//		codonToAminoAcidTable.put("CAG", AminoAcid.Glu);
96  	//		codonToAminoAcidTable.put("CAT", AminoAcid.His);
97  	//
98  	//		// CC
99  	//		codonToAminoAcidTable.put("CCA", AminoAcid.Pro);
100 	//		codonToAminoAcidTable.put("CCC", AminoAcid.Pro);
101 	//		codonToAminoAcidTable.put("CCG", AminoAcid.Pro);
102 	//		codonToAminoAcidTable.put("CCT", AminoAcid.Pro);
103 	//
104 	//		// CG
105 	//		codonToAminoAcidTable.put("CGA", AminoAcid.Arg);
106 	//		codonToAminoAcidTable.put("CGC", AminoAcid.Arg);
107 	//		codonToAminoAcidTable.put("CGG", AminoAcid.Arg);
108 	//		codonToAminoAcidTable.put("CGT", AminoAcid.Arg);
109 	//
110 	//		// CT
111 	//		codonToAminoAcidTable.put("CTA", AminoAcid.Leu);
112 	//		codonToAminoAcidTable.put("CTC", AminoAcid.Leu);
113 	//		codonToAminoAcidTable.put("CTG", AminoAcid.Leu);
114 	//		codonToAminoAcidTable.put("CTT", AminoAcid.Leu);
115 	//
116 	//		// GA
117 	//		codonToAminoAcidTable.put("GAA", AminoAcid.Glu);
118 	//		codonToAminoAcidTable.put("GAC", AminoAcid.Asp);
119 	//		codonToAminoAcidTable.put("GAG", AminoAcid.Glu);
120 	//		codonToAminoAcidTable.put("GAT", AminoAcid.Asp);
121 	//
122 	//		// GC
123 	//		codonToAminoAcidTable.put("GCA", AminoAcid.Ala);
124 	//		codonToAminoAcidTable.put("GCC", AminoAcid.Ala);
125 	//		codonToAminoAcidTable.put("GCG", AminoAcid.Ala);
126 	//		codonToAminoAcidTable.put("GCT", AminoAcid.Ala);
127 	//
128 	//		// GG
129 	//		codonToAminoAcidTable.put("GGA", AminoAcid.Gly);
130 	//		codonToAminoAcidTable.put("GGC", AminoAcid.Gly);
131 	//		codonToAminoAcidTable.put("GGG", AminoAcid.Gly);
132 	//		codonToAminoAcidTable.put("GGT", AminoAcid.Gly);
133 	//
134 	//		// GT
135 	//		codonToAminoAcidTable.put("GTA", AminoAcid.Val);
136 	//		codonToAminoAcidTable.put("GTC", AminoAcid.Val);
137 	//		codonToAminoAcidTable.put("GTG", AminoAcid.Val);
138 	//		codonToAminoAcidTable.put("GTT", AminoAcid.Val);
139 	//
140 	//		// TA
141 	//		codonToAminoAcidTable.put("TAA", AminoAcid.Ochre);
142 	//		codonToAminoAcidTable.put("TAC", AminoAcid.Tyr);
143 	//		codonToAminoAcidTable.put("TAG", AminoAcid.Amber);
144 	//		codonToAminoAcidTable.put("TAT", AminoAcid.Tyr);
145 	//
146 	//		// TC
147 	//		codonToAminoAcidTable.put("TCA", AminoAcid.Ser);
148 	//		codonToAminoAcidTable.put("TCC", AminoAcid.Ser);
149 	//		codonToAminoAcidTable.put("TCG", AminoAcid.Ser);
150 	//		codonToAminoAcidTable.put("TCT", AminoAcid.Ser);
151 	//
152 	//		// TG
153 	//		codonToAminoAcidTable.put("TGA", AminoAcid.Opal);
154 	//		codonToAminoAcidTable.put("TGC", AminoAcid.Cys);
155 	//		codonToAminoAcidTable.put("TGG", AminoAcid.Trp);
156 	//		codonToAminoAcidTable.put("TGT", AminoAcid.Cys);
157 	//
158 	//		// TT
159 	//		codonToAminoAcidTable.put("TTA", AminoAcid.Leu);
160 	//		codonToAminoAcidTable.put("TTC", AminoAcid.Phe);
161 	//		codonToAminoAcidTable.put("TTG", AminoAcid.Leu);
162 	//		codonToAminoAcidTable.put("TTT", AminoAcid.Phe);
163 	//
164 	//	}
165 
166 }