ExactMapping is in pdbchain
[jalview.git] / src / jalview / analysis / AlignSeq.java
index 47c17a3..2fd1773 100755 (executable)
@@ -20,23 +20,28 @@ package jalview.analysis;
 \r
 import jalview.datamodel.SequenceI;\r
 \r
-import jalview.io.*;\r
-\r
 import jalview.schemes.*;\r
 \r
 import jalview.util.*;\r
 \r
 import java.awt.*;\r
 \r
-import java.io.*;\r
-\r
 import java.util.*;\r
 \r
 \r
-public class AlignSeq {\r
+/**\r
+ *\r
+ *\r
+ * @author $author$\r
+ * @version $Revision$\r
+ */\r
+public class AlignSeq\r
+{\r
+    /** DOCUMENT ME!! */\r
     public static java.util.Hashtable dnaHash = new java.util.Hashtable();\r
 \r
-    static {\r
+    static\r
+    {\r
         dnaHash.put("C", new Integer(0));\r
         dnaHash.put("T", new Integer(1));\r
         dnaHash.put("A", new Integer(2));\r
@@ -45,7 +50,8 @@ public class AlignSeq {
     }\r
 \r
     static String[] dna = { "C", "T", "A", "G", "-" };\r
-    static String[] pep = {\r
+    static String[] pep =\r
+    {\r
         "A", "R", "N", "D", "C", "Q", "E", "G", "H", "I", "L", "K", "M", "F",\r
         "P", "S", "T", "W", "Y", "V", "B", "Z", "X", "-"\r
     };\r
@@ -63,13 +69,23 @@ public class AlignSeq {
     int maxj;\r
     int[] aseq1;\r
     int[] aseq2;\r
-    String astr1 = "";\r
-    String astr2 = "";\r
+    public String astr1 = "";\r
+    public String astr2 = "";\r
+\r
+    /** DOCUMENT ME!! */\r
     public int seq1start;\r
+\r
+    /** DOCUMENT ME!! */\r
     public int seq1end;\r
+\r
+    /** DOCUMENT ME!! */\r
     public int seq2start;\r
+\r
+    /** DOCUMENT ME!! */\r
     public int seq2end;\r
     int count;\r
+\r
+    /** DOCUMENT ME!! */\r
     public int maxscore;\r
     float pid;\r
     int prev = 0;\r
@@ -78,89 +94,176 @@ public class AlignSeq {
     int[][] lookup = ResidueProperties.getBLOSUM62();\r
     String[] intToStr = pep;\r
     int defInt = 23;\r
-    String output = "";\r
+    StringBuffer output = new StringBuffer();\r
     String type;\r
     Runtime rt;\r
 \r
-    public AlignSeq() {\r
-    }\r
 \r
-    public AlignSeq(SequenceI s1, SequenceI s2, String type) {\r
+    /**\r
+     * Creates a new AlignSeq object.\r
+     *\r
+     * @param s1 DOCUMENT ME!\r
+     * @param s2 DOCUMENT ME!\r
+     * @param type DOCUMENT ME!\r
+     */\r
+    public AlignSeq(SequenceI s1, SequenceI s2, String type)\r
+    {\r
         rt = Runtime.getRuntime();\r
         SeqInit(s1, s2, type);\r
     }\r
 \r
-    public int getMaxScore() {\r
+    /**\r
+     * DOCUMENT ME!\r
+     *\r
+     * @return DOCUMENT ME!\r
+     */\r
+    public int getMaxScore()\r
+    {\r
         return maxscore;\r
     }\r
 \r
-    public int getSeq2Start() {\r
+    /**\r
+     * DOCUMENT ME!\r
+     *\r
+     * @return DOCUMENT ME!\r
+     */\r
+    public int getSeq2Start()\r
+    {\r
         return seq2start;\r
     }\r
 \r
-    public int getSeq2End() {\r
+    /**\r
+     * DOCUMENT ME!\r
+     *\r
+     * @return DOCUMENT ME!\r
+     */\r
+    public int getSeq2End()\r
+    {\r
         return seq2end;\r
     }\r
 \r
-    public int getSeq1Start() {\r
+    /**\r
+     * DOCUMENT ME!\r
+     *\r
+     * @return DOCUMENT ME!\r
+     */\r
+    public int getSeq1Start()\r
+    {\r
         return seq1start;\r
     }\r
 \r
-    public int getSeq1End() {\r
+    /**\r
+     * DOCUMENT ME!\r
+     *\r
+     * @return DOCUMENT ME!\r
+     */\r
+    public int getSeq1End()\r
+    {\r
         return seq1end;\r
     }\r
 \r
-    public String getOutput() {\r
-        return output;\r
+    /**\r
+     * DOCUMENT ME!\r
+     *\r
+     * @return DOCUMENT ME!\r
+     */\r
+    public String getOutput()\r
+    {\r
+        return output.toString();\r
     }\r
 \r
-    public String getAStr1() {\r
+    /**\r
+     * DOCUMENT ME!\r
+     *\r
+     * @return DOCUMENT ME!\r
+     */\r
+    public String getAStr1()\r
+    {\r
         return astr1;\r
     }\r
 \r
-    public String getAStr2() {\r
+    /**\r
+     * DOCUMENT ME!\r
+     *\r
+     * @return DOCUMENT ME!\r
+     */\r
+    public String getAStr2()\r
+    {\r
         return astr2;\r
     }\r
 \r
-    public int[] getASeq1() {\r
+    /**\r
+     * DOCUMENT ME!\r
+     *\r
+     * @return DOCUMENT ME!\r
+     */\r
+    public int[] getASeq1()\r
+    {\r
         return aseq1;\r
     }\r
 \r
-    public int[] getASeq2() {\r
+    /**\r
+     * DOCUMENT ME!\r
+     *\r
+     * @return DOCUMENT ME!\r
+     */\r
+    public int[] getASeq2()\r
+    {\r
         return aseq2;\r
     }\r
 \r
-    public SequenceI getS1() {\r
+    /**\r
+     * DOCUMENT ME!\r
+     *\r
+     * @return DOCUMENT ME!\r
+     */\r
+    public SequenceI getS1()\r
+    {\r
         return s1;\r
     }\r
 \r
-    public SequenceI getS2() {\r
+    /**\r
+     * DOCUMENT ME!\r
+     *\r
+     * @return DOCUMENT ME!\r
+     */\r
+    public SequenceI getS2()\r
+    {\r
         return s2;\r
     }\r
 \r
-    public void SeqInit(SequenceI s1, SequenceI s2, String type) {\r
-        s1str = extractGaps(".", s1.getSequence());\r
-        s2str = extractGaps(".", s2.getSequence());\r
-        s1str = extractGaps("-", s1str);\r
-        s2str = extractGaps("-", s2str);\r
-        s1str = extractGaps(" ", s1str);\r
-        s2str = extractGaps(" ", s2str);\r
+    /**\r
+     * DOCUMENT ME!\r
+     *\r
+     * @param s1 DOCUMENT ME!\r
+     * @param s2 DOCUMENT ME!\r
+     * @param type DOCUMENT ME!\r
+     */\r
+    public void SeqInit(SequenceI s1, SequenceI s2, String type)\r
+    {\r
+        s1str = extractGaps(jalview.util.Comparison.GapChars, s1.getSequence());\r
+        s2str = extractGaps(jalview.util.Comparison.GapChars, s2.getSequence());\r
 \r
         this.s1 = s1;\r
         this.s2 = s2;\r
 \r
         this.type = type;\r
 \r
-        if (type.equals("pep")) {\r
+        if (type.equals("pep"))\r
+        {\r
             lookup = ResidueProperties.getBLOSUM62();\r
             intToStr = pep;\r
             defInt = 23;\r
-        } else if (type.equals("dna")) {\r
+        }\r
+        else if (type.equals("dna"))\r
+        {\r
             lookup = ResidueProperties.getDNA();\r
             intToStr = dna;\r
             defInt = 4;\r
-        } else {\r
-            output = output + ("Wrong type = dna or pep only");\r
+        }\r
+        else\r
+        {\r
+            output.append("Wrong type = dna or pep only");\r
             System.exit(0);\r
         }\r
 \r
@@ -205,20 +308,28 @@ public class AlignSeq {
         //System.out.println("Time take to traceback alignment = " + (tend-tstart) + " ms");\r
     }\r
 \r
-    public void traceAlignment() {\r
+    /**\r
+     * DOCUMENT ME!\r
+     */\r
+    public void traceAlignment()\r
+    {\r
         // Find the maximum score along the rhs or bottom row\r
         int max = -9999;\r
 \r
-        for (int i = 0; i < seq1.length; i++) {\r
-            if (score[i][seq2.length - 1] > max) {\r
+        for (int i = 0; i < seq1.length; i++)\r
+        {\r
+            if (score[i][seq2.length - 1] > max)\r
+            {\r
                 max = score[i][seq2.length - 1];\r
                 maxi = i;\r
                 maxj = seq2.length - 1;\r
             }\r
         }\r
 \r
-        for (int j = 0; j < seq2.length; j++) {\r
-            if (score[seq1.length - 1][j] > max) {\r
+        for (int j = 0; j < seq2.length; j++)\r
+        {\r
+            if (score[seq1.length - 1][j] > max)\r
+            {\r
                 max = score[seq1.length - 1][j];\r
                 maxi = seq1.length - 1;\r
                 maxj = j;\r
@@ -239,27 +350,35 @@ public class AlignSeq {
 \r
         count = (seq1.length + seq2.length) - 1;\r
 \r
-        while ((i > 0) && (j > 0)) {\r
-            if ((aseq1[count] != defInt) && (i >= 0)) {\r
+        while ((i > 0) && (j > 0))\r
+        {\r
+            if ((aseq1[count] != defInt) && (i >= 0))\r
+            {\r
                 aseq1[count] = seq1[i];\r
                 astr1 = intToStr[seq1[i]] + astr1;\r
             }\r
 \r
-            if ((aseq2[count] != defInt) && (j > 0)) {\r
+            if ((aseq2[count] != defInt) && (j > 0))\r
+            {\r
                 aseq2[count] = seq2[j];\r
                 astr2 = intToStr[seq2[j]] + astr2;\r
             }\r
 \r
             trace = findTrace(i, j);\r
 \r
-            if (trace == 0) {\r
+            if (trace == 0)\r
+            {\r
                 i--;\r
                 j--;\r
-            } else if (trace == 1) {\r
+            }\r
+            else if (trace == 1)\r
+            {\r
                 j--;\r
                 aseq1[count] = defInt;\r
                 astr1 = "-" + astr1.substring(1);\r
-            } else if (trace == -1) {\r
+            }\r
+            else if (trace == -1)\r
+            {\r
                 i--;\r
                 aseq2[count] = defInt;\r
                 astr2 = "-" + astr2.substring(1);\r
@@ -271,22 +390,29 @@ public class AlignSeq {
         seq1start = i + 1;\r
         seq2start = j + 1;\r
 \r
-        if (aseq1[count] != defInt) {\r
+        if (aseq1[count] != defInt)\r
+        {\r
             aseq1[count] = seq1[i];\r
             astr1 = intToStr[seq1[i]] + astr1;\r
         }\r
 \r
-        if (aseq2[count] != defInt) {\r
+        if (aseq2[count] != defInt)\r
+        {\r
             aseq2[count] = seq2[j];\r
             astr2 = intToStr[seq2[j]] + astr2;\r
         }\r
     }\r
 \r
-    public void printAlignment() {\r
+    /**\r
+     * DOCUMENT ME!\r
+     */\r
+    public void printAlignment(java.io.PrintStream os)\r
+    {\r
         // Find the biggest id length for formatting purposes\r
         int maxid = s1.getName().length();\r
 \r
-        if (s2.getName().length() > maxid) {\r
+        if (s2.getName().length() > maxid)\r
+        {\r
             maxid = s2.getName().length();\r
         }\r
 \r
@@ -294,99 +420,119 @@ public class AlignSeq {
         int nochunks = ((aseq1.length - count) / len) + 1;\r
         pid = 0;\r
 \r
-        int overlap = 0;\r
-\r
-        output = output + ("Score = " + score[maxi][maxj] + "\n");\r
-        output = output +\r
-            ("Length of alignment = " + (aseq1.length - count) + "\n");\r
-        output = output + ("Sequence ");\r
-        output = output + (new Format("%" + maxid + "s").form(s1.getName()));\r
-        output = output +\r
-            (" :  " + seq1start + " - " + seq1end + " (Sequence length = " +\r
+        output.append("Score = " + score[maxi][maxj] + "\n");\r
+        output.append("Length of alignment = " + (aseq1.length - count) + "\n");\r
+        output.append("Sequence ");\r
+        output.append(new Format("%" + maxid + "s").form(s1.getName()));\r
+        output.append(" :  " + seq1start + " - " + seq1end + " (Sequence length = " +\r
             s1str.length() + ")\n");\r
-        output = output + ("Sequence ");\r
-        output = output + (new Format("%" + maxid + "s").form(s2.getName()));\r
-        output = output +\r
-            (" :  " + seq2start + " - " + seq2end + " (Sequence length = " +\r
+        output .append("Sequence ");\r
+        output.append(new Format("%" + maxid + "s").form(s2.getName()));\r
+        output .append(" :  " + seq2start + " - " + seq2end + " (Sequence length = " +\r
             s2str.length() + ")\n\n");\r
 \r
-        for (int j = 0; j < nochunks; j++) {\r
+        for (int j = 0; j < nochunks; j++)\r
+        {\r
             // Print the first aligned sequence\r
-            output = output +\r
-                (new Format("%" + (maxid) + "s").form(s1.getName()) + " ");\r
+            output.append(new Format("%" + (maxid) + "s").form(s1.getName()) + " ");\r
 \r
-            for (int i = 0; i < len; i++) {\r
-                if ((count + i + (j * len)) < aseq1.length) {\r
-                    output = output +\r
-                        (new Format("%s").form(intToStr[aseq1[count + i +\r
+            for (int i = 0; i < len; i++)\r
+            {\r
+                if ((count + i + (j * len)) < aseq1.length)\r
+                {\r
+                    output.append(new Format("%s").form(intToStr[aseq1[count + i +\r
                             (j * len)]]));\r
                 }\r
             }\r
 \r
-            output = output + ("\n");\r
-            output = output +\r
-                (new Format("%" + (maxid) + "s").form(" ") + " ");\r
+            output.append("\n");\r
+            output.append(new Format("%" + (maxid) + "s").form(" ") + " ");\r
 \r
             // Print out the matching chars\r
-            for (int i = 0; i < len; i++) {\r
-                if ((count + i + (j * len)) < aseq1.length) {\r
+            for (int i = 0; i < len; i++)\r
+            {\r
+                if ((count + i + (j * len)) < aseq1.length)\r
+                {\r
                     if (intToStr[aseq1[count + i + (j * len)]].equals(\r
                                 intToStr[aseq2[count + i + (j * len)]]) &&\r
-                            !intToStr[aseq1[count + i + (j * len)]].equals("-")) {\r
+                            !intToStr[aseq1[count + i + (j * len)]].equals("-"))\r
+                    {\r
                         pid++;\r
-                        output = output + ("|");\r
-                    } else if (type.equals("pep")) {\r
+                        output.append("|");\r
+                    }\r
+                    else if (type.equals("pep"))\r
+                    {\r
                         if (ResidueProperties.getPAM250(\r
                                     intToStr[aseq1[count + i + (j * len)]],\r
-                                    intToStr[aseq2[count + i + (j * len)]]) > 0) {\r
-                            output = output + (".");\r
-                        } else {\r
-                            output = output + (" ");\r
+                                    intToStr[aseq2[count + i + (j * len)]]) > 0)\r
+                        {\r
+                            output.append(".");\r
+                        }\r
+                        else\r
+                        {\r
+                            output.append(" ");\r
                         }\r
-                    } else {\r
-                        output = output + (" ");\r
+                    }\r
+                    else\r
+                    {\r
+                        output.append(" ");\r
                     }\r
                 }\r
             }\r
 \r
             // Now print the second aligned sequence\r
-            output = output + ("\n");\r
-            output = output +\r
-                (new Format("%" + (maxid) + "s").form(s2.getName()) + " ");\r
-\r
-            for (int i = 0; i < len; i++) {\r
-                if ((count + i + (j * len)) < aseq1.length) {\r
-                    output = output +\r
-                        (new Format("%s").form(intToStr[aseq2[count + i +\r
+            output = output.append("\n");\r
+            output = output.append(new Format("%" + (maxid) + "s").form(s2.getName()) + " ");\r
+\r
+            for (int i = 0; i < len; i++)\r
+            {\r
+                if ((count + i + (j * len)) < aseq1.length)\r
+                {\r
+                    output .append(new Format("%s").form(intToStr[aseq2[count + i +\r
                             (j * len)]]));\r
                 }\r
             }\r
 \r
-            output = output + ("\n\n");\r
+            output = output .append("\n\n");\r
         }\r
 \r
         pid = pid / (float) (aseq1.length - count) * 100;\r
-        output = output + (new Format("Percentage ID = %2.2f\n\n").form(pid));\r
+        output = output.append(new Format("Percentage ID = %2.2f\n\n").form(pid));\r
+\r
+        try{\r
+          os.println(output.toString());\r
+        }catch(Exception ex){}\r
     }\r
 \r
-    public void printScoreMatrix(int[][] mat) {\r
+    /**\r
+     * DOCUMENT ME!\r
+     *\r
+     * @param mat DOCUMENT ME!\r
+     */\r
+    public void printScoreMatrix(int[][] mat)\r
+    {\r
         int n = seq1.length;\r
         int m = seq2.length;\r
 \r
-        for (int i = 0; i < n; i++) {\r
+        for (int i = 0; i < n; i++)\r
+        {\r
             // Print the top sequence\r
-            if (i == 0) {\r
+            if (i == 0)\r
+            {\r
                 Format.print(System.out, "%8s", s2str.substring(0, 1));\r
 \r
-                for (int jj = 1; jj < m; jj++) {\r
+                for (int jj = 1; jj < m; jj++)\r
+                {\r
                     Format.print(System.out, "%5s", s2str.substring(jj, jj + 1));\r
                 }\r
 \r
                 System.out.println();\r
             }\r
 \r
-            for (int j = 0; j < m; j++) {\r
-                if (j == 0) {\r
+            for (int j = 0; j < m; j++)\r
+            {\r
+                if (j == 0)\r
+                {\r
                     Format.print(System.out, "%3s", s1str.substring(i, i + 1));\r
                 }\r
 \r
@@ -397,25 +543,42 @@ public class AlignSeq {
         }\r
     }\r
 \r
-    public int findTrace(int i, int j) {\r
+    /**\r
+     * DOCUMENT ME!\r
+     *\r
+     * @param i DOCUMENT ME!\r
+     * @param j DOCUMENT ME!\r
+     *\r
+     * @return DOCUMENT ME!\r
+     */\r
+    public int findTrace(int i, int j)\r
+    {\r
         int t = 0;\r
         int max = score[i - 1][j - 1] + (lookup[seq1[i]][seq2[j]] * 10);\r
 \r
-        if (F[i][j] > max) {\r
+        if (F[i][j] > max)\r
+        {\r
             max = F[i][j];\r
             t = -1;\r
-        } else if (F[i][j] == max) {\r
-            if (prev == -1) {\r
+        }\r
+        else if (F[i][j] == max)\r
+        {\r
+            if (prev == -1)\r
+            {\r
                 max = F[i][j];\r
                 t = -1;\r
             }\r
         }\r
 \r
-        if (E[i][j] >= max) {\r
+        if (E[i][j] >= max)\r
+        {\r
             max = E[i][j];\r
             t = 1;\r
-        } else if (E[i][j] == max) {\r
-            if (prev == 1) {\r
+        }\r
+        else if (E[i][j] == max)\r
+        {\r
+            if (prev == 1)\r
+            {\r
                 max = E[i][j];\r
                 t = 1;\r
             }\r
@@ -426,7 +589,11 @@ public class AlignSeq {
         return t;\r
     }\r
 \r
-    public void calcScoreMatrix() {\r
+    /**\r
+     * DOCUMENT ME!\r
+     */\r
+    public void calcScoreMatrix()\r
+    {\r
         int n = seq1.length;\r
         int m = seq2.length;\r
 \r
@@ -436,7 +603,8 @@ public class AlignSeq {
         F[0][0] = 0;\r
 \r
         // Calculate the top row first\r
-        for (int j = 1; j < m; j++) {\r
+        for (int j = 1; j < m; j++)\r
+        {\r
             // What should these values be? 0 maybe\r
             E[0][j] = max(score[0][j - 1] - gapOpen, E[0][j - 1] - gapExtend);\r
             F[0][j] = -gapExtend;\r
@@ -448,7 +616,8 @@ public class AlignSeq {
         }\r
 \r
         // Now do the left hand column\r
-        for (int i = 1; i < n; i++) {\r
+        for (int i = 1; i < n; i++)\r
+        {\r
             E[i][0] = -gapOpen;\r
             F[i][0] = max(score[i - 1][0] - gapOpen, F[i - 1][0] - gapExtend);\r
 \r
@@ -457,8 +626,10 @@ public class AlignSeq {
         }\r
 \r
         // Now do all the other rows\r
-        for (int i = 1; i < n; i++) {\r
-            for (int j = 1; j < m; j++) {\r
+        for (int i = 1; i < n; i++)\r
+        {\r
+            for (int j = 1; j < m; j++)\r
+            {\r
                 E[i][j] = max(score[i][j - 1] - gapOpen, E[i][j - 1] -\r
                         gapExtend);\r
                 F[i][j] = max(score[i - 1][j] - gapOpen, F[i - 1][j] -\r
@@ -471,72 +642,115 @@ public class AlignSeq {
         }\r
     }\r
 \r
-    public static String extractChars(String chars, String seq) {\r
-        String out = seq;\r
 \r
-        for (int i = 0; i < chars.length(); i++) {\r
-            String gap = chars.substring(i, i + 1);\r
-            out = extractGaps(gap, out);\r
-        }\r
-\r
-        return out;\r
-    }\r
 \r
-    public static String extractGaps(String gapChar, String seq) {\r
+    /**\r
+     * DOCUMENT ME!\r
+     *\r
+     * @param gapChar DOCUMENT ME!\r
+     * @param seq DOCUMENT ME!\r
+     *\r
+     * @return DOCUMENT ME!\r
+     */\r
+    public static String extractGaps(String gapChar, String seq)\r
+    {\r
         StringTokenizer str = new StringTokenizer(seq, gapChar);\r
-        String newString = "";\r
+        StringBuffer newString = new StringBuffer();\r
 \r
-        while (str.hasMoreTokens()) {\r
-            newString = newString + str.nextToken();\r
+        while (str.hasMoreTokens())\r
+        {\r
+            newString.append( str.nextToken() );\r
         }\r
 \r
-        return newString;\r
+        return newString.toString();\r
     }\r
 \r
-    public int max(int i1, int i2, int i3) {\r
+    /**\r
+     * DOCUMENT ME!\r
+     *\r
+     * @param i1 DOCUMENT ME!\r
+     * @param i2 DOCUMENT ME!\r
+     * @param i3 DOCUMENT ME!\r
+     *\r
+     * @return DOCUMENT ME!\r
+     */\r
+    public int max(int i1, int i2, int i3)\r
+    {\r
         int max = i1;\r
 \r
-        if (i2 > i1) {\r
+        if (i2 > i1)\r
+        {\r
             max = i2;\r
         }\r
 \r
-        if (i3 > max) {\r
+        if (i3 > max)\r
+        {\r
             max = i3;\r
         }\r
 \r
         return max;\r
     }\r
 \r
-    public int max(int i1, int i2) {\r
+    /**\r
+     * DOCUMENT ME!\r
+     *\r
+     * @param i1 DOCUMENT ME!\r
+     * @param i2 DOCUMENT ME!\r
+     *\r
+     * @return DOCUMENT ME!\r
+     */\r
+    public int max(int i1, int i2)\r
+    {\r
         int max = i1;\r
 \r
-        if (i2 > i1) {\r
+        if (i2 > i1)\r
+        {\r
             max = i2;\r
         }\r
 \r
         return max;\r
     }\r
 \r
-    public int[] stringToInt(String s, String type) {\r
+    /**\r
+     * DOCUMENT ME!\r
+     *\r
+     * @param s DOCUMENT ME!\r
+     * @param type DOCUMENT ME!\r
+     *\r
+     * @return DOCUMENT ME!\r
+     */\r
+    public int[] stringToInt(String s, String type)\r
+    {\r
         int[] seq1 = new int[s.length()];\r
 \r
-        for (int i = 0; i < s.length(); i++) {\r
+        for (int i = 0; i < s.length(); i++)\r
+        {\r
             String ss = s.substring(i, i + 1).toUpperCase();\r
 \r
-            try {\r
-                if (type.equals("pep")) {\r
+            try\r
+            {\r
+                if (type.equals("pep"))\r
+                {\r
                     seq1[i] = ((Integer) ResidueProperties.aaHash.get(ss)).intValue();\r
-                } else if (type.equals("dna")) {\r
+                }\r
+                else if (type.equals("dna"))\r
+                {\r
                     seq1[i] = ((Integer) dnaHash.get(ss)).intValue();\r
                 }\r
 \r
-                if (seq1[i] > 23) {\r
+                if (seq1[i] > 23)\r
+                {\r
                     seq1[i] = 23;\r
                 }\r
-            } catch (Exception e) {\r
-                if (type.equals("dna")) {\r
+            }\r
+            catch (Exception e)\r
+            {\r
+                if (type.equals("dna"))\r
+                {\r
                     seq1[i] = 4;\r
-                } else {\r
+                }\r
+                else\r
+                {\r
                     seq1[i] = 23;\r
                 }\r
             }\r
@@ -545,18 +759,32 @@ public class AlignSeq {
         return seq1;\r
     }\r
 \r
+    /**\r
+     * DOCUMENT ME!\r
+     *\r
+     * @param g DOCUMENT ME!\r
+     * @param mat DOCUMENT ME!\r
+     * @param n DOCUMENT ME!\r
+     * @param m DOCUMENT ME!\r
+     * @param psize DOCUMENT ME!\r
+     */\r
     public static void displayMatrix(Graphics g, int[][] mat, int n, int m,\r
-        int psize) {\r
+        int psize)\r
+    {\r
         int max = -1000;\r
         int min = 1000;\r
 \r
-        for (int i = 0; i < n; i++) {\r
-            for (int j = 0; j < m; j++) {\r
-                if (mat[i][j] >= max) {\r
+        for (int i = 0; i < n; i++)\r
+        {\r
+            for (int j = 0; j < m; j++)\r
+            {\r
+                if (mat[i][j] >= max)\r
+                {\r
                     max = mat[i][j];\r
                 }\r
 \r
-                if (mat[i][j] <= min) {\r
+                if (mat[i][j] <= min)\r
+                {\r
                     min = mat[i][j];\r
                 }\r
             }\r
@@ -564,8 +792,10 @@ public class AlignSeq {
 \r
         System.out.println(max + " " + min);\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
+        {\r
+            for (int j = 0; j < m; j++)\r
+            {\r
                 int x = psize * i;\r
                 int y = psize * j;\r
 \r