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 }