Clover icon

Coverage Report

  1. Project Clover database Thu Aug 13 2020 12:04:21 BST
  2. Package jalview.appletgui

File PairwiseAlignPanel.java

 

Coverage histogram

../../img/srcFileCovDistChart0.png
56% of files have more coverage

Code metrics

22
53
4
1
177
125
17
0.32
13.25
4
4.25

Classes

Class Line # Actions
PairwiseAlignPanel 38 53 17
0.00%
 

Contributing tests

No tests hitting this source file were found.

Source view

1    /*
2    * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3    * Copyright (C) $$Year-Rel$$ The Jalview Authors
4    *
5    * This file is part of Jalview.
6    *
7    * Jalview is free software: you can redistribute it and/or
8    * modify it under the terms of the GNU General Public License
9    * as published by the Free Software Foundation, either version 3
10    * of the License, or (at your option) any later version.
11    *
12    * Jalview is distributed in the hope that it will be useful, but
13    * WITHOUT ANY WARRANTY; without even the implied warranty
14    * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15    * PURPOSE. See the GNU General Public License for more details.
16    *
17    * You should have received a copy of the GNU General Public License
18    * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
19    * The Jalview Authors are detailed in the 'AUTHORS' file.
20    */
21    package jalview.appletgui;
22   
23    import jalview.analysis.AlignSeq;
24    import jalview.datamodel.Alignment;
25    import jalview.datamodel.Sequence;
26    import jalview.datamodel.SequenceI;
27    import jalview.util.MessageManager;
28   
29    import java.awt.BorderLayout;
30    import java.awt.Button;
31    import java.awt.Panel;
32    import java.awt.ScrollPane;
33    import java.awt.TextArea;
34    import java.awt.event.ActionEvent;
35    import java.awt.event.ActionListener;
36    import java.util.Vector;
37   
 
38    public class PairwiseAlignPanel extends Panel implements ActionListener
39    {
40    Vector sequences = new Vector();
41   
42    AlignmentPanel ap;
43   
 
44  0 toggle public PairwiseAlignPanel(AlignmentPanel ap)
45    {
46  0 try
47    {
48  0 jbInit();
49    } catch (Exception e)
50    {
51  0 e.printStackTrace();
52    }
53  0 this.ap = ap;
54  0 sequences = new Vector();
55   
56  0 SequenceI[] seqs;
57  0 String[] seqStrings = ap.av.getViewAsString(true);
58   
59  0 if (ap.av.getSelectionGroup() == null)
60    {
61  0 seqs = ap.av.getAlignment().getSequencesArray();
62    }
63    else
64    {
65  0 seqs = ap.av.getSelectionGroup()
66    .getSequencesInOrder(ap.av.getAlignment());
67    }
68   
69  0 float scores[][] = new float[seqs.length][seqs.length];
70  0 double totscore = 0;
71  0 int count = ap.av.getSelectionGroup().getSize();
72  0 String type = (ap.av.getAlignment().isNucleotide()) ? AlignSeq.DNA
73    : AlignSeq.PEP;
74  0 Sequence seq;
75   
76  0 for (int i = 1; i < count; i++)
77    {
78  0 for (int j = 0; j < i; j++)
79    {
80   
81  0 AlignSeq as = new AlignSeq(seqs[i], seqStrings[i], seqs[j],
82    seqStrings[j], type);
83   
84  0 if (as.s1str.length() == 0 || as.s2str.length() == 0)
85    {
86  0 continue;
87    }
88   
89  0 as.calcScoreMatrix();
90  0 as.traceAlignment();
91   
92  0 as.printAlignment(System.out);
93  0 scores[i][j] = (float) as.getMaxScore()
94    / (float) as.getASeq1().length;
95  0 totscore = totscore + scores[i][j];
96   
97  0 textarea.append(as.getOutput());
98  0 sequences.add(as.getAlignedSeq1());
99  0 sequences.add(as.getAlignedSeq1());
100    }
101    }
102   
103  0 if (count > 2)
104    {
105  0 System.out.println(
106    "Pairwise alignment scaled similarity score matrix\n");
107   
108  0 for (int i = 0; i < count; i++)
109    {
110  0 jalview.util.Format.print(System.out, "%s \n",
111    ("" + i) + " " + seqs[i].getName());
112    }
113   
114  0 System.out.println("\n");
115   
116  0 for (int i = 0; i < count; i++)
117    {
118  0 for (int j = 0; j < i; j++)
119    {
120  0 jalview.util.Format.print(System.out, "%7.3f",
121    scores[i][j] / totscore);
122    }
123    }
124   
125  0 System.out.println("\n");
126    }
127    }
128   
 
129  0 toggle public void actionPerformed(ActionEvent evt)
130    {
131  0 if (evt.getSource() == viewInEditorButton)
132    {
133  0 viewInEditorButton_actionPerformed();
134    }
135    }
136   
 
137  0 toggle protected void viewInEditorButton_actionPerformed()
138    {
139   
140  0 Sequence[] seq = new Sequence[sequences.size()];
141   
142  0 for (int i = 0; i < sequences.size(); i++)
143    {
144  0 seq[i] = (Sequence) sequences.elementAt(i);
145    }
146   
147  0 new AlignFrame(new Alignment(seq), ap.av.applet,
148    "Pairwise Aligned Sequences", false);
149   
150    }
151   
152    protected ScrollPane scrollPane = new ScrollPane();
153   
154    protected TextArea textarea = new TextArea();
155   
156    protected Button viewInEditorButton = new Button();
157   
158    Panel jPanel1 = new Panel();
159   
160    BorderLayout borderLayout1 = new BorderLayout();
161   
 
162  0 toggle private void jbInit() throws Exception
163    {
164  0 this.setLayout(borderLayout1);
165  0 textarea.setFont(new java.awt.Font("Monospaced", 0, 12));
166  0 textarea.setText("");
167  0 viewInEditorButton.setFont(new java.awt.Font("Verdana", 0, 12));
168  0 viewInEditorButton.setLabel(
169    MessageManager.getString("label.view_alignment_editor"));
170  0 viewInEditorButton.addActionListener(this);
171  0 this.add(scrollPane, BorderLayout.CENTER);
172  0 scrollPane.add(textarea);
173  0 this.add(jPanel1, BorderLayout.SOUTH);
174  0 jPanel1.add(viewInEditorButton, null);
175    }
176   
177    }