*/\r
\r
public MsaWSClient(ext.vamsas.ServiceHandle sh, String altitle,\r
- SequenceI[] msa,\r
+ jalview.datamodel.AlignmentView msa,\r
boolean submitGaps, boolean preserveOrder,\r
Alignment seqdataset,\r
AlignFrame _alignFrame)\r
}\r
\r
\r
- private void startMsaWSClient(String altitle, SequenceI[] msa,\r
+ private void startMsaWSClient(String altitle, AlignmentView msa,\r
boolean submitGaps, boolean preserveOrder, Alignment seqdataset)\r
{\r
if (!locateWebService())\r
return true;\r
}\r
\r
+ protected String getServiceActionKey()\r
+ {\r
+ return "MsaWS";\r
+ }\r
+\r
+ protected String getServiceActionDescription()\r
+ {\r
+ return "Multiple Sequence Alignment";\r
+ }\r
+\r
protected class MsaWSThread\r
extends Thread implements WSClientI\r
{\r
\r
Alignment dataset; // dataset to which the new alignment will be associated.\r
\r
- MsaWSThread(String title, SequenceI[] msa, boolean subgaps,\r
+ MsaWSThread(String title, AlignmentView _msa, boolean subgaps,\r
boolean presorder, Alignment seqset)\r
{\r
+ // jbpnote - transformation should be above here - this is per sequence set contig, not for many contigs.\r
alTitle = title;\r
submitGaps = subgaps;\r
preserveOrder = presorder;\r
dataset = seqset;\r
OutputHeader = wsInfo.getProgressText();\r
SeqNames = new Hashtable();\r
-\r
+ SeqCigar[] msa = _msa.getSequences();\r
vamsas.objects.simple.Sequence[] seqarray = new vamsas.objects.simple.\r
Sequence[msa.length];\r
\r
- for (int i = 0; i < msa.length; i++)\r
+ for (int i = 0,n=0; i < msa.length; i++)\r
{\r
String newname = jalview.analysis.SeqsetUtils.unique_name(i);\r
-\r
+ SequenceI mseq = msa[i].getSeq('-');\r
// uniquify as we go\r
// TODO: JBPNote: this is a ubiquitous transformation - set of jalview seq objects to vamsas sequences with name preservation\r
SeqNames.put(newname,\r
- jalview.analysis.SeqsetUtils.SeqCharacterHash(msa[i]));\r
+ jalview.analysis.SeqsetUtils.SeqCharacterHash(mseq));\r
seqarray[i] = new vamsas.objects.simple.Sequence();\r
seqarray[i].setId(newname);\r
- seqarray[i].setSeq( (submitGaps) ? msa[i].getSequence()\r
+ seqarray[i].setSeq( (submitGaps) ? mseq.getSequence()\r
: AlignSeq.extractGaps(\r
jalview.util.Comparison.GapChars,\r
- msa[i].getSequence()));\r
+ mseq.getSequence()));\r
}\r
\r
this.seqs = new vamsas.objects.simple.SequenceSet();\r
if (result.isFinished())\r
{\r
wsInfo.setStatus(WebserviceInfo.STATE_STOPPED_OK);\r
+ wsInfo.showResultsNewFrame.addActionListener(new java.awt.event.ActionListener()\r
+ {\r
+ public void actionPerformed(java.awt.event.ActionEvent evt)\r
+ {\r
+ displayResults(true);\r
+ }\r
+ });\r
+ wsInfo.mergeResults.addActionListener(new java.awt.event.ActionListener()\r
+ {\r
+ public void actionPerformed(java.awt.event.ActionEvent evt)\r
+ {\r
+ displayResults(false);\r
+ }\r
+ });\r
+ wsInfo.setResultsReady();\r
parseResult();\r
jobComplete = true;\r
jobsRunning--;\r
\r
void parseResult()\r
{\r
- SequenceI[] seqs = null;\r
\r
try\r
{\r
OutputHeader += (lines[line] + "\n");\r
}\r
\r
- // JBPNote The returned files from a webservice could be hidden behind icons in the monitor window that, when clicked, pop up their corresponding data\r
- seqs = getVamsasAlignment(result.getMsa());\r
+ // JBPNote The returned files from a webservice could be\r
+ // hidden behind icons in the monitor window that,\r
+ // when clicked, pop up their corresponding data\r
}\r
\r
wsInfo.setProgressText(OutputHeader);\r
+ }\r
+ catch (Exception ex)\r
+ {\r
+ ex.printStackTrace();\r
+ }\r
+ }\r
\r
- if (seqs != null)\r
- {\r
- AlignmentOrder msaorder = new AlignmentOrder(seqs);\r
+ void displayResults(boolean newFrame)\r
+ {\r
+ SequenceI [] seqs = getVamsasAlignment(result.getMsa());\r
\r
- if (preserveOrder)\r
- {\r
- jalview.analysis.AlignmentSorter.recoverOrder(seqs);\r
- }\r
+ if (seqs != null)\r
+ {\r
+ AlignmentOrder msaorder = new AlignmentOrder(seqs);\r
\r
- jalview.analysis.SeqsetUtils.deuniquify(SeqNames, seqs);\r
+ if (preserveOrder)\r
+ {\r
+ jalview.analysis.AlignmentSorter.recoverOrder(seqs);\r
+ }\r
\r
- Alignment al = new Alignment(seqs);\r
- if (dataset!=null) {\r
- al.setDataset(dataset);\r
- }\r
- // TODO: JBPNote Should also rename the query sequence sometime...\r
- AlignFrame af = new AlignFrame(al);\r
+ jalview.analysis.SeqsetUtils.deuniquify(SeqNames, seqs);\r
\r
- //>>>This is a fix for the moment, until a better solution is found!!<<<\r
- alignFrame.getFeatureRenderer().transferSettings(af.getFeatureRenderer());\r
+ Alignment al = new Alignment(seqs);\r
+ if (dataset!=null)\r
+ {\r
+ al.setDataset(dataset);\r
+ }\r
\r
- af.addSortByOrderMenuItem(ServiceName + " Ordering",\r
- msaorder);\r
+ if(newFrame)\r
+ {\r
+ // TODO: JBPNote Should also rename the query sequence sometime...\r
+ AlignFrame af = new AlignFrame(al);\r
\r
- Desktop.addInternalFrame(af, alTitle,\r
- AlignFrame.NEW_WINDOW_WIDTH,\r
- AlignFrame.NEW_WINDOW_HEIGHT);\r
- }\r
- }\r
- catch (Exception ex)\r
- {\r
- ex.printStackTrace();\r
- }\r
+ //>>>This is a fix for the moment, until a better solution is found!!<<<\r
+ af.getFeatureRenderer().transferSettings(alignFrame.getFeatureRenderer());\r
+\r
+ af.addSortByOrderMenuItem(ServiceName + " Ordering",\r
+ msaorder);\r
+\r
+ Desktop.addInternalFrame(af, alTitle,\r
+ AlignFrame.NEW_WINDOW_WIDTH,\r
+ AlignFrame.NEW_WINDOW_HEIGHT);\r
+\r
+ }\r
+ else\r
+ {\r
+ System.out.println("MERGE WITH OLD FRAME");\r
+\r
+ }\r
+ }\r
}\r
}\r
}\r