X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Fslivkaws%2FSlivkaAnnotationServiceInstance.java;h=c42d42e4f1ca1f7137c825a54d3408bc5059433a;hb=49db0dff1da16c3355b43a41498c1fc93ef47e91;hp=f49aa581c67ced1289bdafc6f9e4bf369d68367e;hpb=53c7ffa049dd10ce2c67f100d788c0d07e3fcb11;p=jalview.git diff --git a/src/jalview/ws/slivkaws/SlivkaAnnotationServiceInstance.java b/src/jalview/ws/slivkaws/SlivkaAnnotationServiceInstance.java index f49aa58..c42d42e 100644 --- a/src/jalview/ws/slivkaws/SlivkaAnnotationServiceInstance.java +++ b/src/jalview/ws/slivkaws/SlivkaAnnotationServiceInstance.java @@ -16,30 +16,28 @@ import jalview.ws.params.ArgumentI; import jalview.ws.params.WsParamSetI; import jalview.ws.uimodel.AlignAnalysisUIText; -import java.io.ByteArrayInputStream; import java.io.IOError; import java.io.IOException; -import java.io.InputStream; import java.util.Arrays; -import java.util.HashMap; +import java.util.Collection; import java.util.List; import java.util.Map; -import uk.ac.dundee.compbio.slivkaclient.FormField; +import compbio.data.msa.Category; import uk.ac.dundee.compbio.slivkaclient.RemoteFile; import uk.ac.dundee.compbio.slivkaclient.SlivkaClient; -import uk.ac.dundee.compbio.slivkaclient.SlivkaForm; import uk.ac.dundee.compbio.slivkaclient.SlivkaService; public class SlivkaAnnotationServiceInstance extends SlivkaWSInstance implements SequenceAnnotationServiceI { public SlivkaAnnotationServiceInstance(SlivkaClient client, - SlivkaService service, boolean conservation) + SlivkaService service, String category) { - super(client, service, !conservation ? "Protein sequence analysis" - : "Alignment Conservation"); - if (conservation) + super(client, service, category); + if (category == Category.CATEGORY_CONSERVATION) { + /* FIXME: the category name is hardcoded for AACon, names other than + * "AAConWS" doesn't work. */ setAlignAnalysisUI(new AlignAnalysisUIText(getName(), SlivkaAnnotationServiceInstance.class, "Slivka.AACons", false, true, true, true, true, 2, @@ -54,43 +52,11 @@ public class SlivkaAnnotationServiceInstance extends SlivkaWSInstance implements @Override public JobId submitToService(List seqs, WsParamSetI preset, List paramset) throws Throwable { - StringBuilder builder = new StringBuilder(); - for (SequenceI seq : seqs) - { - builder.append(">").append(seq.getName()).append("\n"); - builder.append(seq.getSequence()).append("\n"); - } - InputStream stream = new ByteArrayInputStream(builder.toString().getBytes()); - RemoteFile file = client.uploadFile(stream, "input.fasta", "application/fasta"); - SlivkaForm form = service.getForm(); - HashMap values = new HashMap<>(paramset != null ? paramset.size() : 0); - if (paramset != null) - { - for (ArgumentI arg : paramset) - { - values.put(arg.getName(), arg.getValue()); - } - } - for (FormField field : form.getFields()) - { - switch (field.getType()) - { - case FILE: - form.insert(field.getName(), file); - break; - case BOOLEAN: - String value = values.get(field.getName()); - form.insert(field.getName(), value != null && !value.isBlank() ? true : false); - break; - default: - form.insert(field.getName(), field.valueOf(values.get(field.getName()))); - } - } - return new JobId(service.getName(), service.getName(), form.submit()); + return super.submit(seqs, preset, paramset); } @Override - public List getAnnotationResult(JobId job, + public List getAnnotationResult(JobId jobId, List seqs, Map featureColours, Map featureFilters) throws Throwable { @@ -98,14 +64,15 @@ public class SlivkaAnnotationServiceInstance extends SlivkaWSInstance implements RemoteFile featFile = null; try { - List files = client.getJobResults(job.getJobId()); + var slivkaJob = client.getJob(jobId.getJobId()); + Collection files = slivkaJob.getResults(); for (RemoteFile f : files) { - if (f.getMimeType().equals("application/jalview-annotations")) + if (f.getMediaType().equals("application/jalview-annotations")) { annotFile = f; } - else if (f.getMimeType().equals("application/jalview-features")) + else if (f.getMediaType().equals("application/jalview-features")) { featFile = f; } @@ -116,15 +83,21 @@ public class SlivkaAnnotationServiceInstance extends SlivkaWSInstance implements } Alignment aln = new Alignment(seqs.toArray(new SequenceI[0])); if (annotFile == null - || !new AnnotationFile().readAnnotationFile(aln, annotFile.getURL().toString(), DataSourceType.URL)) + || !new AnnotationFile().readAnnotationFileWithCalcId(aln, service.getId(), annotFile.getContentUrl().toString(), DataSourceType.URL)) { Cache.log.debug("No annotation from slivka job\n" + annotFile); } + else { + Cache.log.debug("Annotation file loaded " + annotFile); + } if (featFile == null - || !new FeaturesFile(featFile.getURL().toString(), DataSourceType.URL).parse(aln, featureColours, true)) + || !new FeaturesFile(featFile.getContentUrl().toString(), DataSourceType.URL).parse(aln, featureColours, true)) { Cache.log.debug("No features from slivka job\n" + featFile); } + else { + Cache.log.debug("Features feil loaded " + featFile); + } return Arrays.asList(aln.getAlignmentAnnotation()); } }