transfer and update of sequenceFeatures for associated alignment sequence
authorjprocter <Jim Procter>
Thu, 18 Jan 2007 18:21:42 +0000 (18:21 +0000)
committerjprocter <Jim Procter>
Thu, 18 Jan 2007 18:21:42 +0000 (18:21 +0000)
src/MCview/AppletPDBCanvas.java
src/MCview/PDBfile.java

index 4cba94d..609126c 100755 (executable)
@@ -155,7 +155,7 @@ public class AppletPDBCanvas extends Panel implements MouseListener, MouseMotion
         mainchain.seqend = seqend;
         mainchain.isVisible = true;
         mainchain.makeExactMapping(maxAlignseq, sequence);
-
+        mainchain.transferRESNUMFeatures(sequence, null);
         this.pdb = pdb;
         this.prefsize = new Dimension(getSize().width, getSize().height);
 
index 4d2a8d5..f4a213f 100755 (executable)
-/*\r
-* Jalview - A Sequence Alignment Editor and Viewer\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
-* as published by the Free Software Foundation; either version 2\r
-* of the License, or (at your option) any later version.\r
-*\r
-* This program is distributed in the hope that it will be useful,\r
-* but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
-* GNU General Public License for more details.\r
-*\r
-* You should have received a copy of the GNU General Public License\r
-* along with this program; if not, write to the Free Software\r
-* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA\r
-*/\r
-package MCview;\r
-\r
-import jalview.datamodel.*;\r
-\r
-import java.io.*;\r
-\r
-import java.util.*;\r
-import java.awt.Color;\r
-\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
-    {\r
-        super(inFile, inType);\r
-    }\r
-\r
-    public String print()\r
-    {\r
-      return null;\r
-    }\r
-\r
-    public void parse() throws IOException\r
-    {\r
-      try{\r
-        chains = new Vector();\r
-\r
-        PDBChain tmpchain;\r
-        String line;\r
-        boolean modelFlag = false;\r
-        boolean terFlag = false;\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
-            //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
-        }\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(),\r
-                                          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
-      }catch(OutOfMemoryError er)\r
-      {\r
-        System.out.println("OUT OF MEMORY LOADING PDB FILE");\r
-        throw new IOException("Out of memory loading PDB File");\r
-      }\r
-    }\r
-\r
-    public void makeResidueList() {\r
-        for (int i = 0; i < chains.size(); i++) {\r
-            ((PDBChain) chains.elementAt(i)).makeResidueList();\r
-        }\r
-    }\r
-\r
-    public void makeCaBondList() {\r
-        for (int i = 0; i < chains.size(); i++) {\r
-            ((PDBChain) chains.elementAt(i)).makeCaBondList();\r
-        }\r
-    }\r
-\r
-    public PDBChain findChain(String id) {\r
-        for (int i = 0; i < chains.size(); i++) {\r
-            if (((PDBChain) chains.elementAt(i)).id.equals(id)) {\r
-                return (PDBChain) chains.elementAt(i);\r
-            }\r
-        }\r
-\r
-        return null;\r
-    }\r
-\r
-    public void setChargeColours() {\r
-        for (int i = 0; i < chains.size(); i++) {\r
-            ((PDBChain) chains.elementAt(i)).setChargeColours();\r
-        }\r
-    }\r
-\r
-    public void setColours(jalview.schemes.ColourSchemeI cs) {\r
-        for (int i = 0; i < chains.size(); i++) {\r
-            ((PDBChain) chains.elementAt(i)).setChainColours(cs);\r
-        }\r
-    }\r
-\r
-    public void setChainColours()\r
-    {\r
-       for (int i = 0; i < chains.size(); i++)\r
-       {\r
-            ((PDBChain) chains.elementAt(i)).setChainColours(\r
-                     Color.getHSBColor(1.0f / (float)i, .4f, 1.0f)\r
-                );\r
-        }\r
-    }\r
-}\r
+/*
+* Jalview - A Sequence Alignment Editor and Viewer
+* Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+*/
+package MCview;
+
+import jalview.datamodel.*;
+
+import java.io.*;
+
+import java.util.*;
+import java.awt.Color;
+
+
+public class PDBfile extends jalview.io.AlignFile {
+    public Vector chains;
+    public String id;
+
+    public PDBfile(String inFile, String inType) throws IOException
+    {
+        super(inFile, inType);
+    }
+
+    public String print()
+    {
+      return null;
+    }
+
+    public void parse() throws IOException
+    {
+      try{
+        chains = new Vector();
+
+        PDBChain tmpchain;
+        String line;
+        boolean modelFlag = false;
+        boolean terFlag = false;
+
+        int index = 0;
+        while ( (line = nextLine()) != null)
+        {
+          if (line.indexOf("HEADER") == 0)
+          {
+            id = line.substring(62, 67).trim();
+            continue;
+          }
+          // Were we to do anything with SEQRES - we start it here
+          if (line.indexOf("SEQRES") == 0) {              
+          }
+          
+          if (line.indexOf("MODEL") == 0)
+            modelFlag = true;
+
+          if (line.indexOf("TER") == 0)
+            terFlag = true;
+
+          if (modelFlag && line.indexOf("ENDMDL") == 0)
+            break;
+          if (line.indexOf("ATOM") == 0
+              || (line.indexOf("HETATM") == 0 && !terFlag)
+              )
+          {
+            terFlag = false;
+
+            //Jalview is only interested in CA bonds????
+            if (!line.substring(12, 15).trim().equals("CA"))
+            {
+              continue;
+            }
+
+            Atom tmpatom = new Atom(line);
+            tmpchain = findChain(tmpatom.chain);
+            if (tmpchain != null)
+            {
+              tmpchain.atoms.addElement(tmpatom);
+            }
+            else
+            {
+              tmpchain = new PDBChain(tmpatom.chain);
+              chains.addElement(tmpchain);
+              tmpchain.atoms.addElement(tmpatom);
+            }
+          }
+          index++;
+        }
+
+        makeResidueList();
+        makeCaBondList();
+
+        if (id == null)
+        {
+          id = inFile.getName();
+        }
+        for (int i = 0; i < chains.size(); i++)
+        {
+          SequenceI seq = ( (PDBChain) chains.elementAt(i)).
+              sequence;
+          seq.setName(id + "|" + seq.getName());
+          Sequence dataset = new Sequence(seq.
+                                          getName(),
+                                          seq.getSequence().toString(),
+                                          seq.getStart(), seq.getEnd());
+          dataset.setSequenceFeatures(seq.getSequenceFeatures());
+          PDBEntry entry = new PDBEntry();
+          entry.setId(id);
+          if (inFile != null)
+            entry.setFile(inFile.getAbsolutePath());
+
+          seq.setDatasetSequence(dataset);
+          dataset.addPDBId(entry);
+
+          getSeqs().addElement(seq);
+        }
+      }catch(OutOfMemoryError er)
+      {
+        System.out.println("OUT OF MEMORY LOADING PDB FILE");
+        throw new IOException("Out of memory loading PDB File");
+      }
+    }
+
+    public void makeResidueList() {
+        for (int i = 0; i < chains.size(); i++) {
+            ((PDBChain) chains.elementAt(i)).makeResidueList();
+        }
+    }
+
+    public void makeCaBondList() {
+        for (int i = 0; i < chains.size(); i++) {
+            ((PDBChain) chains.elementAt(i)).makeCaBondList();
+        }
+    }
+
+    public PDBChain findChain(String id) {
+        for (int i = 0; i < chains.size(); i++) {
+            if (((PDBChain) chains.elementAt(i)).id.equals(id)) {
+                return (PDBChain) chains.elementAt(i);
+            }
+        }
+
+        return null;
+    }
+
+    public void setChargeColours() {
+        for (int i = 0; i < chains.size(); i++) {
+            ((PDBChain) chains.elementAt(i)).setChargeColours();
+        }
+    }
+
+    public void setColours(jalview.schemes.ColourSchemeI cs) {
+        for (int i = 0; i < chains.size(); i++) {
+            ((PDBChain) chains.elementAt(i)).setChainColours(cs);
+        }
+    }
+
+    public void setChainColours()
+    {
+       for (int i = 0; i < chains.size(); i++)
+       {
+            ((PDBChain) chains.elementAt(i)).setChainColours(
+                     Color.getHSBColor(1.0f / (float)i, .4f, 1.0f)
+                );
+        }
+    }
+}