\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
}\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
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
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
//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
\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
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
+ public int [] getExactMapping()\r
+ {\r
+ // Print out the matching chars\r
+ int size = s2.getLength()+1;\r
+ int [] mapping = new int[size];\r
+ for(int i=0; i<size; i++)\r
+ mapping[i] = -1;\r
+\r
+ int pdbpos = s2.getStart() + seq2start-3;\r
+ int alignpos = s1.getStart() + seq1start-3;\r
+\r
+System.out.println(pdbpos+" "+alignpos);\r
+ for(int i=0; i<astr1.length(); i++)\r
+ {\r
+ if (astr1.charAt(i) != '-')\r
+ {\r
+ alignpos++;\r
+ }\r
+\r
+ if (astr2.charAt(i) != '-')\r
+ {\r
+ pdbpos++;\r
+ }\r
+\r
+ if (astr1.charAt(i) == astr2.charAt(i))\r
+ {\r
+ mapping[pdbpos] = alignpos;\r
+ }\r
+ }\r
+System.out.println(s1.getStart()+" "+s2.getStart()+" "+seq1start+" "+seq2start+"\n"+\r
+ s1.getSequence()+"\n"+s2.getSequence()+"\n"+astr1+"\n"+astr2);\r
+\r
+ for(int i=0; i<mapping.length; i++)\r
+ {\r
+ if(mapping[i]!=-1)\r
+ System.out.println(i+" "+s2.getCharAt(i) + " " + mapping[i] + " " +\r
+ s1.findIndex(mapping[i]+1)+" "+\r
+ s1.getCharAt(s1.findIndex(mapping[i])));\r
+ else\r
+ System.out.println(i+" "+"XX"+s2.getCharAt(i));\r
+ }\r
+\r
+ return mapping;\r
+ }\r
+\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
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
}\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
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
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
}\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
}\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
}\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
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
\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