939e2f44a82165a684ee603550ffbc83ea95e26b
[jalview.git] / src / jalview / appletgui / PairwiseAlignPanel.java
1 package jalview.appletgui;\r
2 \r
3 import jalview.datamodel.*;\r
4 import jalview.jbappletgui.GPairwiseAlignPanel;\r
5 import jalview.analysis.*;\r
6 import java.awt.event.*;\r
7 import java.util.*;\r
8 \r
9 \r
10 public class PairwiseAlignPanel extends GPairwiseAlignPanel\r
11 {\r
12     Vector sequences = new Vector();\r
13     AlignViewport av;\r
14 \r
15     public PairwiseAlignPanel(AlignViewport av)\r
16     {\r
17       super();\r
18       this.av = av;\r
19       float scores[][] = new float[av.getAlignment().getHeight()][av.getAlignment().getHeight()];\r
20       double totscore = 0;\r
21       int count = av.getSelectionGroup().getSize();\r
22 \r
23       int acount = 0;\r
24         for (int i = 1; i < count; i++)\r
25         {\r
26           for (int j = 0; j < i; j++)\r
27           {\r
28             acount++;\r
29             AlignSeq as = new AlignSeq(av.getSelectionGroup().getSequenceAt(i),\r
30                                        av.getSelectionGroup().getSequenceAt(j),"pep");\r
31 \r
32             as.calcScoreMatrix();\r
33             as.traceAlignment();\r
34             as.printAlignment();\r
35             scores[i][j] = (float)as.getMaxScore()/(float)as.getASeq1().length;\r
36             totscore = totscore + scores[i][j];\r
37 \r
38             textarea.append(as.getOutput());\r
39             sequences.addElement( new Sequence( as.getS1().getName(), as.getAStr1()) );\r
40             sequences.addElement( new Sequence( as.getS2().getName(), as.getAStr2()) );\r
41 \r
42 \r
43           }\r
44         }\r
45 \r
46         if (count > 2)\r
47         {\r
48           for (int i = 0; i < count;i++)\r
49             for (int j = 0; j < i; j++)\r
50               jalview.util.Format.print(System.out,"%7.3f",scores[i][j]/totscore);\r
51         }\r
52       }\r
53 \r
54 \r
55   protected void viewInEditorButton_actionPerformed(ActionEvent e)\r
56   {\r
57 \r
58       Sequence [] seq = new Sequence[sequences.size()];\r
59 \r
60       for (int i=0;i<sequences.size();i++)\r
61        seq[i] = (Sequence) sequences.elementAt(i);\r
62 \r
63 \r
64       AlignFrame af = new AlignFrame(new Alignment(seq));\r
65       jalview.bin.JalviewLite.addFrame(af, "Pairwise Aligned Sequences",\r
66                                AlignFrame.NEW_WINDOW_WIDTH,\r
67                                AlignFrame.NEW_WINDOW_HEIGHT);\r
68 \r
69   }\r
70 \r
71 }\r