pdb end seq and startseq determined here
authoramwaterhouse <Andrew Waterhouse>
Thu, 5 May 2005 13:25:49 +0000 (13:25 +0000)
committeramwaterhouse <Andrew Waterhouse>
Thu, 5 May 2005 13:25:49 +0000 (13:25 +0000)
src/MCview/rotCanvas.java

index 5df8d9f..9b822f3 100755 (executable)
@@ -5,6 +5,8 @@ import java.awt.event.*;
 import java.util.*;\r
 import java.io.*;\r
 import javax.swing.*;\r
+import jalview.analysis.AlignSeq;\r
+import jalview.datamodel.*;\r
 \r
 public class rotCanvas extends JPanel implements KeyListener,\r
                                                  MouseListener,\r
@@ -53,7 +55,53 @@ public class rotCanvas extends JPanel implements KeyListener,
 \r
   Font font = new Font("Helvetica",Font.PLAIN,10);\r
 \r
-  public rotCanvas(PDBfile pdb) throws IOException {\r
+  public rotCanvas(PDBfile pdb, Sequence sequence, jalview.gui.AlignViewport av) throws IOException {\r
+\r
+    int max = -10;\r
+    int maxchain = -1;\r
+    int pdbstart=0, pdbend=0,  seqstart =0,  seqend=0;\r
+\r
+\r
+    for (int i=0; i < pdb.chains.size(); i++) {\r
+      // Now lets compare the sequences to get\r
+      // the start and end points.\r
+\r
+    java.util.StringTokenizer str = new java.util.StringTokenizer(sequence.getSequence(), ".");\r
+    String newString = "";\r
+\r
+    while (str.hasMoreTokens()) {\r
+        newString += str.nextToken();\r
+    }\r
+      // Align the sequence to the pdb\r
+      AlignSeq as = new AlignSeq(sequence,((PDBChain)pdb.chains.elementAt(i)).sequence,"pep");\r
+      as.calcScoreMatrix();\r
+      as.traceAlignment();\r
+      as.printAlignment();\r
+\r
+      if (as.maxscore > max) {\r
+        max = as.maxscore;\r
+        maxchain = i;\r
+\r
+        pdbstart = as.seq2start;\r
+        pdbend = as.seq2end;\r
+        seqstart = as.seq1start  - 1 ;\r
+        seqend = as.seq1end  -1;\r
+      }\r
+\r
+      System.out.println("PDB start/end " + pdbstart + " " + pdbend);\r
+      System.out.println("SEQ start/end " + seqstart + " " + seqend);\r
+    }\r
+\r
+\r
+    ( (PDBChain)pdb.chains.elementAt(maxchain)).pdbstart = pdbstart;\r
+    ( (PDBChain)pdb.chains.elementAt(maxchain)).pdbend = pdbend;\r
+    ( (PDBChain)pdb.chains.elementAt(maxchain)).seqstart = seqstart;\r
+     ( (PDBChain)pdb.chains.elementAt(maxchain)).seqend = seqend;\r
+     ( (PDBChain) pdb.chains.elementAt(maxchain)).isVisible = true;\r
+     ( (PDBChain) pdb.chains.elementAt(maxchain)).sequence = sequence;\r
+     ( (PDBChain)pdb.chains.elementAt(maxchain)).colourBySequence(av, sequence);\r
+\r
+\r
 \r
     this.pdb      = pdb;\r
     this.prefsize = new Dimension( getWidth(), getHeight());\r
@@ -231,7 +279,7 @@ public class rotCanvas extends JPanel implements KeyListener,
     centre[2] = ztot / (2 * (float)bsize);\r
   }\r
 \r
-  public void paintComponent(Graphics g) {\r
+  public void paint(Graphics g) {\r
     //Only create the image at the beginning -\r
     //this saves much memory usage\r
     if ((img == null) || (prefsize.width != getWidth()) || (prefsize.height != getHeight())) {\r
@@ -473,7 +521,6 @@ public class rotCanvas extends JPanel implements KeyListener,
     if(fatom!=null)\r
      {\r
        this.setToolTipText(fatom.resName);\r
-       System.out.println(fatom.resName);\r
      }\r
      else\r
         this.setToolTipText(null);\r