X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fschemes%2FScoreMatrix.java;h=895ee86c5f56684a7446d88240610889dfb319a3;hb=aa213924876640ba82e866da5a750d9cdaa816d2;hp=03b6778cf32828bef78cdbc71423111c633c6f2a;hpb=a442f71fc61f1b8b41cedd2c2fd78a5c5323bafb;p=jalview.git
diff --git a/src/jalview/schemes/ScoreMatrix.java b/src/jalview/schemes/ScoreMatrix.java
index 03b6778..895ee86 100644
--- a/src/jalview/schemes/ScoreMatrix.java
+++ b/src/jalview/schemes/ScoreMatrix.java
@@ -1,28 +1,57 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)
+ * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, 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
+ * 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 .
+ */
package jalview.schemes;
-public class ScoreMatrix {
+public class ScoreMatrix
+{
String name;
+
/**
* reference to integer score matrix
*/
int[][] matrix;
+
/**
* 0 for Protein Score matrix. 1 for dna score matrix
*/
int type;
- ScoreMatrix(String name, int[][] matrix, int type) {
- this.matrix=matrix;
- this.type=type;
+
+ ScoreMatrix(String name, int[][] matrix, int type)
+ {
+ this.matrix = matrix;
+ this.type = type;
}
- public boolean isDNA() {
- return type==1;
+
+ public boolean isDNA()
+ {
+ return type == 1;
}
- public boolean isProtein() {
- return type==0;
+
+ public boolean isProtein()
+ {
+ return type == 0;
}
- public int[][] getMatrix() {
+
+ public int[][] getMatrix()
+ {
return matrix;
}
+
/**
*
* @param A1
@@ -31,24 +60,81 @@ public class ScoreMatrix {
*/
public int getPairwiseScore(String A1, String A2)
{
- return getPairwiseScore(A1.charAt(0),A2.charAt(0));
+ return getPairwiseScore(A1.charAt(0), A2.charAt(0));
}
- public int getPairwiseScore(char c, char d) {
+
+ public int getPairwiseScore(char c, char d)
+ {
int pog = 0;
try
{
- int a = (type==0) ? ResidueProperties.aaIndex[c] : ResidueProperties.nucleotideIndex[c];
- int b = (type==0) ? ResidueProperties.aaIndex[d] : ResidueProperties.nucleotideIndex[d];
+ int a = (type == 0) ? ResidueProperties.aaIndex[c]
+ : ResidueProperties.nucleotideIndex[c];
+ int b = (type == 0) ? ResidueProperties.aaIndex[d]
+ : ResidueProperties.nucleotideIndex[d];
pog = matrix[a][b];
- }
- catch (Exception e)
+ } catch (Exception e)
{
- //System.out.println("Unknown residue in " + A1 + " " + A2);
+ // System.out.println("Unknown residue in " + A1 + " " + A2);
}
return pog;
}
+ /**
+ * pretty print the matrix
+ */
+ public String toString()
+ {
+ return outputMatrix(false);
+ }
+ public String outputMatrix(boolean html)
+ {
+ StringBuffer sb=new StringBuffer();
+ int[] symbols=(type==0) ? ResidueProperties.aaIndex : ResidueProperties.nucleotideIndex;
+ int symMax = (type==0) ? ResidueProperties.maxProteinIndex :ResidueProperties.maxNucleotideIndex;
+ boolean header=true;
+ if (html)
+ {
+ sb.append("
");
+ }
+ for (char sym='A';sym<='Z';sym++)
+ {
+ if (symbols[sym]>=0 && symbols[sym] | " : "");
+ for (char sym2='A';sym2<='Z';sym2++)
+ {
+ if (symbols[sym2]>=0 && symbols[sym2] " : "\t")+sym2 +(html ? " ": ""));
+ }
+ }
+ header=false;
+ sb.append(html ? "\n" : "\n");
+ }
+ if (html)
+ {
+ sb.append("");
+ }
+ sb.append((html ? "" : "")+sym+(html ? " | " : ""));
+ for (char sym2='A';sym2<='Z';sym2++)
+ {
+ if (symbols[sym2]>=0 && symbols[sym2]" : "\t")+matrix[symbols[sym]][symbols[sym2]]+(html ? "" : ""));
+ }
+ }
+ sb.append(html ? "
\n" : "\n");
+ }
+ }
+ if (html)
+ {
+ sb.append("
");
+ }
+ return sb.toString();
+ }
}