import compbio.data.msa.MsaWS;
import compbio.data.sequence.AlignmentMetadata;
import compbio.data.sequence.Program;
+import compbio.metadata.Argument;
import compbio.metadata.ChunkHolder;
import compbio.metadata.JobStatus;
+import compbio.metadata.Preset;
import jalview.analysis.*;
import jalview.bin.*;
class MsaWSJob extends JWs2Job
{
long lastChunk=0;
-
+ Preset preset=null;
+ List<Argument> arguments = null;
/**
* input
*/
{
this.lastChunk = lastChunk;
}
+
+ String alignmentProgram=null;
+ public String getAlignmentProgram()
+ {
+ return alignmentProgram;
+ }
}
* @param seqset
* Alignment
*/
- MsaWSThread(MsaWS server2, String wsUrl,
+ MsaWSThread(MsaWS server2, Preset preset, List<Argument> paramset, String wsUrl,
WebserviceInfo wsinfo, jalview.gui.AlignFrame alFrame,
String wsname, String title, AlignmentView _msa, boolean subgaps,
boolean presorder, Alignment seqset)
{
jobs[j] = new MsaWSJob(0, conmsa[j]);
}
+ ((MsaWSJob) jobs[j]).preset = preset;
+ ((MsaWSJob) jobs[j]).arguments = paramset;
+ ((MsaWSJob) jobs[j]).alignmentProgram = wsname;
if (njobs > 0)
{
wsinfo
try
{
// TODO: get the parameters (if any) for this job and submit the job
- j.setJobId(server.align(j.seqs));
+ if (j.arguments!=null && j.arguments.size()>0)
+ {
+ StringBuffer pset = new StringBuffer();
+ for (Argument arg: j.arguments) {
+ pset.append(arg.getName()+" "+arg.getDefaultValue()+"\n");
+ }
+ j.setStatus("Custom Parameters:\n"+pset.toString()+"\nJob Output:\n");
+ j.setJobId(server.customAlign(j.seqs, j.arguments));
+ } else
+ if (j.preset!=null)
+ {
+ j.setJobId(server.presetAlign(j.seqs, j.preset));
+ } else {
+ j.setJobId(server.align(j.seqs));
+ }
if (j.getJobId()!= null)
{
System.err
.println(WebServiceName
+ "Client: Failed to submit the sequences for alignment (probably a server side problem)\n"
- + "When contacting Server:" + WsUrl + "\n"
- + e.toString() + "\n");
+ + "When contacting Server:" + WsUrl + "\n");
+ e.printStackTrace(System.err);
j.setAllowedServerExceptions(0);
wsInfo.setStatus(WebserviceInfo.STATE_STOPPED_SERVERERROR);
wsInfo.setStatus(j.getJobnum(), WebserviceInfo.STATE_STOPPED_SERVERERROR);
{
msjob = (MsaWSJob)jobs[j];
Object[] res = msjob.getAlignment();
- lastProgram = msjob.alignment.getMetadata().getProgram().name();
+ lastProgram = msjob.getAlignmentProgram();
alorders.add(res[1]);
results[j] = (SequenceI[]) res[0];
orders[j] = (AlignmentOrder) res[1];