3 import jalview.datamodel.*;
\r
9 public class PDBfile extends jalview.io.FileParse {
\r
11 public Vector chains = new Vector();
\r
13 Vector lineArray = new Vector();
\r
15 public PDBfile(String [] lines)
\r
17 for(int i=0; i<lines.length; i++)
\r
18 lineArray.addElement(lines[i]);
\r
20 noLines = lineArray.size();
\r
24 public PDBfile(String inFile, String inType) throws IOException {
\r
26 super(inFile,inType);
\r
29 this.lineArray = new Vector();
\r
30 BufferedReader dataIn;
\r
32 if (inType.equals("File"))
\r
33 dataIn = new BufferedReader(new FileReader( inFile ));
\r
37 URL url = new URL(inFile);
\r
39 dataIn = new BufferedReader(new InputStreamReader(url.openStream()));
\r
42 while ((line = dataIn.readLine()) != null) {
\r
43 lineArray.addElement(line);
\r
45 noLines = lineArray.size();
\r
52 public void parse() {
\r
54 for (int i = 0; i < lineArray.size(); i++) {
\r
55 StringTokenizer str = new StringTokenizer(lineArray.elementAt(i).toString());
\r
56 if (str.hasMoreTokens()) {
\r
57 String inStr = str.nextToken();
\r
59 if (inStr.indexOf("ATOM") != -1) {
\r
61 myAtom tmpatom = new myAtom(str);
\r
62 if (findChain(tmpatom.chain) != null) {
\r
63 // System.out.println("Adding to chain " + tmpatom.chain);
\r
64 findChain(tmpatom.chain).atoms.addElement(tmpatom);
\r
66 // System.out.println("Making chain " + tmpatom.chain);
\r
67 PDBChain tmpchain = new PDBChain(tmpatom.chain);
\r
68 chains.addElement(tmpchain);
\r
69 tmpchain.atoms.addElement(tmpatom);
\r
71 } catch(NumberFormatException e) {
\r
72 System.out.println("Caught" + e);
\r
73 System.out.println("Atom not added");
\r
80 // for (int i=0; i < chains.size() ; i++) {
\r
81 // String pog = ((PDBChain)chains.elementAt(i)).print();
\r
82 // System.out.println(pog);
\r
86 public void makeResidueList() {
\r
87 for (int i=0; i < chains.size() ; i++) {
\r
88 ((PDBChain)chains.elementAt(i)).makeResidueList();
\r
91 public void makeCaBondList() {
\r
92 for (int i=0; i < chains.size() ; i++) {
\r
93 ((PDBChain)chains.elementAt(i)).makeCaBondList();
\r
97 public PDBChain findChain(String id) {
\r
98 for (int i=0; i < chains.size(); i++) {
\r
99 // System.out.println("ID = " + id + " " +((PDBChain)chains.elementAt(i)).id);
\r
100 if (((PDBChain)chains.elementAt(i)).id.equals(id)) {
\r
101 return (PDBChain)chains.elementAt(i);
\r
108 public void setChargeColours() {
\r
109 for (int i=0; i < chains.size(); i++) {
\r
110 ((PDBChain)chains.elementAt(i)).setChargeColours();
\r
114 public void setHydrophobicityColours() {
\r
115 for (int i=0; i < chains.size(); i++) {
\r
116 ((PDBChain)chains.elementAt(i)).setHydrophobicityColours();
\r
120 public void colourBySequence(Sequence seq) {
\r
122 // int max = seq.maxchain;
\r
123 // if (seq.maxchain != -1) {
\r
124 // ((PDBChain)chains.elementAt(max)).colourBySequence(seq);
\r
128 public void setChainColours() {
\r
129 for (int i=0; i < chains.size(); i++) {
\r
130 ((PDBChain)chains.elementAt(i)).setChainColours();
\r
133 public static void main(String[] args) {
\r
135 PDBfile pdb = new PDBfile("enkp1.pdb","File");
\r
136 } catch(IOException e) {
\r
137 System.out.println(e);
\r