1 package jalview.ws.jws2.jabaws2;
3 import jalview.datamodel.AlignmentI;
4 import jalview.datamodel.Sequence;
5 import jalview.datamodel.SequenceI;
6 import jalview.ws.api.CancellableI;
7 import jalview.ws.api.JobId;
8 import jalview.ws.api.MultipleSequenceAlignmentI;
9 import jalview.ws.jws2.JabaParamStore;
10 import jalview.ws.jws2.JabaPreset;
11 import jalview.ws.params.ArgumentI;
12 import jalview.ws.params.InvalidArgumentException;
13 import jalview.ws.params.WsParamSetI;
15 import java.io.IOError;
16 import java.rmi.ServerError;
17 import java.util.ArrayList;
18 import java.util.List;
20 import compbio.data.sequence.Alignment;
21 import compbio.data.sequence.FastaSequence;
22 import compbio.metadata.ResultNotAvailableException;
24 public class JabawsMsaInstance
25 extends JabawsServiceInstance<compbio.data.msa.MsaWS>
26 implements MultipleSequenceAlignmentI, CancellableI
29 public JobId align(List<SequenceI> toalign, WsParamSetI parameters,
30 List<ArgumentI> arguments) throws Throwable
32 List<compbio.data.sequence.FastaSequence> seqs = new ArrayList<>();
33 for (SequenceI seq : toalign)
35 seqs.add(new FastaSequence(seq.getName(), seq.getSequenceAsString()));
38 if (parameters != null)
40 if (parameters instanceof JabaPreset)
42 jobid = service.presetAlign(seqs,
43 ((JabaPreset) parameters).getJabaPreset());
47 jobid = service.customAlign(seqs, JabaParamStore
48 .getJabafromJwsArgs(parameters.getArguments()));
51 else if (arguments != null && arguments.size() > 0)
53 jobid = service.customAlign(seqs,
54 JabaParamStore.getJabafromJwsArgs(arguments));
58 jobid = service.align(seqs);
65 return new JobId(our.getServiceType(), our.getName(), jobid);
69 public AlignmentI getAlignmentFor(JobId jobId)
70 throws InvalidArgumentException, ServerError, IOError
72 Alignment alignment = null;
75 alignment = service.getResult(jobId.getJobId());
76 } catch (ResultNotAvailableException rnotav)
79 // TODO - migrate JABA exception
80 // throw new ServerError("Couldn't get result for job",rnotav);
84 if (alignment.getSequences().size() == 0)
89 alseqs = new SequenceI[alignment.getSequences().size()];
90 for (compbio.data.sequence.FastaSequence seq : alignment.getSequences())
92 alseqs[alseq_l++] = new Sequence(seq.getId(), seq.getSequence());
94 AlignmentI jv_al = new jalview.datamodel.Alignment(alseqs);
95 jv_al.setGapCharacter(alignment.getMetadata().getGapchar());
100 public JabawsMsaInstance(Jws2Instance handle)