1 package jalview.ws.slivkaws;
3 import java.io.IOError;
4 import java.io.IOException;
7 import jalview.datamodel.AlignmentI;
8 import jalview.datamodel.SequenceI;
9 import jalview.io.DataSourceType;
10 import jalview.io.JPredFile;
11 import jalview.ws.api.JPredServiceI;
12 import jalview.ws.api.JobId;
13 import jalview.ws.params.ArgumentI;
14 import uk.ac.dundee.compbio.slivkaclient.RemoteFile;
15 import uk.ac.dundee.compbio.slivkaclient.SlivkaClient;
16 import uk.ac.dundee.compbio.slivkaclient.SlivkaService;
18 public class SlivkaJPredServiceInstance extends SlivkaWSInstance
19 implements JPredServiceI
22 private class InputFormatParameter implements ArgumentI
27 public String getName()
33 public String getValue()
39 public void setValue(String selectedItem)
46 public SlivkaJPredServiceInstance(SlivkaClient client,
47 SlivkaService service, String action)
49 super(client, service, action);
50 style = ServiceClient.JPREDWSCLIENT;
54 public JobId predict(List<SequenceI> sequences, boolean msa) throws Throwable
56 // Hack allowing to send both single and msa jobs
57 // until msa and single sequence services are separated.
58 var arg = new InputFormatParameter();
59 arg.setValue(msa ? "fasta" : "seq");
60 return super.submit(sequences, null, List.of(arg));
64 public AlignmentI getAlignment(JobId jobId) throws Exception
66 List<RemoteFile> files;
68 files = client.getJobResults(jobId.getJobId());
69 for (RemoteFile f : files) {
70 var alignment = readAlignment(f);
71 if (alignment != null)
77 catch (IOException e) {
84 public JPredFile getPrediction(JobId jobId) throws Exception
86 List<RemoteFile> files = client.getJobResults(jobId.getJobId());
87 for (RemoteFile f : files)
89 if (f.getLabel().equals("concise"))
91 return new JPredFile(f.getURL(), DataSourceType.URL);