Formatted source
[jalview.git] / src / jalview / analysis / AlignmentUtil.java
index b992f4a..a2e1c71 100755 (executable)
 * along with this program; if not, write to the Free Software\r
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA\r
 */\r
-\r
 package jalview.analysis;\r
 \r
 import jalview.datamodel.*;\r
-import jalview.util.*;\r
-import java.util.*;\r
 \r
-public class AlignmentUtil {\r
+import jalview.util.*;\r
 \r
-  private AlignmentUtil() {\r
-  }\r
+import java.util.*;\r
 \r
-  public static int[][] percentIdentity2(AlignmentI align) {\r
-    return percentIdentity2(align,0,align.getWidth()-1);\r
-  }\r
 \r
-  public static int[][] percentIdentity2(AlignmentI align, int start, int end) {\r
-    int [][] cons2 = new int[align.getWidth()][24];\r
-    // Initialize the array\r
-    for (int j=0;j<24;j++) {\r
-      for (int i=0; i < align.getWidth();i++) {\r
-        cons2[i][j] = 0;\r
-      }\r
+public class AlignmentUtil {\r
+    private AlignmentUtil() {\r
     }\r
 \r
-    return cons2;\r
-  }\r
-  public static int getPixelHeight(int i, int j,int charHeight) {\r
-    int h=0;\r
-    while (i < j) {\r
-      h += charHeight;\r
-      i++;\r
+    public static int[][] percentIdentity2(AlignmentI align) {\r
+        return percentIdentity2(align, 0, align.getWidth() - 1);\r
     }\r
-    return h;\r
-  }\r
-\r
-\r
-    public static Vector substitution_rates (AlignmentI align, int start, int end) {\r
-\r
-       Vector rates = new Vector();\r
-\r
-       int len = (end-start+1);\r
-\r
-       // Turn seqs into char arrays\r
-\r
-       int[][] seqint = new int[align.getHeight()][len];\r
-\r
-\r
-       for (int j = 0; j < align.getHeight(); j++) {\r
-\r
-           SequenceI seq = align.getSequenceAt(j);\r
-\r
-           for (int i = 0 ; i < len; i++) {\r
-               char c = seq.getCharAt(start + i - 1);\r
-\r
-               if (c == 'A') {\r
-                   seqint[j][i] = 0;\r
-               } else if (c == 'C') {\r
-                   seqint[j][i] = 1;\r
-               } else if (c == 'T') {\r
-                   seqint[j][i] = 2;\r
-               } else if (c == 'G') {\r
-                   seqint[j][i] = 3;\r
-               } else {\r
-                   seqint[j][i] = -1;\r
-               }\r
-\r
-           }\r
-\r
-       }\r
-\r
-\r
-       //      print_matrix(seqint,2,len);     for (int j = 0; j < align.getHeight(); j++) {\r
-\r
-           for (int j = 0; j < align.getHeight(); j++) {\r
-\r
-               for (int k = 0; k < align.getHeight(); k++) {\r
-\r
-               int counts[][] = new int[4][4];\r
-               int tot  = 0;\r
-               int tots[] = new int[4];\r
-               int fulltot = 0;\r
-               int fulltots[] = new int[4];\r
-\r
-               for (int i = 0 ; i < len; i++) {\r
-\r
-                   if (k != j) {\r
 \r
-                       //                      System.out.println("Seq " + j + " " + k + " " + i + " " + seqint[j][i] + " " + seqint[k][i]);\r
-                       if (seqint[j][i] >= 0 &&\r
-                           seqint[k][i] >= 0) {\r
-                           counts[seqint[k][i]][seqint[j][i]]++;\r
+    public static int[][] percentIdentity2(AlignmentI align, int start, int end) {\r
+        int[][] cons2 = new int[align.getWidth()][24];\r
 \r
-                           //  print_matrix(counts,4,4);\r
-                           tots[seqint[j][i]]++;\r
-                           tot++;\r
-                       }\r
-                       if (seqint[j][i] != -1) {\r
-                           fulltots[seqint[j][i]]++;\r
-                           fulltot++;\r
-                       }\r
-                   }\r
-               }\r
+        // Initialize the array\r
+        for (int j = 0; j < 24; j++) {\r
+            for (int i = 0; i < align.getWidth(); i++) {\r
+                cons2[i][j] = 0;\r
+            }\r
+        }\r
 \r
-               if (k != j) {\r
-\r
-                   System.out.println();\r
-\r
-                   System.out.println("Sequence " + align.getSequenceAt(j).getName() + " "  + align.getSequenceAt(k).getName());\r
-\r
-                   System.out.println();\r
-                   print_matrix(counts,4,4);\r
-                   System.out.println();\r
-\r
-\r
-\r
-                   double[][] out = new double[4][4];// = constant_multiply_matrix(counts,1.0/tot,4,4);\r
-\r
-                   for (int i = 0; i < 4; i++) {\r
-                       for (int jj = 0; jj < 4; jj++) {\r
-                           out[i][jj] = (double)counts[i][jj]/tots[jj];\r
-                       }\r
-                   }\r
-\r
-                   print_matrix(out,4,4);\r
-                   System.out.println();\r
-\r
-\r
-                   System.out.print("RATES\t");\r
-                   System.out.print(align.getSequenceAt(j).getName() + "\t"  + align.getSequenceAt(k).getName() + "\t");\r
-\r
-                   for (int i = 0; i < 4; i++) {\r
-                       for (int jj = 0; jj < 4; jj++) {\r
-                           Format.print(System.out,"%4.3f\t",out[i][jj]);\r
-                       }\r
-                   }\r
-                   System.out.println();\r
-\r
-                   for (int i = 0; i < 4; i++) {\r
-                       Format.print(System.out,"%4.3f\t",(double)fulltots[i]*1.0/fulltot);\r
-                   }\r
-\r
-                   System.out.println();\r
-                   System.out.print("\nGC ");\r
-\r
-                   Format.print(System.out,"%4.3f\t",(double)(100*fulltots[1]+fulltots[3])/fulltot);\r
-\r
-                   System.out.print((fulltots[1]+fulltots[3]) + "\t" + fulltot);\r
+        return cons2;\r
+    }\r
 \r
+    public static int getPixelHeight(int i, int j, int charHeight) {\r
+        int h = 0;\r
 \r
-                   System.out.println();\r
+        while (i < j) {\r
+            h += charHeight;\r
+            i++;\r
+        }\r
 \r
-                   rates.addElement(out);\r
-               }\r
+        return h;\r
+    }\r
 \r
-           }\r
-       }\r
-       return rates;\r
+    public static Vector substitution_rates(AlignmentI align, int start, int end) {\r
+        Vector rates = new Vector();\r
+\r
+        int len = (end - start + 1);\r
+\r
+        // Turn seqs into char arrays\r
+        int[][] seqint = new int[align.getHeight()][len];\r
+\r
+        for (int j = 0; j < align.getHeight(); j++) {\r
+            SequenceI seq = align.getSequenceAt(j);\r
+\r
+            for (int i = 0; i < len; i++) {\r
+                char c = seq.getCharAt((start + i) - 1);\r
+\r
+                if (c == 'A') {\r
+                    seqint[j][i] = 0;\r
+                } else if (c == 'C') {\r
+                    seqint[j][i] = 1;\r
+                } else if (c == 'T') {\r
+                    seqint[j][i] = 2;\r
+                } else if (c == 'G') {\r
+                    seqint[j][i] = 3;\r
+                } else {\r
+                    seqint[j][i] = -1;\r
+                }\r
+            }\r
+        }\r
+\r
+        //     print_matrix(seqint,2,len);     for (int j = 0; j < align.getHeight(); j++) {\r
+        for (int j = 0; j < align.getHeight(); j++) {\r
+            for (int k = 0; k < align.getHeight(); k++) {\r
+                int[][] counts = new int[4][4];\r
+                int tot = 0;\r
+                int[] tots = new int[4];\r
+                int fulltot = 0;\r
+                int[] fulltots = new int[4];\r
+\r
+                for (int i = 0; i < len; i++) {\r
+                    if (k != j) {\r
+                        //                     System.out.println("Seq " + j + " " + k + " " + i + " " + seqint[j][i] + " " + seqint[k][i]);\r
+                        if ((seqint[j][i] >= 0) && (seqint[k][i] >= 0)) {\r
+                            counts[seqint[k][i]][seqint[j][i]]++;\r
+\r
+                            //  print_matrix(counts,4,4);\r
+                            tots[seqint[j][i]]++;\r
+                            tot++;\r
+                        }\r
+\r
+                        if (seqint[j][i] != -1) {\r
+                            fulltots[seqint[j][i]]++;\r
+                            fulltot++;\r
+                        }\r
+                    }\r
+                }\r
+\r
+                if (k != j) {\r
+                    System.out.println();\r
+\r
+                    System.out.println("Sequence " +\r
+                        align.getSequenceAt(j).getName() + " " +\r
+                        align.getSequenceAt(k).getName());\r
+\r
+                    System.out.println();\r
+                    print_matrix(counts, 4, 4);\r
+                    System.out.println();\r
+\r
+                    double[][] out = new double[4][4]; // = constant_multiply_matrix(counts,1.0/tot,4,4);\r
+\r
+                    for (int i = 0; i < 4; i++) {\r
+                        for (int jj = 0; jj < 4; jj++) {\r
+                            out[i][jj] = (double) counts[i][jj] / tots[jj];\r
+                        }\r
+                    }\r
+\r
+                    print_matrix(out, 4, 4);\r
+                    System.out.println();\r
+\r
+                    System.out.print("RATES\t");\r
+                    System.out.print(align.getSequenceAt(j).getName() + "\t" +\r
+                        align.getSequenceAt(k).getName() + "\t");\r
+\r
+                    for (int i = 0; i < 4; i++) {\r
+                        for (int jj = 0; jj < 4; jj++) {\r
+                            Format.print(System.out, "%4.3f\t", out[i][jj]);\r
+                        }\r
+                    }\r
+\r
+                    System.out.println();\r
+\r
+                    for (int i = 0; i < 4; i++) {\r
+                        Format.print(System.out, "%4.3f\t",\r
+                            ((double) fulltots[i] * 1.0) / fulltot);\r
+                    }\r
+\r
+                    System.out.println();\r
+                    System.out.print("\nGC ");\r
+\r
+                    Format.print(System.out, "%4.3f\t",\r
+                        (double) ((100 * fulltots[1]) + fulltots[3]) / fulltot);\r
+\r
+                    System.out.print((fulltots[1] + fulltots[3]) + "\t" +\r
+                        fulltot);\r
+\r
+                    System.out.println();\r
+\r
+                    rates.addElement(out);\r
+                }\r
+            }\r
+        }\r
+\r
+        return rates;\r
     }\r
 \r
-    public static double[][]  constant_multiply_matrix(int[][] matrix, double c,int n, int m) {\r
-       double[][] out = new double[n][m];\r
+    public static double[][] constant_multiply_matrix(int[][] matrix, double c,\r
+        int n, int m) {\r
+        double[][] out = new double[n][m];\r
 \r
-       for (int i = 0; i < n; i++) {\r
-           for (int j = 0; j < m; j++) {\r
+        for (int i = 0; i < n; i++) {\r
+            for (int j = 0; j < m; j++) {\r
+                out[i][j] = matrix[i][j] * c;\r
+            }\r
+        }\r
 \r
-               out[i][j] = matrix[i][j]*c;\r
-           }\r
-       }\r
-       return out;\r
+        return out;\r
     }\r
 \r
-\r
     public static void print_matrix(int[][] matrix, int n, int m) {\r
+        for (int i = 0; i < n; i++) {\r
+            for (int j = 0; j < m; j++) {\r
+                System.out.print(matrix[i][j] + "\t");\r
+            }\r
 \r
-\r
-       for (int i = 0; i < n; i++) {\r
-           for (int j = 0; j < m; j++) {\r
-\r
-               System.out.print(matrix[i][j] + "\t");\r
-           }\r
-           System.out.println();\r
-       }\r
+            System.out.println();\r
+        }\r
     }\r
-    public static void print_matrix(double[][] matrix, int n, int m) {\r
-\r
-\r
-       for (int i = 0; i < n; i++) {\r
-           for (int j = 0; j < m; j++) {\r
 \r
-               Format.print(System.out,"%4.3f\t",matrix[i][j]);\r
+    public static void print_matrix(double[][] matrix, int n, int m) {\r
+        for (int i = 0; i < n; i++) {\r
+            for (int j = 0; j < m; j++) {\r
+                Format.print(System.out, "%4.3f\t", matrix[i][j]);\r
+            }\r
 \r
-           }\r
-           System.out.println();\r
-       }\r
+            System.out.println();\r
+        }\r
     }\r
-\r
-\r
 }\r