+ loc.getEngine().setOption("axis", "1");\r
+\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
+ String ServiceName = WebServiceName;\r
+ String OutputHeader;\r
+ vamsas.objects.simple.MsaResult result = null;\r
+ vamsas.objects.simple.SequenceSet seqs = new vamsas.objects.simple.\r
+ SequenceSet();\r
+ Hashtable SeqNames = null;\r
+ boolean submitGaps = false; // pass sequences including gaps to alignment service\r
+ boolean preserveOrder = true; // and always store and recover sequence order\r
+ String jobId;\r
+ String alTitle; // name which will be used to form new alignment window.\r
+ int allowedServerExceptions = 3; // thread dies if too many exceptions.\r
+ boolean jobComplete = false;\r
+\r
+ Alignment dataset; // dataset to which the new alignment will be associated.\r
+\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
+ SeqCigar[] msa = _msa.getSequences();\r
+ vamsas.objects.simple.Sequence[] seqarray = new vamsas.objects.simple.\r
+ Sequence[msa.length];\r
+\r
+ for (int i = 0,n=0; i < msa.length; i++)\r
+ {\r
+ String newname = jalview.analysis.SeqsetUtils.unique_name(i);\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(mseq));\r
+ seqarray[i] = new vamsas.objects.simple.Sequence();\r
+ seqarray[i].setId(newname);\r
+ seqarray[i].setSeq( (submitGaps) ? mseq.getSequence()\r
+ : AlignSeq.extractGaps(\r
+ jalview.util.Comparison.GapChars,\r
+ mseq.getSequence()));\r
+ }\r
+\r
+ this.seqs = new vamsas.objects.simple.SequenceSet();\r
+ this.seqs.setSeqs(seqarray);\r
+ }\r