JAL-1161 changed signature to allow clipping bounds for panel to be obtained
[jalview.git] / src / jalview / schemes / ResidueProperties.java
index e5ba444..fa4260f 100755 (executable)
@@ -1,13 +1,13 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)
- * Copyright (C) 2011 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8)
+ * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle
  * 
  * 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.
- * 
+ *  
  * 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 
@@ -97,6 +97,16 @@ public class ResidueProperties
     // extend subt. matrices
   }
 
+  /**
+   * maximum (gap) index for matrices involving protein alphabet
+   */
+  public final static int maxProteinIndex = 23;
+
+  /**
+   * maximum (gap) index for matrices involving nucleotide alphabet
+   */
+  public final static int maxNucleotideIndex = 10;
+
   static
   {
     nucleotideIndex = new int[255];
@@ -572,18 +582,24 @@ public class ResidueProperties
    * new Color(60, 136, 238), // U Color.white, // I Color.white, // X
    * Color.white, // R Color.white, // Y Color.white, // N Color.white, // Gap
    */
+
+  // JBPNote: patch matrix for T/U equivalence when working with DNA or RNA.
+  // Will equate sequences if working with mixed nucleotide sets.
+  // treats T and U identically. R and Y weak equivalence with AG and CTU.
+  // N matches any other base weakly
+  //
   static final int[][] DNA =
   {
-  { 10, -8, -8, -8, 1, 0, 0, 0, 0, 0, 1 }, // C
-      { -8, 10, -8, -8, 1, 0, 0, 0, 0, 0, 1 }, // T
-      { -8, -8, 10, -8, 1, 0, 0, 0, 0, 0, 1 }, // A
-      { -8, -8, -8, 10, 1, 0, 0, 0, 0, 0, 1 }, // G
-      { 1, 1, 1, 1, 10, 0, 0, 0, 0, 0, 1 }, // -
-      { 1, 1, 1, 1, 1, 10, 0, 0, 0, 0, 1 }, // -
-      { 1, 1, 1, 1, 1, 0, 10, 0, 0, 0, 1 }, // -
-      { 1, 1, 1, 1, 1, 0, 0, 10, 0, 0, 1 }, // -
-      { 1, 1, 1, 1, 1, 0, 0, 0, 10, 0, 1 }, // -
-      { 1, 1, 1, 1, 1, 0, 0, 0, 0, 10, 1 }, // -
+  { 10, -8, -8, -8, -8, 1, 1, 1, -8, 1, 1 }, // A
+      { -8, 10, -8, -8, -8, 1, 1, -8, 1, 1, 1 }, // C
+      { -8, -8, 10, -8, -8, 1, 1, 1, -8, 1, 1 }, // G
+      { -8, -8, -8, 10, 10, 1, 1, -8, 1, 1, 1 }, // T
+      { -8, -8, -8, 10, 10, 1, 1, -8, 1, 1, 1 }, // U
+      { 1, 1, 1, 1, 1, 10, 0, 0, 0, 1, 1 }, // I
+      { 1, 1, 1, 1, 1, 0, 10, 0, 0, 1, 1 }, // X
+      { 1, -8, 1, -8, -8, 0, 0, 10, -8, 1, 1 }, // R
+      { -8, 1, -8, 1, 1, 0, 0, -8, 10, 1, 1 }, // Y
+      { 1, 1, 1, 1, 1, 1, 1, 1, 1, 10, 1 }, // N
       { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, // -
   };
   /**
@@ -594,6 +610,7 @@ public class ResidueProperties
     scoreMatrices.put("BLOSUM62", new ScoreMatrix("BLOSUM62", BLOSUM62, 0));
     scoreMatrices.put("PAM250", new ScoreMatrix("PAM250", PAM250, 0));
     scoreMatrices.put("DNA", new ScoreMatrix("DNA", DNA, 1));
+
   }
 
   public static final Color[] pidColours =