1 package jalview.schemes;
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertNull;
8 public class ResiduePropertiesTest
12 * Test 'standard' codon translations (no ambiguity codes)
15 public void testCodonTranslate()
17 // standard translation table order column 1/2/3/4
18 assertEquals("F", ResidueProperties.codonTranslate("TTT"));
19 assertEquals("F", ResidueProperties.codonTranslate("TTC"));
20 assertEquals("L", ResidueProperties.codonTranslate("TTA"));
21 assertEquals("L", ResidueProperties.codonTranslate("TTG"));
22 assertEquals("L", ResidueProperties.codonTranslate("CTT"));
23 assertEquals("L", ResidueProperties.codonTranslate("CTC"));
24 assertEquals("L", ResidueProperties.codonTranslate("CTA"));
25 assertEquals("L", ResidueProperties.codonTranslate("CTG"));
26 assertEquals("I", ResidueProperties.codonTranslate("ATT"));
27 assertEquals("I", ResidueProperties.codonTranslate("ATC"));
28 assertEquals("I", ResidueProperties.codonTranslate("ATA"));
29 assertEquals("M", ResidueProperties.codonTranslate("ATG"));
30 assertEquals("V", ResidueProperties.codonTranslate("GTT"));
31 assertEquals("V", ResidueProperties.codonTranslate("GTC"));
32 assertEquals("V", ResidueProperties.codonTranslate("GTA"));
33 assertEquals("V", ResidueProperties.codonTranslate("GTG"));
34 assertEquals("S", ResidueProperties.codonTranslate("TCT"));
35 assertEquals("S", ResidueProperties.codonTranslate("TCC"));
36 assertEquals("S", ResidueProperties.codonTranslate("TCA"));
37 assertEquals("S", ResidueProperties.codonTranslate("TCG"));
38 assertEquals("P", ResidueProperties.codonTranslate("CCT"));
39 assertEquals("P", ResidueProperties.codonTranslate("CCC"));
40 assertEquals("P", ResidueProperties.codonTranslate("CCA"));
41 assertEquals("P", ResidueProperties.codonTranslate("CCG"));
42 assertEquals("T", ResidueProperties.codonTranslate("ACT"));
43 assertEquals("T", ResidueProperties.codonTranslate("ACC"));
44 assertEquals("T", ResidueProperties.codonTranslate("ACA"));
45 assertEquals("T", ResidueProperties.codonTranslate("ACG"));
46 assertEquals("A", ResidueProperties.codonTranslate("GCT"));
47 assertEquals("A", ResidueProperties.codonTranslate("GCC"));
48 assertEquals("A", ResidueProperties.codonTranslate("GCA"));
49 assertEquals("A", ResidueProperties.codonTranslate("GCG"));
50 assertEquals("Y", ResidueProperties.codonTranslate("TAT"));
51 assertEquals("Y", ResidueProperties.codonTranslate("TAC"));
52 assertEquals("STOP", ResidueProperties.codonTranslate("TAA"));
53 assertEquals("STOP", ResidueProperties.codonTranslate("TAG"));
54 assertEquals("H", ResidueProperties.codonTranslate("CAT"));
55 assertEquals("H", ResidueProperties.codonTranslate("CAC"));
56 assertEquals("Q", ResidueProperties.codonTranslate("CAA"));
57 assertEquals("Q", ResidueProperties.codonTranslate("CAG"));
58 assertEquals("N", ResidueProperties.codonTranslate("AAT"));
59 assertEquals("N", ResidueProperties.codonTranslate("AAC"));
60 assertEquals("K", ResidueProperties.codonTranslate("AAA"));
61 assertEquals("K", ResidueProperties.codonTranslate("AAG"));
62 assertEquals("D", ResidueProperties.codonTranslate("GAT"));
63 assertEquals("D", ResidueProperties.codonTranslate("GAC"));
64 assertEquals("E", ResidueProperties.codonTranslate("GAA"));
65 assertEquals("E", ResidueProperties.codonTranslate("GAG"));
66 assertEquals("C", ResidueProperties.codonTranslate("TGT"));
67 assertEquals("C", ResidueProperties.codonTranslate("TGC"));
68 assertEquals("STOP", ResidueProperties.codonTranslate("TGA"));
69 assertEquals("W", ResidueProperties.codonTranslate("TGG"));
70 assertEquals("R", ResidueProperties.codonTranslate("CGT"));
71 assertEquals("R", ResidueProperties.codonTranslate("CGC"));
72 assertEquals("R", ResidueProperties.codonTranslate("CGA"));
73 assertEquals("R", ResidueProperties.codonTranslate("CGG"));
74 assertEquals("S", ResidueProperties.codonTranslate("AGT"));
75 assertEquals("S", ResidueProperties.codonTranslate("AGC"));
76 assertEquals("R", ResidueProperties.codonTranslate("AGA"));
77 assertEquals("R", ResidueProperties.codonTranslate("AGG"));
78 assertEquals("G", ResidueProperties.codonTranslate("GGT"));
79 assertEquals("G", ResidueProperties.codonTranslate("GGC"));
80 assertEquals("G", ResidueProperties.codonTranslate("GGA"));
81 assertEquals("G", ResidueProperties.codonTranslate("GGG"));
85 * Test a sample of codon translations involving ambiguity codes. Should
86 * return a protein value where the ambiguity does not affect the translation.
89 public void testCodonTranslate_ambiguityCodes()
92 assertEquals("C", ResidueProperties.codonTranslate("TGY"));
93 // Phenylalanine first base variation
94 assertEquals("L", ResidueProperties.codonTranslate("YTA"));
97 assertEquals("L", ResidueProperties.codonTranslate("CTW"));
98 assertNull(ResidueProperties.codonTranslate("TTW"));
101 assertEquals("G", ResidueProperties.codonTranslate("GGS"));
102 assertNull(ResidueProperties.codonTranslate("ATS"));
105 assertEquals("S", ResidueProperties.codonTranslate("TCK"));
106 assertNull(ResidueProperties.codonTranslate("ATK"));
109 assertEquals("T", ResidueProperties.codonTranslate("ACM"));
110 // Arginine first base variation
111 assertEquals("R", ResidueProperties.codonTranslate("MGA"));
112 assertEquals("R", ResidueProperties.codonTranslate("MGG"));
113 assertNull(ResidueProperties.codonTranslate("TAM"));
116 assertEquals("P", ResidueProperties.codonTranslate("CCD"));
117 assertNull(ResidueProperties.codonTranslate("AAD"));
120 assertEquals("V", ResidueProperties.codonTranslate("GTV"));
121 assertNull(ResidueProperties.codonTranslate("TTV"));
124 assertEquals("A", ResidueProperties.codonTranslate("GCH"));
125 assertEquals("I", ResidueProperties.codonTranslate("ATH"));
126 assertNull(ResidueProperties.codonTranslate("AGH"));
129 assertEquals("P", ResidueProperties.codonTranslate("CCB"));
130 assertNull(ResidueProperties.codonTranslate("TAB"));
133 // additional tests for JAL-1685 (resolved)
134 assertEquals("L", ResidueProperties.codonTranslate("CTR"));
135 assertEquals("V", ResidueProperties.codonTranslate("GTR"));
136 assertEquals("S", ResidueProperties.codonTranslate("TCR"));
137 assertEquals("P", ResidueProperties.codonTranslate("CCR"));
138 assertEquals("T", ResidueProperties.codonTranslate("ACR"));
139 assertEquals("A", ResidueProperties.codonTranslate("GCR"));
140 assertEquals("R", ResidueProperties.codonTranslate("CGR"));
141 assertEquals("G", ResidueProperties.codonTranslate("GGR"));
142 assertEquals("R", ResidueProperties.codonTranslate("AGR"));
143 assertEquals("E", ResidueProperties.codonTranslate("GAR"));
144 assertEquals("K", ResidueProperties.codonTranslate("AAR"));
145 assertEquals("L", ResidueProperties.codonTranslate("TTR"));
146 assertEquals("Q", ResidueProperties.codonTranslate("CAR"));
147 assertEquals("STOP", ResidueProperties.codonTranslate("TAR"));
148 assertEquals("STOP", ResidueProperties.codonTranslate("TRA"));
149 // Arginine first and third base ambiguity
150 assertEquals("R", ResidueProperties.codonTranslate("MGR"));
151 assertNull(ResidueProperties.codonTranslate("ATR"));
153 // N is any base; 8 proteins accept any base in 3rd position
154 assertEquals("L", ResidueProperties.codonTranslate("CTN"));
155 assertEquals("V", ResidueProperties.codonTranslate("GTN"));
156 assertEquals("S", ResidueProperties.codonTranslate("TCN"));
157 assertEquals("P", ResidueProperties.codonTranslate("CCN"));
158 assertEquals("T", ResidueProperties.codonTranslate("ACN"));
159 assertEquals("A", ResidueProperties.codonTranslate("GCN"));
160 assertEquals("R", ResidueProperties.codonTranslate("CGN"));
161 assertEquals("G", ResidueProperties.codonTranslate("GGN"));
162 assertNull(ResidueProperties.codonTranslate("ATN"));
163 assertNull(ResidueProperties.codonTranslate("ANT"));
164 assertNull(ResidueProperties.codonTranslate("NAT"));
165 assertNull(ResidueProperties.codonTranslate("ANN"));
166 assertNull(ResidueProperties.codonTranslate("NNA"));
167 assertNull(ResidueProperties.codonTranslate("NNN"));
170 assertNull(ResidueProperties.codonTranslate("YWB"));
171 assertNull(ResidueProperties.codonTranslate("VHD"));
172 assertNull(ResidueProperties.codonTranslate("WSK"));