ce98a0698a8e4c0fd7e9fad745f4c68a7001050c
[jalview.git] / src / MCview / PDBfile.java
1 package MCview;\r
2 \r
3 import jalview.gui.*;\r
4 import java.io.*;\r
5 import java.net.*;\r
6 import java.util.*;\r
7 \r
8 \r
9 public class PDBfile extends jalview.io.FileParse {\r
10 \r
11   public Vector chains = new Vector();\r
12 \r
13   Vector lineArray = new Vector();\r
14 \r
15   public PDBfile(String inFile, String inType) throws IOException {\r
16 \r
17     super(inFile,inType);\r
18 \r
19     String line;\r
20     this.lineArray = new Vector();\r
21     BufferedReader dataIn;\r
22 \r
23     if (inType.equals("File"))\r
24       dataIn =  new BufferedReader(new FileReader( inFile ));\r
25 \r
26     else\r
27     {\r
28       URL url = new URL(inFile);\r
29       this.fileSize = 0;\r
30       dataIn = new BufferedReader(new InputStreamReader(url.openStream()));\r
31     }\r
32 \r
33     while ((line = dataIn.readLine()) != null) {\r
34       lineArray.addElement(line);\r
35     }\r
36     noLines = lineArray.size();\r
37 \r
38     parse();\r
39 \r
40 }\r
41 \r
42 \r
43   public void parse() {\r
44 \r
45     System.out.println("Parsing");\r
46 \r
47     for (int i = 0; i < lineArray.size(); i++) {\r
48       StringTokenizer str = new StringTokenizer(lineArray.elementAt(i).toString());\r
49       if (str.hasMoreTokens()) {\r
50         String inStr = str.nextToken();\r
51 \r
52         if (inStr.indexOf("ATOM") != -1) {\r
53           try {\r
54             myAtom tmpatom = new myAtom(str);\r
55             if (findChain(tmpatom.chain) != null) {\r
56               System.out.println("Adding to chain " + tmpatom.chain);\r
57               findChain(tmpatom.chain).atoms.addElement(tmpatom);\r
58             } else {\r
59               System.out.println("Making chain " + tmpatom.chain);\r
60               PDBChain tmpchain = new PDBChain(tmpatom.chain);\r
61               chains.addElement(tmpchain);\r
62               tmpchain.atoms.addElement(tmpatom);\r
63             }\r
64           } catch(NumberFormatException e) {\r
65             System.out.println("Caught" +  e);\r
66             System.out.println("Atom not added");\r
67           }\r
68         }\r
69       }\r
70     }\r
71     makeResidueList();\r
72     makeCaBondList();\r
73     //    for (int i=0; i < chains.size() ; i++) {\r
74     //  String pog = ((PDBChain)chains.elementAt(i)).print();\r
75     //  System.out.println(pog);\r
76     // }\r
77   }\r
78 \r
79   public void makeResidueList() {\r
80     for (int i=0; i < chains.size() ; i++) {\r
81       ((PDBChain)chains.elementAt(i)).makeResidueList();\r
82     }\r
83   }\r
84   public void makeCaBondList() {\r
85     for (int i=0; i < chains.size() ; i++) {\r
86       ((PDBChain)chains.elementAt(i)).makeCaBondList();\r
87     }\r
88   }\r
89 \r
90   public PDBChain findChain(String id) {\r
91     for (int i=0; i < chains.size(); i++) {\r
92       // System.out.println("ID = " + id + " " +((PDBChain)chains.elementAt(i)).id);\r
93       if (((PDBChain)chains.elementAt(i)).id.equals(id)) {\r
94         return (PDBChain)chains.elementAt(i);\r
95       }\r
96     }\r
97     return null;\r
98   }\r
99 \r
100 \r
101   public void setChargeColours() {\r
102     for (int i=0; i < chains.size(); i++) {\r
103       ((PDBChain)chains.elementAt(i)).setChargeColours();\r
104     }\r
105   }\r
106 \r
107   public void setHydrophobicityColours() {\r
108     for (int i=0; i < chains.size(); i++) {\r
109       ((PDBChain)chains.elementAt(i)).setHydrophobicityColours();\r
110     }\r
111   }\r
112 \r
113   public void colourBySequence(DrawableSequence seq) {\r
114 //SMJS TODO\r
115 //    int max = seq.maxchain;\r
116 //    if (seq.maxchain != -1) {\r
117 //      ((PDBChain)chains.elementAt(max)).colourBySequence(seq);\r
118 //    }\r
119   }\r
120 \r
121   public void setChainColours() {\r
122     for (int i=0; i < chains.size(); i++) {\r
123       ((PDBChain)chains.elementAt(i)).setChainColours();\r
124     }\r
125   }\r
126   public static void main(String[] args) {\r
127     try {\r
128       PDBfile pdb = new PDBfile("enkp1.pdb","File");\r
129     } catch(IOException e) {\r
130       System.out.println(e);\r
131       System.exit(0);\r
132     }\r
133   }\r
134 }\r
135 \r
136 \r
137 \r