JAL-1013 - toy menu to switch between nucleotide and blosum 62 modes of calculation...
[jalview.git] / src / jalview / schemes / ResidueProperties.java
index 67211cd..bc15298 100755 (executable)
@@ -1,6 +1,6 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6)
- * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)
+ * Copyright (C) 2011 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
  * 
  * This file is part of Jalview.
  * 
@@ -95,6 +95,15 @@ 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];
@@ -514,21 +523,27 @@ 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 }, // -
-      { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, // -
+      { 10, -8, -8, -8, -8, 1,  1, -8,  1,  1, 1 }, // C
+      { -8, 10, -8, -8, 10, 1,  1, -8,  1,  1, 1 }, // T
+      { -8, -8, 10, -8, -8, 1,  1,  1, -8,  1, 1 }, // A
+      { -8, -8, -8, 10, -8, 1,  1,  1, -8,  1, 1 }, // G
+      { -8, 10, -8, -8, 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
+      { -8, -8,  1,  1, -8, 0,  0, 10,  0,  1, 1 }, // R
+      {  1,  1, -8, -8,  1, 0,  0,  0, 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 }, // -
   };
-  /**
+/**
    * register matrices in list
    */
   static
@@ -536,11 +551,12 @@ 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 =
   { midBlue, new Color(153, 153, 255),
-  // Color.lightGray,
+      // Color.lightGray,
       new Color(204, 204, 255), };
 
   public static final float[] pidThresholds =