Output new alignment bug fixed
[jalview.git] / src / jalview / gui / PairwiseAlignPanel.java
1 package jalview.gui;\r
2 \r
3 import jalview.datamodel.*;\r
4 import jalview.jbgui.GPairwiseAlignPanel;\r
5 import jalview.analysis.*;\r
6 import java.awt.event.*;\r
7 import javax.swing.*;\r
8 import java.util.*;\r
9 \r
10 \r
11 public class PairwiseAlignPanel extends GPairwiseAlignPanel\r
12 {\r
13     Vector sequences = new Vector();\r
14     AlignViewport av;\r
15 \r
16     public PairwiseAlignPanel(AlignViewport av)\r
17     {\r
18       super();\r
19       this.av = av;\r
20       float scores[][] = new float[av.getAlignment().getHeight()][av.getAlignment().getHeight()];\r
21       double totscore = 0;\r
22       int count = av.getSelection().size();\r
23 \r
24       int acount = 0;\r
25         for (int i = 1; i < count; i++)\r
26         {\r
27           for (int j = 0; j < i; j++)\r
28           {\r
29             acount++;\r
30             AlignSeq as = new AlignSeq(av.getSelection().sequenceAt(i),av.getSelection().sequenceAt(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.add( new Sequence( as.getS1().getName(), as.getAStr1()) );\r
40             sequences.add( 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       int newHeight = seq.length * af.viewport.getCharHeight() + 200;\r
66       if(newHeight>500)\r
67         newHeight=500;\r
68 \r
69       Desktop.addInternalFrame(af, "Pairwise Aligned Sequences", 700,newHeight);\r
70 \r
71   }\r
72 \r
73 }\r