/*\r
* Jalview - A Sequence Alignment Editor and Viewer\r
- * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
+ * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
*\r
* This program is free software; you can redistribute it and/or\r
* modify it under the terms of the GNU General Public License\r
*/\r
public class PairwiseAlignPanel extends GPairwiseAlignPanel\r
{\r
- Vector sequences = new Vector();\r
+\r
AlignViewport av;\r
+ Vector sequences;\r
\r
/**\r
* Creates a new PairwiseAlignPanel object.\r
super();\r
this.av = av;\r
\r
- Vector selsubset = new Vector();\r
+ sequences = new Vector();\r
+\r
+ SequenceI [] seqs;\r
+ String [] seqStrings = av.getViewAsString(true);\r
\r
- for (int i = 0, j = av.getSelectionGroup().getSize(false); i < j; i++)\r
+ if(av.getSelectionGroup()==null)\r
{\r
- if (av.getAlignment().getSequences().contains(av.getSelectionGroup()\r
- .getSequenceAt(i)))\r
- {\r
- selsubset.add(av.getSelectionGroup().getSequenceAt(i));\r
- }\r
+ seqs = av.alignment.getSequencesArray();\r
}\r
+ else\r
+ {\r
+ seqs = av.getSelectionGroup().getSequencesInOrder(av.alignment);\r
+ }\r
+\r
\r
- float[][] scores = new float[selsubset.size()][selsubset.size()];\r
+ float[][] scores = new float[seqs.length][seqs.length];\r
double totscore = 0;\r
- int count = selsubset.size();\r
+ int count = seqs.length;\r
\r
- int acount = 0;\r
Sequence seq;\r
\r
for (int i = 1; i < count; i++)\r
{\r
for (int j = 0; j < i; j++)\r
{\r
- acount++;\r
\r
- AlignSeq as = new AlignSeq((SequenceI) selsubset.elementAt(i),\r
- (SequenceI) selsubset.elementAt(j), "pep");\r
+ AlignSeq as = new AlignSeq(seqs[i], seqStrings[i],\r
+ seqs[j], seqStrings[j], "pep");\r
+\r
+ if(as.s1str.length()==0 || as.s2str.length()==0)\r
+ {\r
+ continue;\r
+ }\r
+\r
as.calcScoreMatrix();\r
as.traceAlignment();\r
+\r
+\r
as.printAlignment(System.out);\r
scores[i][j] = (float) as.getMaxScore() / (float) as.getASeq1().length;\r
totscore = totscore + scores[i][j];\r
textarea.append(as.getOutput());\r
seq = new Sequence(as.getS1().getName(),\r
as.getAStr1(),\r
- as.getS1().getStart(), as.getS1().getEnd()\r
+ as.getS1().getStart(),\r
+ as.getS1().getEnd()\r
);\r
sequences.add(seq);\r
\r
seq = new Sequence(as.getS2().getName(),\r
as.getAStr2(),\r
- as.getS2().getStart(), as.getS2().getEnd()\r
- );\r
+ as.getS2().getStart(),\r
+ as.getS2().getEnd() );\r
sequences.add(seq);\r
}\r
}\r
{\r
jalview.util.Format.print(System.out, "%s \n",\r
("" + i) + " " +\r
- ((SequenceI) selsubset.elementAt(i)).getName());\r
+ seqs[i].getName());\r
}\r
\r
System.out.println("\n");\r
seq[i] = (Sequence) sequences.elementAt(i);\r
}\r
\r
- AlignFrame af = new AlignFrame(new Alignment(seq));\r
+ AlignFrame af = new AlignFrame(new Alignment(seq),\r
+ AlignFrame.DEFAULT_WIDTH,\r
+ AlignFrame.DEFAULT_HEIGHT);\r
+\r
Desktop.addInternalFrame(af, "Pairwise Aligned Sequences",\r
- AlignFrame.NEW_WINDOW_WIDTH, AlignFrame.NEW_WINDOW_HEIGHT);\r
+ AlignFrame.DEFAULT_WIDTH, AlignFrame.DEFAULT_HEIGHT);\r
}\r
}\r