package MCview;\r
-\r
+// JBPNote TODO: This class is quite noisy - needs proper log.info/log.debug\r
import java.awt.*;\r
import java.awt.event.*;\r
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
\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
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
if(fatom!=null)\r
{\r
this.setToolTipText(fatom.resName);\r
- System.out.println(fatom.resName);\r
}\r
else\r
this.setToolTipText(null);\r