/*\r
* Jalview - A Sequence Alignment Editor and Viewer\r
-* Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
+* Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
*\r
* This program is free software; you can redistribute it and/or\r
* modify it under the terms of the GNU General Public License\r
*/\r
package MCview;\r
\r
-import java.io.*;\r
+import jalview.datamodel.*;\r
\r
-import java.net.*;\r
+import java.io.*;\r
\r
import java.util.*;\r
import java.awt.Color;\r
\r
\r
-public class PDBfile extends jalview.io.FileParse {\r
- public Vector chains = new Vector();\r
- Vector lineArray = new Vector();\r
- String id;\r
-\r
- public PDBfile(String[] lines) {\r
- for (int i = 0; i < lines.length; i++)\r
- lineArray.addElement(lines[i]);\r
-\r
- noLines = lineArray.size();\r
- parse();\r
- }\r
+public class PDBfile extends jalview.io.AlignFile {\r
+ public Vector chains;\r
+ public String id;\r
\r
- public PDBfile(String inFile, String inType) throws IOException {\r
+ public PDBfile(String inFile, String inType) throws IOException\r
+ {\r
super(inFile, inType);\r
+ }\r
\r
- String line;\r
- this.lineArray = new Vector();\r
-\r
- BufferedReader dataIn;\r
-\r
- if (inType.equals("File")) {\r
- dataIn = new BufferedReader(new FileReader(inFile));\r
- }\r
- else if(inType.equals("Paste"))\r
- {\r
- dataIn = new BufferedReader(new StringReader(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
- lineArray = null;\r
+ public String print()\r
+ {\r
+ return null;\r
}\r
\r
- public void parse()\r
+ public void parse() throws IOException\r
{\r
+ chains = new Vector();\r
+\r
PDBChain tmpchain;\r
String line;\r
boolean modelFlag = false;\r
boolean terFlag = false;\r
\r
\r
- for (int i = 0; i < lineArray.size(); i++)\r
+ int index = 0;\r
+ while((line = nextLine())!=null)\r
{\r
-\r
- line = lineArray.elementAt(i).toString();\r
-\r
-\r
if (line.indexOf("HEADER") == 0)\r
{\r
id = line.substring(62, 67).trim();\r
}\r
\r
Atom tmpatom = new Atom(line);\r
-\r
tmpchain = findChain(tmpatom.chain);\r
if (tmpchain != null)\r
{\r
chains.addElement(tmpchain);\r
tmpchain.atoms.addElement(tmpatom);\r
}\r
-\r
}\r
+ index ++;\r
}\r
\r
makeResidueList();\r
makeCaBondList();\r
+\r
+ if(id==null)\r
+ {\r
+ id = inFile.getName();\r
+ }\r
+ for (int i = 0; i < chains.size(); i++)\r
+ {\r
+ SequenceI seq = ( (PDBChain) chains.elementAt(i)).\r
+ sequence;\r
+ seq.setName(id + "|" + seq.getName());\r
+ Sequence dataset = new Sequence(seq.\r
+ getName(),\r
+ seq.getSequence().toString(), seq.getStart(), seq.getEnd());\r
+\r
+ PDBEntry entry = new PDBEntry();\r
+ entry.setId(id);\r
+ if(inFile!=null)\r
+ entry.setFile(inFile.getAbsolutePath());\r
+\r
+ seq.setDatasetSequence(dataset);\r
+ dataset.addPDBId(entry);\r
+\r
+ getSeqs().addElement(seq);\r
+ }\r
}\r
\r
public void makeResidueList() {\r