1 package jalview.ws.slivkaws;
3 import jalview.api.FeatureColourI;
4 import jalview.datamodel.AlignmentAnnotation;
5 import jalview.datamodel.SequenceI;
6 import jalview.datamodel.features.FeatureMatcherSetI;
7 import jalview.ws.api.JobId;
8 import jalview.ws.api.SequenceAnnotationServiceI;
9 import jalview.ws.params.ArgumentI;
10 import jalview.ws.params.WsParamSetI;
12 import java.io.ByteArrayInputStream;
13 import java.io.InputStream;
14 import java.util.HashMap;
15 import java.util.List;
18 import uk.ac.dundee.compbio.slivkaclient.FormField;
19 import uk.ac.dundee.compbio.slivkaclient.RemoteFile;
20 import uk.ac.dundee.compbio.slivkaclient.SlivkaClient;
21 import uk.ac.dundee.compbio.slivkaclient.SlivkaForm;
22 import uk.ac.dundee.compbio.slivkaclient.SlivkaService;
24 public class SlivkaAnnotationServiceInstance extends SlivkaWSInstance implements SequenceAnnotationServiceI
26 public SlivkaAnnotationServiceInstance(SlivkaClient client, SlivkaService service)
28 super(client, service, "Annotations");
32 public JobId submitToService(List<SequenceI> seqs, WsParamSetI preset, List<ArgumentI> paramset) throws Throwable
34 StringBuilder builder = new StringBuilder();
35 for (SequenceI seq : seqs)
37 builder.append(">").append(seq.getName()).append("\n");
38 builder.append(seq.getSequence()).append("\n");
40 InputStream stream = new ByteArrayInputStream(builder.toString().getBytes());
41 RemoteFile file = client.uploadFile(stream, "input.fasta", "application/fasta");
42 SlivkaForm form = service.getForm();
43 HashMap<String, String> values = new HashMap<>(paramset != null ? paramset.size() : 0);
46 for (ArgumentI arg : paramset)
48 values.put(arg.getName(), arg.getValue());
51 for (FormField field : form.getFields())
53 switch (field.getType())
56 form.insert(field.getName(), file);
59 String value = values.get(field.getName());
60 form.insert(field.getName(), value != null && !value.isBlank() ? true : false);
63 form.insert(field.getName(), field.valueOf(values.get(field.getName())));
66 return new JobId(service.getName(), service.getName(), form.submit());
70 public List<AlignmentAnnotation> getAnnotationResult(JobId job,
71 List<SequenceI> seqs, Map<String, FeatureColourI> featureColours,
72 Map<String, FeatureMatcherSetI> featureFilters) throws Throwable
74 // TODO Auto-generated method stub