- }\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
-\r
- int[] value = new int[1];\r
- value[0] = i;\r
-\r
- Cluster c = new Cluster(value);\r
- cluster.addElement(c);\r
- }\r
- }\r
-\r
- public Vector findLeaves(SequenceNode node, Vector leaves) {\r
- if (node == null) {\r
- return leaves;\r
- }\r
-\r
- if (node.left() == null && node.right() == null) {\r
- leaves.addElement(node);\r
- return leaves;\r
- } else {\r
- findLeaves((SequenceNode)node.left(),leaves);\r
- findLeaves((SequenceNode)node.right(),leaves);\r
- }\r
- return leaves;\r
- }\r
-\r
- public Object findLeaf(SequenceNode node, int count) {\r
- found = _findLeaf(node,count);\r
-\r
- return found;\r
- }\r
- public Object _findLeaf(SequenceNode node,int count) {\r
- if (node == null) {\r
- return null;\r
- }\r
- if (node.ycount == count) {\r
- found = node.element();\r
- return found;\r
- } else {\r
- _findLeaf((SequenceNode)node.left(),count);\r
- _findLeaf((SequenceNode)node.right(),count);\r
- }\r
-\r
- return found;\r
- }\r
-\r
- public void printNode(SequenceNode node) {\r
- if (node == null) {\r
- return;\r
- }\r
- if (node.left() == null && node.right() == null) {\r
- System.out.println("Leaf = " + ((SequenceI)node.element()).getName());\r
- System.out.println("Dist " + ((SequenceNode)node).dist);\r
- System.out.println("Boot " + node.getBootstrap());\r
- } else {\r
- System.out.println("Dist " + ((SequenceNode)node).dist);\r
- printNode((SequenceNode)node.left());\r
- printNode((SequenceNode)node.right());\r