merge from develop
[jalview.git] / src / jalview / analysis / Conservation.java
index 1aa29e0..b8f1d92 100755 (executable)
  */
 package jalview.analysis;
 
-import java.awt.Color;
-import java.util.*;
+import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.Annotation;
+import jalview.datamodel.Sequence;
+import jalview.datamodel.SequenceI;
 
-import jalview.datamodel.*;
+import java.awt.Color;
+import java.util.Enumeration;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Vector;
 
 /**
  * Calculates conservation values for a given set of sequences
@@ -108,7 +114,7 @@ public class Conservation
     {
       for (s = 0; s < sSize; s++)
       {
-        sarray[s] = (SequenceI) sequences.get(s);
+        sarray[s] = sequences.get(s);
         if (sarray[s].getLength() > maxLength)
         {
           maxLength = sarray[s].getLength();
@@ -274,7 +280,7 @@ public class Conservation
                 resultHash.put(type, ht.get("-"));
               }
             }
-            else if (((Integer) resultHash.get(type)).equals((Integer) ht
+            else if (((Integer) resultHash.get(type)).equals(ht
                     .get(res)) == false)
             {
               resultHash.put(type, new Integer(-1));
@@ -373,7 +379,7 @@ public class Conservation
     {
       gapcons = countConsNGaps(i);
       totGaps = gapcons[1];
-      pgaps = ((float) totGaps * 100) / (float) sequences.length;
+      pgaps = ((float) totGaps * 100) / sequences.length;
       consSymbs[i-start]=new String();
       
       if (percentageGaps > pgaps)
@@ -679,7 +685,7 @@ public class Conservation
 
       if (Character.isDigit(c))
       {
-        value = (int) (c - '0');
+        value = c - '0';
       }
       else if (c == '*')
       {
@@ -692,8 +698,11 @@ public class Conservation
 
       float vprop = value - min;
       vprop /= max;
+      int consp = i - start;
+      String conssym = (value > 0 && consp > -1 && consp < consSymbs.length) ? consSymbs[consp]
+              : "";
       conservation.annotations[i] = new Annotation(String.valueOf(c),
-              consSymbs[i-start], ' ', value, new Color(minR
+              conssym, ' ', value, new Color(minR
                       + (maxR * vprop), minG + (maxG * vprop), minB
                       + (maxB * vprop)));