transfer and update of sequenceFeatures for associated alignment sequence
[jalview.git] / src / MCview / PDBCanvas.java
index 163326c..7da2705 100755 (executable)
@@ -103,7 +103,7 @@ public class PDBCanvas extends JPanel implements MouseListener, MouseMotionListe
             // the start and end points.
             // Align the sequence to the pdb
             AlignSeq as = new AlignSeq(sequence,
-                    ((PDBChain) pdb.chains.elementAt(i)).sequence, "pep");
+                    ((PDBChain) pdb.chains.elementAt(i)).sequence, AlignSeq.PEP);
             as.calcScoreMatrix();
             as.traceAlignment();
             PrintStream  ps = new PrintStream(System.out)
@@ -144,7 +144,8 @@ public class PDBCanvas extends JPanel implements MouseListener, MouseMotionListe
         mainchain.seqend = seqend;
         mainchain.isVisible = true;
         mainchain.makeExactMapping(maxAlignseq, sequence);
-
+        mainchain.transferRESNUMFeatures(sequence, null);
+        seqcanvas.getFeatureRenderer().featuresAdded();
         this.pdb = pdb;
         this.prefsize = new Dimension(getWidth(), getHeight());
 
@@ -448,10 +449,10 @@ public class PDBCanvas extends JPanel implements MouseListener, MouseMotionListe
     int findTrueIndex(int pos)
     {
       // returns the alignment position for a residue
-      int j = sequence.getStart();
+      int j = 1; // first position in PDB atom coordinate sequence
       int i = 0;
 
-      while ( (i < sequence.getLength()) && (j <= sequence.getEnd()) && (j <= pos+1))
+      while ( (i < sequence.getLength()) && (j <= pos+1)) 
       {
         if (!jalview.util.Comparison.isGap(sequence.getCharAt(i)))
         {
@@ -464,7 +465,7 @@ public class PDBCanvas extends JPanel implements MouseListener, MouseMotionListe
       if(i>1)
          i--;
 
-      if ( (j == sequence.getEnd()) && (j < pos))
+      if (j < pos)
       {
         return sequence.getEnd() + 1;
       }
@@ -497,8 +498,8 @@ public class PDBCanvas extends JPanel implements MouseListener, MouseMotionListe
         if(chain!=mainchain)
           continue;
 
-        if ( (tmp.at1.resNumber >= ( (chain.offset + chain.pdbstart) - 1)) &&
-            (tmp.at1.resNumber <= ( (chain.offset + chain.pdbend) - 1)))
+        //if ( (tmp.at1.resNumber >= ( (chain.offset + chain.pdbstart) - 1)) &&
+        //    (tmp.at1.resNumber <= ( (chain.offset + chain.pdbend) - 1)))
         {
             int index = findTrueIndex(tmp.at1.alignmentMapping);
                 //sequence.findIndex(tmp.at1.alignmentMapping);
@@ -515,8 +516,8 @@ public class PDBCanvas extends JPanel implements MouseListener, MouseMotionListe
             }
         }
 
-        if ( (tmp.at2.resNumber >= ( (chain.offset + chain.pdbstart) - 1)) &&
-            (tmp.at2.resNumber <= ( (chain.pdbend + chain.offset) - 1)))
+        //if ( (tmp.at2.resNumber >= ( (chain.offset + chain.pdbstart) - 1)) &&
+        //    (tmp.at2.resNumber <= ( (chain.pdbend + chain.offset) - 1)))
         {
 
             int index =  findTrueIndex(tmp.at2.alignmentMapping);