- this.lineArray = new Vector();\r
-\r
- BufferedReader dataIn;\r
-\r
- if (inType.equals("File")) {\r
- dataIn = new BufferedReader(new FileReader(inFile));\r
- }\r
- else {\r
- URL url = new URL(inFile);\r
- this.fileSize = 0;\r
- dataIn = new BufferedReader(new InputStreamReader(url.openStream()));\r
- }\r
-\r
- while ((line = dataIn.readLine()) != null) {\r
- lineArray.addElement(line);\r
- }\r
-\r
- noLines = lineArray.size();\r
-\r
- parse();\r
- }\r
-\r
- public void parse() {\r
- for (int i = 0; i < lineArray.size(); i++) {\r
- StringTokenizer str = new StringTokenizer(lineArray.elementAt(i)\r
- .toString());\r
-\r
- if (str.hasMoreTokens()) {\r
- String inStr = str.nextToken();\r
-\r
- if (inStr.indexOf("ATOM") != -1) {\r
- try {\r
- myAtom tmpatom = new myAtom(str);\r
-\r
- if (findChain(tmpatom.chain) != null) {\r
- // System.out.println("Adding to chain " + tmpatom.chain);\r
- findChain(tmpatom.chain).atoms.addElement(tmpatom);\r
- } else {\r
- // System.out.println("Making chain " + tmpatom.chain);\r
- PDBChain tmpchain = new PDBChain(tmpatom.chain);\r
- chains.addElement(tmpchain);\r
- tmpchain.atoms.addElement(tmpatom);\r
- }\r
- } catch (NumberFormatException e) {\r
- System.err.println("Caught" + e);\r
- System.err.println("Record not added to PDB model:" +\r
- lineArray.elementAt(i).toString());\r
- }\r
- }\r
- }\r
+ boolean modelFlag = false;\r
+ boolean terFlag = false;\r
+\r
+\r
+ int index = 0;\r
+ while((line = nextLine())!=null)\r
+ {\r
+ if (line.indexOf("HEADER") == 0)\r
+ {\r
+ id = line.substring(62, 67).trim();\r
+ continue;\r
+ }\r
+\r
+ if(line.indexOf("MODEL")==0)\r
+ modelFlag = true;\r
+\r
+ if(line.indexOf("TER")==0)\r
+ terFlag = true;\r
+\r
+ if(modelFlag && line.indexOf("ENDMDL")==0)\r
+ break;\r
+\r
+ if ( line.indexOf("ATOM")==0\r
+ || (line.indexOf("HETATM")==0 && !terFlag)\r
+ )\r
+ {\r
+ terFlag = false;\r
+\r
+\r
+ //Jalview is only interested in CA bonds????\r
+ if (!line.substring(12, 15).trim().equals("CA"))\r
+ {\r
+ continue;\r
+ }\r
+\r
+ Atom tmpatom = new Atom(line);\r
+ tmpchain = findChain(tmpatom.chain);\r
+ if (tmpchain != null)\r
+ {\r
+ tmpchain.atoms.addElement(tmpatom);\r
+ }\r
+ else\r
+ {\r
+ tmpchain = new PDBChain(tmpatom.chain);\r
+ chains.addElement(tmpchain);\r
+ tmpchain.atoms.addElement(tmpatom);\r
+ }\r
+ }\r
+ index ++;\r