JAL-1933 show occupancy in tooltip for row
[jalview.git] / src / jalview / analysis / AAFrequency.java
index ffa413b..b806355 100755 (executable)
  */
 package jalview.analysis;
 
-import java.util.Arrays;
-import java.util.Hashtable;
-import java.util.List;
-
 import jalview.datamodel.AlignedCodonFrame;
 import jalview.datamodel.AlignmentAnnotation;
 import jalview.datamodel.AlignmentI;
@@ -41,6 +37,11 @@ import jalview.util.Format;
 import jalview.util.MappingUtils;
 import jalview.util.QuickSort;
 
+import java.awt.Color;
+import java.util.Arrays;
+import java.util.Hashtable;
+import java.util.List;
+
 /**
  * Takes in a vector or array of sequences and column start and column end and
  * returns a new Hashtable[] of size maxSeqLength, if Hashtable not supplied.
@@ -291,7 +292,7 @@ public class AAFrequency
   /**
    * Derive the gap count annotation row.
    * 
-   * @param consensus
+   * @param gaprow
    *          the annotation row to add annotations to
    * @param profiles
    *          the source consensus data
@@ -300,11 +301,11 @@ public class AAFrequency
    * @param endCol
    *          end column (exclusive)
    */
-  public static void completeGapAnnot(AlignmentAnnotation consensus,
+  public static void completeGapAnnot(AlignmentAnnotation gaprow,
           ProfilesI profiles, int startCol, int endCol, long nseq)
   {
-    if (consensus == null || consensus.annotations == null
-            || consensus.annotations.length < endCol)
+    if (gaprow == null || gaprow.annotations == null
+            || gaprow.annotations.length < endCol)
     {
       /*
        * called with a bad alignment annotation row 
@@ -313,8 +314,9 @@ public class AAFrequency
       return;
     }
     // always set ranges again
-    consensus.graphMax = nseq;
-    consensus.graphMin = 0;
+    gaprow.graphMax = nseq;
+    gaprow.graphMin = 0;
+    double scale = 0.8/nseq;
     for (int i = startCol; i < endCol; i++)
     {
       ProfileI profile = profiles.get(i);
@@ -324,17 +326,17 @@ public class AAFrequency
          * happens if sequences calculated over were 
          * shorter than alignment width
          */
-        consensus.annotations[i] = null;
+        gaprow.annotations[i] = null;
         return;
       }
 
       final int gapped = profile.getNonGapped();
 
-      String description = String.valueOf(gapped);
+      String description = "" + gapped;
 
-      consensus.annotations[i] = new Annotation(description, description,
-              '\0',
-              gapped);
+      gaprow.annotations[i] = new Annotation("", description,
+              '\0', gapped, jalview.util.ColorUtils.bleachColour(
+                      Color.DARK_GRAY, (float) scale * gapped));
     }
   }