- public float[][] findDistances() {\r
-\r
- float[][] distance = new float[noseqs][noseqs];\r
- if (pwtype.equals("PID")) {\r
- for (int i = 0; i < noseqs-1; i++) {\r
- for (int j = i; j < noseqs; j++) {\r
- if (j==i) {\r
- distance[i][i] = 0;\r
- } else {\r
- distance[i][j] = 100-Comparison.PID(sequence[i], sequence[j]);\r
- distance[j][i] = distance[i][j];\r
- }\r
- }\r
- }\r
- } else if (pwtype.equals("BL")) {\r
- int maxscore = 0;\r
-\r
- for (int i = 0; i < noseqs-1; i++) {\r
- for (int j = i; j < noseqs; j++) {\r
- int score = 0;\r
- for (int k=0; k < sequence[i].getLength(); k++) {\r
- try{\r
- score +=\r
- ResidueProperties.getBLOSUM62(sequence[i].getSequence(k,\r
- k + 1),\r
- sequence[j].getSequence(k,\r
- k + 1));\r
- }catch(Exception ex){System.out.println("err creating BLOSUM62 tree");}\r
- }\r
- distance[i][j] = (float)score;\r
- if (score > maxscore) {\r
- maxscore = score;\r
- }\r
- }\r
- }\r
- for (int i = 0; i < noseqs-1; i++) {\r
- for (int j = i; j < noseqs; j++) {\r
- distance[i][j] = (float)maxscore - distance[i][j];\r
- distance[j][i] = distance[i][j];\r
- }\r
- }\r
- } else if (pwtype.equals("SW")) {\r
- float max = -1;\r
- for (int i = 0; i < noseqs-1; i++) {\r
- for (int j = i; j < noseqs; j++) {\r
- AlignSeq as = new AlignSeq(sequence[i],sequence[j],"pep");\r
- as.calcScoreMatrix();\r
- as.traceAlignment();\r
- as.printAlignment();\r
- distance[i][j] = (float)as.maxscore;\r
- if (max < distance[i][j]) {\r
- max = distance[i][j];\r
- }\r
- }\r
- }\r
- for (int i = 0; i < noseqs-1; i++) {\r
- for (int j = i; j < noseqs; j++) {\r
- distance[i][j] = max - distance[i][j];\r
- distance[j][i] = distance[i][j];\r
- }\r
- }\r
- }\r
-\r
- return distance;\r
- }\r
-\r
- public void makeLeaves() {\r
- cluster = new Vector();\r
-\r
- for (int i=0; i < noseqs; i++) {\r
- SequenceNode sn = new SequenceNode();\r
-\r
- sn.setElement(sequence[i]);\r
- sn.setName(sequence[i].getName());\r
- node.addElement(sn);\r