X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FPairwiseAlignPanel.java;h=ba3c9ac04001fc31a55d8b7947b1228436f56f6e;hb=acc9fa6c42fcdde3d55b483f1dea91e0058be06e;hp=69789b9c46e499bec5838ecdce516ff1792e115b;hpb=588042b69abf8e60bcc950b24c283933c7dd422f;p=jalview.git diff --git a/src/jalview/gui/PairwiseAlignPanel.java b/src/jalview/gui/PairwiseAlignPanel.java index 69789b9..ba3c9ac 100755 --- a/src/jalview/gui/PairwiseAlignPanel.java +++ b/src/jalview/gui/PairwiseAlignPanel.java @@ -18,101 +18,140 @@ */ package jalview.gui; -import java.util.*; - -import java.awt.event.*; - import jalview.analysis.*; + import jalview.datamodel.*; + import jalview.jbgui.*; -public class PairwiseAlignPanel - extends GPairwiseAlignPanel -{ - Vector sequences = new Vector(); - AlignViewport av; +import java.awt.event.*; - public PairwiseAlignPanel(AlignViewport av) - { - super(); - this.av = av; +import java.util.*; - Vector selsubset = new Vector(); - for (int i = 0, j = av.getSelectionGroup().getSize(); i < j; i++) +/** + * DOCUMENT ME! + * + * @author $author$ + * @version $Revision$ + */ +public class PairwiseAlignPanel extends GPairwiseAlignPanel +{ + + AlignViewport av; + Vector sequences; + + /** + * Creates a new PairwiseAlignPanel object. + * + * @param av DOCUMENT ME! + */ + public PairwiseAlignPanel(AlignViewport av) { - if (av.getAlignment().getSequences().contains(av.getSelectionGroup() - .getSequenceAt(i))) - { - selsubset.add(av.getSelectionGroup().getSequenceAt(i)); - } - } + super(); + this.av = av; - float[][] scores = new float[selsubset.size()][selsubset.size()]; - double totscore = 0; - int count = selsubset.size(); + sequences = new Vector(); - int acount = 0; + SequenceI [] seqs; + String [] seqStrings = av.getViewAsString(true); - for (int i = 1; i < count; i++) - { - for (int j = 0; j < i; j++) - { - acount++; - - AlignSeq as = new AlignSeq( (SequenceI) selsubset.elementAt(i), - (SequenceI) selsubset.elementAt(j), "pep"); - as.calcScoreMatrix(); - as.traceAlignment(); - as.printAlignment(); - scores[i][j] = (float) as.getMaxScore() / (float) as.getASeq1().length; - totscore = totscore + scores[i][j]; - - textarea.append(as.getOutput()); - sequences.add(new Sequence(as.getS1().getName(), as.getAStr1())); - sequences.add(new Sequence(as.getS2().getName(), as.getAStr2())); - } - } + if(av.getSelectionGroup()==null) + { + seqs = av.alignment.getSequencesArray(); + } + else + { + seqs = av.getSelectionGroup().getSequencesInOrder(av.alignment); + } - if (count > 2) - { - System.out.println( - "Pairwise alignment scaled similarity score matrix\n"); - for (int i = 0; i < count; i++) - { - jalview.util.Format.print(System.out, "%s \n", - ("" + i) + " " + - ( (SequenceI) selsubset.elementAt(i)).getName()); - } + float[][] scores = new float[seqs.length][seqs.length]; + double totscore = 0; + int count = seqs.length; - System.out.println("\n"); + Sequence seq; - for (int i = 0; i < count; i++) - { - for (int j = 0; j < i; j++) + for (int i = 1; i < count; i++) { - jalview.util.Format.print(System.out, "%7.3f", - scores[i][j] / totscore); + for (int j = 0; j < i; j++) + { + + AlignSeq as = new AlignSeq(seqs[i], seqStrings[i], + seqs[j], seqStrings[j], "pep"); + + if(as.s1str.length()==0 || as.s2str.length()==0) + { + continue; + } + + as.calcScoreMatrix(); + as.traceAlignment(); + + + as.printAlignment(System.out); + scores[i][j] = (float) as.getMaxScore() / (float) as.getASeq1().length; + totscore = totscore + scores[i][j]; + + textarea.append(as.getOutput()); + seq = new Sequence(as.getS1().getName(), + as.getAStr1(), + as.getS1().getStart(), + as.getS1().getEnd() + ); + sequences.add(seq); + + seq = new Sequence(as.getS2().getName(), + as.getAStr2(), + as.getS2().getStart(), + as.getS2().getEnd() ); + sequences.add(seq); + } } - } - System.out.println("\n"); + if (count > 2) + { + System.out.println( + "Pairwise alignment scaled similarity score matrix\n"); + + for (int i = 0; i < count; i++) + { + jalview.util.Format.print(System.out, "%s \n", + ("" + i) + " " + + seqs[i].getName()); + } + + System.out.println("\n"); + + for (int i = 0; i < count; i++) + { + for (int j = 0; j < i; j++) + { + jalview.util.Format.print(System.out, "%7.3f", + scores[i][j] / totscore); + } + } + + System.out.println("\n"); + } } - } - - protected void viewInEditorButton_actionPerformed(ActionEvent e) - { - Sequence[] seq = new Sequence[sequences.size()]; - for (int i = 0; i < sequences.size(); i++) + /** + * DOCUMENT ME! + * + * @param e DOCUMENT ME! + */ + protected void viewInEditorButton_actionPerformed(ActionEvent e) { - seq[i] = (Sequence) sequences.elementAt(i); - } + Sequence[] seq = new Sequence[sequences.size()]; - AlignFrame af = new AlignFrame(new Alignment(seq)); - Desktop.addInternalFrame(af, "Pairwise Aligned Sequences", - AlignFrame.NEW_WINDOW_WIDTH, - AlignFrame.NEW_WINDOW_HEIGHT); - } + for (int i = 0; i < sequences.size(); i++) + { + seq[i] = (Sequence) sequences.elementAt(i); + } + + AlignFrame af = new AlignFrame(new Alignment(seq)); + Desktop.addInternalFrame(af, "Pairwise Aligned Sequences", + AlignFrame.NEW_WINDOW_WIDTH, AlignFrame.NEW_WINDOW_HEIGHT); + } }