Merge branch 'patch/JAL-3840_2_11_1_4' into releases/Release_2_11_1_Branch
[jalview.git] / src / jalview / datamodel / ResidueCount.java
index 3e3a966..efab97c 100644 (file)
@@ -28,6 +28,7 @@ import jalview.util.SparseCount;
 /**
  * A class to count occurrences of residues in a profile, optimised for speed
  * and memory footprint.
+ * 
  * @author gmcarstairs
  *
  */
@@ -69,7 +70,7 @@ public class ResidueCount
    */
   private static final String AAS = "ACDEFGHIKLMNPQRSTUVWXY";
 
-  private static final int GAP_COUNT = 0;
+  static final int GAP_COUNT = 0;
 
   /*
    * fast lookup tables holding the index into our count
@@ -211,7 +212,12 @@ public class ResidueCount
         counts[offset] = (short) ++newValue;
       }
     }
-    maxCount = Math.max(maxCount, newValue);
+
+    if (offset!=GAP_COUNT)
+    {
+      // update modal residue count
+      maxCount = Math.max(maxCount, newValue);
+    }
     return newValue;
   }
 
@@ -300,15 +306,7 @@ public class ResidueCount
    */
   public int addGap()
   {
-    int newValue;
-    if (useIntCounts)
-    {
-      newValue = ++intCounts[GAP_COUNT];
-    }
-    else
-    {
-      newValue = ++counts[GAP_COUNT];
-    }
+    int newValue = increment(GAP_COUNT);
     return newValue;
   }
 
@@ -447,8 +445,8 @@ public class ResidueCount
       {
         if (intCounts[i] == count)
         {
-          modal.append(isNucleotide ? NUCS.charAt(i - 1) : AAS
-                  .charAt(i - 1));
+          modal.append(
+                  isNucleotide ? NUCS.charAt(i - 1) : AAS.charAt(i - 1));
         }
       }
     }
@@ -458,8 +456,8 @@ public class ResidueCount
       {
         if (counts[i] == count)
         {
-          modal.append(isNucleotide ? NUCS.charAt(i - 1) : AAS
-                  .charAt(i - 1));
+          modal.append(
+                  isNucleotide ? NUCS.charAt(i - 1) : AAS.charAt(i - 1));
         }
       }
     }
@@ -492,7 +490,8 @@ public class ResidueCount
    * 
    * @return
    */
-  public int size() {
+  public int size()
+  {
     int size = 0;
     if (useIntCounts)
     {
@@ -546,8 +545,8 @@ public class ResidueCount
       {
         if (intCounts[i] > 0)
         {
-          char symbol = isNucleotide ? NUCS.charAt(i - 1) : AAS
-                  .charAt(i - 1);
+          char symbol = isNucleotide ? NUCS.charAt(i - 1)
+                  : AAS.charAt(i - 1);
           symbols[j] = symbol;
           values[j] = intCounts[i];
           j++;
@@ -560,8 +559,8 @@ public class ResidueCount
       {
         if (counts[i] > 0)
         {
-          char symbol = isNucleotide ? NUCS.charAt(i - 1) : AAS
-                  .charAt(i - 1);
+          char symbol = isNucleotide ? NUCS.charAt(i - 1)
+                  : AAS.charAt(i - 1);
           symbols[j] = symbol;
           values[j] = counts[i];
           j++;