ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/owl/trunk/proteinstructure/AA.java
Revision: 200
Committed: Mon Jun 18 17:43:43 2007 UTC (17 years, 8 months ago) by duarte
File size: 13613 byte(s)
Log Message:
New isValidCT methods in AA
New method get_resser_from_atomser in Pdb
Line File contents
1 package proteinstructure;
2 import java.util.HashMap;
3 import java.util.ArrayList;
4
5 public class AA {
6
7 public static String[] contactTypes() {
8 // NOTE: whenever a new contact type is added it needs to be added here as well as in ct2atoms
9 String[] cts ={"ALL","BB","SC","Ca","Cb","Cg","C"};
10 return cts;
11 }
12
13 public static String[] singleAtomContactTypes() {
14 // NOTE: whenever a new contact type is added it needs to be added here as well as in ct2atoms
15 String[] cts ={"Ca","Cb","Cg","C"};
16 return cts;
17 }
18
19 public static String[] multiAtomContactTypes() {
20 // NOTE: whenever a new contact type is added it needs to be added here as well as in ct2atoms
21 String[] cts ={"ALL","BB","SC"};
22 return cts;
23 }
24
25 /**
26 * Returns true if given contact type is a valid one
27 * @param ct
28 * @return
29 */
30 public static boolean isValidCT(String ct){
31 for (String validCt:contactTypes()){
32 if (ct.equals(validCt)) return true;
33 }
34 return false;
35 }
36
37 /**
38 * Returns true if given contact type is a valid single atom contact type
39 * @param ct
40 * @return
41 */
42 public static boolean isValidSingleAtomCT(String ct) {
43 for (String validCt:singleAtomContactTypes()){
44 if (ct.equals(validCt)) return true;
45 }
46 return false;
47 }
48
49 /**
50 * Returns true if given contact type is a valid multiple atom contact type
51 * @param ct
52 * @return
53 */
54 public static boolean isValidMultiAtomCT(String ct) {
55 for (String validCt:multiAtomContactTypes()){
56 if (ct.equals(validCt)) return true;
57 }
58 return false;
59 }
60
61 private static HashMap<String,String> getThreeletter2oneletter() {
62 HashMap<String,String> three2oneletter = new HashMap<String,String>();
63 three2oneletter.put("CYS", "C");
64 three2oneletter.put("ASP", "D");
65 three2oneletter.put("SER", "S");
66 three2oneletter.put("GLN", "Q");
67 three2oneletter.put("LYS", "K");
68 three2oneletter.put("ILE", "I");
69 three2oneletter.put("PRO", "P");
70 three2oneletter.put("THR", "T");
71 three2oneletter.put("PHE", "F");
72 three2oneletter.put("ALA", "A");
73 three2oneletter.put("GLY", "G");
74 three2oneletter.put("HIS", "H");
75 three2oneletter.put("GLU", "E");
76 three2oneletter.put("LEU", "L");
77 three2oneletter.put("ARG", "R");
78 three2oneletter.put("TRP", "W");
79 three2oneletter.put("VAL", "V");
80 three2oneletter.put("ASN", "N");
81 three2oneletter.put("TYR", "Y") ;
82 three2oneletter.put("MET", "M");
83 return three2oneletter;
84 }
85
86 public static String threeletter2oneletter(String three) {
87 HashMap<String,String> three2oneletter = getThreeletter2oneletter();
88 return three2oneletter.get(three);
89 }
90
91 private static HashMap<String,String> getOneletter2Threeletter(){
92 HashMap<String,String> one2threeletter = new HashMap<String,String>();
93 one2threeletter.put("C", "CYS");
94 one2threeletter.put("D", "ASP");
95 one2threeletter.put("S", "SER");
96 one2threeletter.put("Q", "GLN");
97 one2threeletter.put("K", "LYS");
98 one2threeletter.put("I", "ILE");
99 one2threeletter.put("P", "PRO");
100 one2threeletter.put("T", "THR");
101 one2threeletter.put("F", "PHE");
102 one2threeletter.put("A", "ALA");
103 one2threeletter.put("G", "GLY");
104 one2threeletter.put("H", "HIS");
105 one2threeletter.put("E", "GLU");
106 one2threeletter.put("L", "LEU");
107 one2threeletter.put("R", "ARG");
108 one2threeletter.put("W", "TRP");
109 one2threeletter.put("V", "VAL");
110 one2threeletter.put("N", "ASN");
111 one2threeletter.put("Y", "TYR");
112 one2threeletter.put("M", "MET");
113 return one2threeletter;
114 }
115
116 public static String oneletter2threeletter(String one) {
117 HashMap<String,String> one2threeletter = getOneletter2Threeletter();
118 return one2threeletter.get(one);
119 }
120
121 public static ArrayList<String> aas() {
122 HashMap<String,String> three2oneletter = getThreeletter2oneletter();
123 ArrayList<String> aas = new ArrayList<String>();
124 for (String aa:three2oneletter.keySet()) {
125 aas.add(aa);
126 }
127 return aas;
128 }
129
130 public static HashMap<String,ArrayList<String>> getaas2atoms() {
131 HashMap<String,ArrayList<String>> aas2atoms = new HashMap<String,ArrayList<String>>();
132 aas2atoms.put("CYS", new ArrayList<String>());
133 aas2atoms.get("CYS").add("SG");
134 aas2atoms.get("CYS").add("CB");
135 aas2atoms.get("CYS").add("O");
136 aas2atoms.get("CYS").add("CA");
137 aas2atoms.get("CYS").add("C");
138 aas2atoms.get("CYS").add("N");
139 aas2atoms.put("ASP", new ArrayList<String>());
140 aas2atoms.get("ASP").add("N");
141 aas2atoms.get("ASP").add("CB");
142 aas2atoms.get("ASP").add("OD2");
143 aas2atoms.get("ASP").add("CG");
144 aas2atoms.get("ASP").add("CA");
145 aas2atoms.get("ASP").add("C");
146 aas2atoms.get("ASP").add("O");
147 aas2atoms.get("ASP").add("OD1");
148 aas2atoms.put("SER", new ArrayList<String>());
149 aas2atoms.get("SER").add("C");
150 aas2atoms.get("SER").add("N");
151 aas2atoms.get("SER").add("CA");
152 aas2atoms.get("SER").add("O");
153 aas2atoms.get("SER").add("CB");
154 aas2atoms.get("SER").add("OG");
155 aas2atoms.put("GLN", new ArrayList<String>());
156 aas2atoms.get("GLN").add("CA");
157 aas2atoms.get("GLN").add("CG");
158 aas2atoms.get("GLN").add("N");
159 aas2atoms.get("GLN").add("NE2");
160 aas2atoms.get("GLN").add("OE1");
161 aas2atoms.get("GLN").add("CD");
162 aas2atoms.get("GLN").add("C");
163 aas2atoms.get("GLN").add("O");
164 aas2atoms.get("GLN").add("CB");
165 aas2atoms.put("LYS", new ArrayList<String>());
166 aas2atoms.get("LYS").add("C");
167 aas2atoms.get("LYS").add("CA");
168 aas2atoms.get("LYS").add("N");
169 aas2atoms.get("LYS").add("O");
170 aas2atoms.get("LYS").add("CB");
171 aas2atoms.get("LYS").add("CG");
172 aas2atoms.get("LYS").add("CD");
173 aas2atoms.get("LYS").add("CE");
174 aas2atoms.get("LYS").add("NZ");
175 aas2atoms.put("ASN", new ArrayList<String>());
176 aas2atoms.get("ASN").add("ND2");
177 aas2atoms.get("ASN").add("OD1");
178 aas2atoms.get("ASN").add("CB");
179 aas2atoms.get("ASN").add("O");
180 aas2atoms.get("ASN").add("CG");
181 aas2atoms.get("ASN").add("C");
182 aas2atoms.get("ASN").add("CA");
183 aas2atoms.get("ASN").add("N");
184 aas2atoms.put("PRO", new ArrayList<String>());
185 aas2atoms.get("PRO").add("O");
186 aas2atoms.get("PRO").add("C");
187 aas2atoms.get("PRO").add("CB");
188 aas2atoms.get("PRO").add("CG");
189 aas2atoms.get("PRO").add("CA");
190 aas2atoms.get("PRO").add("CD");
191 aas2atoms.get("PRO").add("N");
192 aas2atoms.put("THR", new ArrayList<String>());
193 aas2atoms.get("THR").add("CA");
194 aas2atoms.get("THR").add("N");
195 aas2atoms.get("THR").add("C");
196 aas2atoms.get("THR").add("CG2");
197 aas2atoms.get("THR").add("OG1");
198 aas2atoms.get("THR").add("CB");
199 aas2atoms.get("THR").add("O");
200 aas2atoms.put("PHE", new ArrayList<String>());
201 aas2atoms.get("PHE").add("O");
202 aas2atoms.get("PHE").add("CE2");
203 aas2atoms.get("PHE").add("CE1");
204 aas2atoms.get("PHE").add("CG");
205 aas2atoms.get("PHE").add("C");
206 aas2atoms.get("PHE").add("N");
207 aas2atoms.get("PHE").add("CA");
208 aas2atoms.get("PHE").add("CB");
209 aas2atoms.get("PHE").add("CD2");
210 aas2atoms.get("PHE").add("CD1");
211 aas2atoms.get("PHE").add("CZ");
212 aas2atoms.put("ALA", new ArrayList<String>());
213 aas2atoms.get("ALA").add("CA");
214 aas2atoms.get("ALA").add("C");
215 aas2atoms.get("ALA").add("N");
216 aas2atoms.get("ALA").add("CB");
217 aas2atoms.get("ALA").add("O");
218 aas2atoms.put("HIS", new ArrayList<String>());
219 aas2atoms.get("HIS").add("CE1");
220 aas2atoms.get("HIS").add("CD2");
221 aas2atoms.get("HIS").add("ND1");
222 aas2atoms.get("HIS").add("CG");
223 aas2atoms.get("HIS").add("CB");
224 aas2atoms.get("HIS").add("O");
225 aas2atoms.get("HIS").add("C");
226 aas2atoms.get("HIS").add("CA");
227 aas2atoms.get("HIS").add("N");
228 aas2atoms.get("HIS").add("NE2");
229 aas2atoms.put("GLY", new ArrayList<String>());
230 aas2atoms.get("GLY").add("N");
231 aas2atoms.get("GLY").add("CA");
232 aas2atoms.get("GLY").add("C");
233 aas2atoms.get("GLY").add("O");
234 aas2atoms.put("ILE", new ArrayList<String>());
235 aas2atoms.get("ILE").add("CG2");
236 aas2atoms.get("ILE").add("CD1");
237 aas2atoms.get("ILE").add("O");
238 aas2atoms.get("ILE").add("N");
239 aas2atoms.get("ILE").add("CA");
240 aas2atoms.get("ILE").add("C");
241 aas2atoms.get("ILE").add("CB");
242 aas2atoms.get("ILE").add("CG1");
243 aas2atoms.put("LEU", new ArrayList<String>());
244 aas2atoms.get("LEU").add("N");
245 aas2atoms.get("LEU").add("CA");
246 aas2atoms.get("LEU").add("C");
247 aas2atoms.get("LEU").add("O");
248 aas2atoms.get("LEU").add("CB");
249 aas2atoms.get("LEU").add("CG");
250 aas2atoms.get("LEU").add("CD2");
251 aas2atoms.get("LEU").add("CD1");
252 aas2atoms.put("ARG", new ArrayList<String>());
253 aas2atoms.get("ARG").add("NH2");
254 aas2atoms.get("ARG").add("CZ");
255 aas2atoms.get("ARG").add("NE");
256 aas2atoms.get("ARG").add("CD");
257 aas2atoms.get("ARG").add("CG");
258 aas2atoms.get("ARG").add("C");
259 aas2atoms.get("ARG").add("CA");
260 aas2atoms.get("ARG").add("N");
261 aas2atoms.get("ARG").add("NH1");
262 aas2atoms.get("ARG").add("CB");
263 aas2atoms.get("ARG").add("O");
264 aas2atoms.put("TRP", new ArrayList<String>());
265 aas2atoms.get("TRP").add("CE2");
266 aas2atoms.get("TRP").add("CA");
267 aas2atoms.get("TRP").add("C");
268 aas2atoms.get("TRP").add("O");
269 aas2atoms.get("TRP").add("CB");
270 aas2atoms.get("TRP").add("CG");
271 aas2atoms.get("TRP").add("CD1");
272 aas2atoms.get("TRP").add("CD2");
273 aas2atoms.get("TRP").add("CH2");
274 aas2atoms.get("TRP").add("CZ3");
275 aas2atoms.get("TRP").add("CZ2");
276 aas2atoms.get("TRP").add("CE3");
277 aas2atoms.get("TRP").add("NE1");
278 aas2atoms.get("TRP").add("N");
279 aas2atoms.put("VAL", new ArrayList<String>());
280 aas2atoms.get("VAL").add("CG1");
281 aas2atoms.get("VAL").add("CB");
282 aas2atoms.get("VAL").add("O");
283 aas2atoms.get("VAL").add("C");
284 aas2atoms.get("VAL").add("CA");
285 aas2atoms.get("VAL").add("N");
286 aas2atoms.get("VAL").add("CG2");
287 aas2atoms.put("GLU", new ArrayList<String>());
288 aas2atoms.get("GLU").add("C");
289 aas2atoms.get("GLU").add("N");
290 aas2atoms.get("GLU").add("CA");
291 aas2atoms.get("GLU").add("OE2");
292 aas2atoms.get("GLU").add("OE1");
293 aas2atoms.get("GLU").add("CD");
294 aas2atoms.get("GLU").add("CG");
295 aas2atoms.get("GLU").add("CB");
296 aas2atoms.get("GLU").add("O");
297 aas2atoms.put("TYR", new ArrayList<String>());
298 aas2atoms.get("TYR").add("CD2");
299 aas2atoms.get("TYR").add("CD1");
300 aas2atoms.get("TYR").add("OH");
301 aas2atoms.get("TYR").add("CZ");
302 aas2atoms.get("TYR").add("CE2");
303 aas2atoms.get("TYR").add("N");
304 aas2atoms.get("TYR").add("CA");
305 aas2atoms.get("TYR").add("C");
306 aas2atoms.get("TYR").add("O");
307 aas2atoms.get("TYR").add("CB");
308 aas2atoms.get("TYR").add("CG");
309 aas2atoms.get("TYR").add("CE1");
310 aas2atoms.put("MET", new ArrayList<String>());
311 aas2atoms.get("MET").add("CA");
312 aas2atoms.get("MET").add("O");
313 aas2atoms.get("MET").add("C");
314 aas2atoms.get("MET").add("CB");
315 aas2atoms.get("MET").add("CE");
316 aas2atoms.get("MET").add("N");
317 aas2atoms.get("MET").add("CG");
318 aas2atoms.get("MET").add("SD");
319 return aas2atoms;
320
321 }
322
323 public static HashMap<String,String[]> ct2atoms(String ct) {
324 ArrayList<String> aas = aas();
325 HashMap<String,String[]> ct2atoms = new HashMap<String,String[]>();
326 if (ct.equals("Ca")){
327 String[] atoms = {"CA"};
328 for (String aa:aas) {
329 ct2atoms.put(aa, atoms);
330 }
331 }
332 else if (ct.equals("Cb")){
333 String[] atoms = {"CB"};
334 for (String aa:aas) {
335 ct2atoms.put(aa, atoms);
336 }
337 atoms = new String[1];
338 atoms[0]="CA";
339 ct2atoms.put("GLY", atoms);
340 }
341 else if (ct.equals("C")){
342 String[] atoms = {"C"};
343 for (String aa:aas) {
344 ct2atoms.put(aa, atoms);
345 }
346 }
347 else if (ct.equals("Cg")){
348 String[] atoms = {"SG"};
349 ct2atoms.put("CYS", atoms);
350 atoms = new String[1];
351 atoms[0]= "CG";
352 ct2atoms.put("ASP", atoms);
353 atoms = new String[1];
354 atoms[0]="OG";
355 ct2atoms.put("SER", atoms);
356 atoms = new String[1];
357 atoms[0]="CG";
358 ct2atoms.put("GLN", atoms);
359 atoms = new String[1];
360 atoms[0]="CD";
361 ct2atoms.put("LYS", atoms);
362 atoms = new String[1];
363 atoms[0]="CG1";
364 ct2atoms.put("ILE", atoms);
365 atoms = new String[1];
366 atoms[0]="CG";
367 ct2atoms.put("PRO", atoms);
368 atoms = new String[1];
369 atoms[0]="OG1";
370 ct2atoms.put("THR", atoms);
371 atoms = new String[1];
372 atoms[0]="CG";
373 ct2atoms.put("PHE", atoms);
374 ct2atoms.put("ALA", new String[0]);
375 ct2atoms.put("GLY", new String[0]);
376 atoms = new String[1];
377 atoms[0]="CG";
378 ct2atoms.put("HIS", atoms);
379 atoms = new String[1];
380 atoms[0]="CG";
381 ct2atoms.put("GLU", atoms);
382 atoms = new String[1];
383 atoms[0]="CG";
384 ct2atoms.put("LEU", atoms);
385 atoms = new String[1];
386 atoms[0]="NE";
387 ct2atoms.put("ARG", atoms);
388 atoms = new String[1];
389 atoms[0]="CD2";
390 ct2atoms.put("TRP", atoms);
391 atoms = new String[1];
392 atoms[0]="CG1";
393 ct2atoms.put("VAL", atoms);
394 atoms = new String[1];
395 atoms[0]="CG";
396 ct2atoms.put("ASN", atoms);
397 atoms = new String[1];
398 atoms[0]="CG";
399 ct2atoms.put("TYR", atoms);
400 atoms = new String[1];
401 atoms[0]="CG";
402 ct2atoms.put("MET", atoms);
403 }
404 else if (ct.equals("BB")){
405 String[] atoms = {"CA", "N", "C", "O"};
406 for (String aa:aas) {
407 ct2atoms.put(aa, atoms);
408 }
409 }
410 else if (ct.equals("SC")){
411 HashMap<String,ArrayList<String>> aas2atoms = getaas2atoms();
412 for (String aa:aas) {
413 ArrayList<String> SCatoms =aas2atoms.get(aa);
414 SCatoms.remove("CA");
415 SCatoms.remove("N");
416 SCatoms.remove("C");
417 SCatoms.remove("O");
418 String[] SCatomsar= new String[SCatoms.size()];
419 SCatomsar=SCatoms.toArray(SCatomsar);
420 ct2atoms.put(aa, SCatomsar);
421 }
422 }
423 else if (ct.equals("ALL")){
424 HashMap<String,ArrayList<String>> aas2atoms = getaas2atoms();
425 for (String aa:aas) {
426 ArrayList<String> ALLatoms = aas2atoms.get(aa);
427 String[] ALLatomsar= new String[ALLatoms.size()];
428 ALLatomsar=ALLatoms.toArray(ALLatomsar);
429 ct2atoms.put(aa,ALLatomsar);
430 }
431 }
432 return ct2atoms;
433 }
434 }