Merge branch 'releases/Release_2_11_3_Branch'
[jalview.git] / src / jalview / datamodel / Mapping.java
index 5a4689d..4d90e3e 100644 (file)
  */
 package jalview.datamodel;
 
-import jalview.util.Comparison;
-import jalview.util.MapList;
-
 import java.util.Iterator;
 import java.util.NoSuchElementException;
 import java.util.Vector;
 
+import jalview.util.Comparison;
+import jalview.util.MapList;
+
 public class Mapping
 {
   /**
@@ -46,7 +46,7 @@ public class Mapping
     /*
      * The characters of the aligned sequence e.g. "-cGT-ACgTG-"
      */
-    private final char[] alignedSeq;
+    private final SequenceI alignedSeq;
 
     /*
      * the sequence start residue
@@ -102,7 +102,7 @@ public class Mapping
      */
     public AlignedCodonIterator(SequenceI seq, char gapChar)
     {
-      this.alignedSeq = seq.getSequence();
+      this.alignedSeq = seq;
       this.start = seq.getStart();
       this.gap = gapChar;
       fromRanges = map.getFromRanges().iterator();
@@ -176,14 +176,14 @@ public class Mapping
       if (toPosition <= currentToRange[1])
       {
         SequenceI seq = Mapping.this.to;
-        char pep = seq.getSequence()[toPosition - seq.getStart()];
+        char pep = seq.getCharAt(toPosition - seq.getStart());
         toPosition++;
         return String.valueOf(pep);
       }
       if (!toRanges.hasNext())
       {
-        throw new NoSuchElementException("Ran out of peptide at position "
-                + toPosition);
+        throw new NoSuchElementException(
+                "Ran out of peptide at position " + toPosition);
       }
       currentToRange = toRanges.next();
       toPosition = currentToRange[0];
@@ -257,9 +257,10 @@ public class Mapping
        * allow for offset e.g. treat pos 8 as 2 if sequence starts at 7
        */
       int truePos = sequencePos - (start - 1);
-      while (alignedBases < truePos && alignedColumn < alignedSeq.length)
+      int length = alignedSeq.getLength();
+      while (alignedBases < truePos && alignedColumn < length)
       {
-        char c = alignedSeq[alignedColumn++];
+        char c = alignedSeq.getCharAt(alignedColumn++);
         if (c != gap && !Comparison.isGap(c))
         {
           alignedBases++;
@@ -432,23 +433,6 @@ public class Mapping
   }
 
   /**
-   * gets boundary in direction of mapping
-   * 
-   * @param position
-   *          in mapped reference frame
-   * @return int{start, end} positions in associated sequence (in direction of
-   *         mapped word)
-   */
-  public int[] getWord(int mpos)
-  {
-    if (map != null)
-    {
-      return map.getToWord(mpos);
-    }
-    return null;
-  }
-
-  /**
    * width of mapped unit in associated sequence
    * 
    */
@@ -531,7 +515,7 @@ public class Mapping
         for (int i = 0, v = 0; i < frange.length; i += 2, v++)
         {
           vf[v] = new SequenceFeature(f, frange[i], frange[i + 1],
-                  f.getFeatureGroup());
+                  f.getFeatureGroup(), f.getScore());
           if (frange.length > 2)
           {
             vf[v].setDescription(f.getDescription() + "\nPart " + (v + 1));
@@ -666,8 +650,8 @@ public class Mapping
         to[f * 2] = r[0];
         to[f * 2 + 1] = r[1];
       }
-      copy.setMap(new MapList(from, to, map.getFromRatio(), map
-              .getToRatio()));
+      copy.setMap(
+              new MapList(from, to, map.getFromRatio(), map.getToRatio()));
     }
     return copy;
   }
@@ -692,19 +676,6 @@ public class Mapping
     to = tto;
   }
 
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.lang.Object#finalize()
-   */
-  @Override
-  protected void finalize() throws Throwable
-  {
-    map = null;
-    to = null;
-    super.finalize();
-  }
-
   /**
    * Returns an iterator which can serve up the aligned codon column positions
    * and their corresponding peptide products
@@ -714,7 +685,8 @@ public class Mapping
    * @param gapChar
    * @return
    */
-  public Iterator<AlignedCodon> getCodonIterator(SequenceI seq, char gapChar)
+  public Iterator<AlignedCodon> getCodonIterator(SequenceI seq,
+          char gapChar)
   {
     return new AlignedCodonIterator(seq, gapChar);
   }
@@ -725,8 +697,8 @@ public class Mapping
   @Override
   public String toString()
   {
-    return String.format("%s %s", this.map.toString(), this.to == null ? ""
-            : this.to.getName());
+    return String.format("%s %s", this.map.toString(),
+            this.to == null ? "" : this.to.getName());
   }
 
   /**