JAL-1645 Version-Rel Version 2.9 Year-Rel 2015 Licensing glob
[jalview.git] / src / jalview / analysis / Conservation.java
index 0910f49..f12d801 100755 (executable)
@@ -1,27 +1,35 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.0b1)
- * Copyright (C) 2014 The Jalview Authors
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9)
+ * Copyright (C) 2015 The Jalview Authors
  * 
  * This file is part of Jalview.
  * 
  * Jalview is free software: you can redistribute it and/or
  * modify it under the terms of the GNU General Public License 
- * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
  *  
  * Jalview is distributed in the hope that it will be useful, but 
  * WITHOUT ANY WARRANTY; without even the implied warranty 
  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
  * PURPOSE.  See the GNU General Public License for more details.
  * 
- * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
  * The Jalview Authors are detailed in the 'AUTHORS' file.
  */
 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
@@ -106,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();
@@ -272,8 +280,7 @@ public class Conservation
                 resultHash.put(type, ht.get("-"));
               }
             }
-            else if (((Integer) resultHash.get(type)).equals((Integer) ht
-                    .get(res)) == false)
+            else if (((Integer) resultHash.get(type)).equals(ht.get(res)) == false)
             {
               resultHash.put(type, new Integer(-1));
             }
@@ -366,14 +373,14 @@ public class Conservation
     {
       consString.append('-');
     }
-    consSymbs = new String[end-start+1];
+    consSymbs = new String[end - start + 1];
     for (int i = start; i <= end; i++)
     {
       gapcons = countConsNGaps(i);
       totGaps = gapcons[1];
-      pgaps = ((float) totGaps * 100) / (float) sequences.length;
-      consSymbs[i-start]=new String();
-      
+      pgaps = ((float) totGaps * 100) / sequences.length;
+      consSymbs[i - start] = new String();
+
       if (percentageGaps > pgaps)
       {
         resultHash = total[i - start];
@@ -390,7 +397,7 @@ public class Conservation
           {
             if (result.intValue() == 1)
             {
-              consSymbs[i-start] = type+" "+consSymbs[i-start];
+              consSymbs[i - start] = type + " " + consSymbs[i - start];
               count++;
             }
           }
@@ -398,14 +405,17 @@ public class Conservation
           {
             if (result.intValue() != -1)
             {
-              { 
-                 if (result.intValue()==0) {
-                   consSymbs[i-start] = consSymbs[i-start]+ " !"+type;
-                 } else {
-                   consSymbs[i-start] = type+" "+consSymbs[i-start];
-                 }
+              {
+                if (result.intValue() == 0)
+                {
+                  consSymbs[i - start] = consSymbs[i - start] + " !" + type;
+                }
+                else
+                {
+                  consSymbs[i - start] = type + " " + consSymbs[i - start];
+                }
               }
-              
+
               count++;
             }
           }
@@ -677,7 +687,7 @@ public class Conservation
 
       if (Character.isDigit(c))
       {
-        value = (int) (c - '0');
+        value = c - '0';
       }
       else if (c == '*')
       {
@@ -690,10 +700,12 @@ 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
-                      + (maxR * vprop), minG + (maxG * vprop), minB
-                      + (maxB * vprop)));
+              conssym, ' ', value, new Color(minR + (maxR * vprop), minG
+                      + (maxG * vprop), minB + (maxB * vprop)));
 
       // Quality calc
       if (quality2 != null)