Extends AlignFile, dataset has PDBEntry added
authoramwaterhouse <Andrew Waterhouse>
Tue, 25 Jul 2006 09:33:12 +0000 (09:33 +0000)
committeramwaterhouse <Andrew Waterhouse>
Tue, 25 Jul 2006 09:33:12 +0000 (09:33 +0000)
src/MCview/PDBfile.java

index 63728ae..36eecb8 100755 (executable)
 */\r
 package MCview;\r
 \r
+import jalview.io.AppletFormatAdapter;\r
+import jalview.datamodel.*;\r
+\r
 import java.io.*;\r
 \r
 import java.net.*;\r
 \r
 import java.util.*;\r
 import java.awt.Color;\r
-import jalview.io.AppletFormatAdapter;\r
 \r
 \r
-public class PDBfile extends jalview.io.FileParse {\r
-    public Vector chains = new Vector();\r
-    Vector lineArray = new Vector();\r
+public class PDBfile extends jalview.io.AlignFile {\r
+    public Vector chains;\r
     public String id;\r
 \r
-    public PDBfile(String[] lines) {\r
-        for (int i = 0; i < lines.length; i++)\r
-            lineArray.addElement(lines[i]);\r
-\r
-        parse();\r
-    }\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
-\r
-        if (inType.equals(AppletFormatAdapter.FILE)) {\r
-            dataIn = new BufferedReader(new FileReader(inFile));\r
-        }\r
-        else if(inType.equals(AppletFormatAdapter.PASTE))\r
-        {\r
-            dataIn = new BufferedReader(new StringReader(inFile));\r
-        }\r
-        else if (inType.equalsIgnoreCase(AppletFormatAdapter.CLASSLOADER))\r
-        {\r
-          java.io.InputStream is = getClass().getResourceAsStream("/" +\r
-              inFile);\r
-\r
-          dataIn = new BufferedReader(new java.io.InputStreamReader(is));\r
-        }\r
-        else\r
-        {\r
-            URL url = new URL(inFile);\r
-            dataIn = new BufferedReader(new InputStreamReader(url.openStream()));\r
-        }\r
-\r
-        while ((line = dataIn.readLine()) != null) {\r
-            lineArray.addElement(line);\r
-        }\r
-\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
@@ -120,7 +85,6 @@ public class PDBfile extends jalview.io.FileParse {
               }\r
 \r
               Atom tmpatom = new Atom(line);\r
-\r
               tmpchain = findChain(tmpatom.chain);\r
               if (tmpchain != null)\r
               {\r
@@ -132,12 +96,31 @@ public class PDBfile extends jalview.io.FileParse {
                 chains.addElement(tmpchain);\r
                 tmpchain.atoms.addElement(tmpatom);\r
               }\r
-\r
           }\r
+          index ++;\r
         }\r
 \r
        makeResidueList();\r
        makeCaBondList();\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
+         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