package jalview.ws2.slivka;
import static java.lang.String.format;
+
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.EnumMap;
-import java.util.HashSet;
import java.util.List;
import java.util.Map;
-import java.util.Set;
-import jalview.api.AlignViewportI;
import jalview.api.FeatureColourI;
import jalview.bin.Cache;
import jalview.datamodel.Alignment;
import jalview.io.DataSourceType;
import jalview.io.FeaturesFile;
import jalview.io.FileFormat;
-import jalview.io.FileFormatI;
import jalview.io.FormatAdapter;
import jalview.io.JPredFile;
-import jalview.ws.gui.WsJob;
import jalview.ws.params.ArgumentI;
import jalview.ws.params.ParamDatastoreI;
-import jalview.ws.params.WsParamSetI;
import jalview.ws.slivkaws.SlivkaDatastore;
-import jalview.ws2.WebServiceI;
-import jalview.ws2.operations.Operation;
import jalview.ws2.WSJob;
import jalview.ws2.WSJobStatus;
+import jalview.ws2.WebServiceI;
import javajs.http.ClientProtocolException;
import uk.ac.dundee.compbio.slivkaclient.Job;
import uk.ac.dundee.compbio.slivkaclient.Parameter;
protected final SlivkaClient client;
protected final SlivkaService service;
-
+
protected ParamDatastoreI store;
protected static final EnumMap<Job.Status, WSJobStatus> statusMap = new EnumMap<>(
- Job.Status.class);
+ Job.Status.class);
{
statusMap.put(Job.Status.PENDING, WSJobStatus.SUBMITTED);
statusMap.put(Job.Status.REJECTED, WSJobStatus.INVALID);
@Override
public String submit(List<SequenceI> sequences, List<ArgumentI> args)
- throws IOException
+ throws IOException
{
var request = new uk.ac.dundee.compbio.slivkaclient.JobRequest();
for (Parameter param : service.getParameters())
break;
}
InputStream stream = new ByteArrayInputStream(format.getWriter(null)
- .print(sequences.toArray(new SequenceI[0]), false)
- .getBytes());
+ .print(sequences.toArray(new SequenceI[0]), false)
+ .getBytes());
request.addFile(param.getId(), stream);
}
}
if (f.getMediaType().equals("application/clustal"))
{
return new FormatAdapter().readFile(f.getContentUrl().toString(),
- DataSourceType.URL, FileFormat.Clustal);
+ DataSourceType.URL, FileFormat.Clustal);
}
else if (f.getMediaType().equals("application/fasta"))
{
return new FormatAdapter().readFile(f.getContentUrl().toString(),
- DataSourceType.URL, FileFormat.Fasta);
+ DataSourceType.URL, FileFormat.Fasta);
}
}
return null;
return Arrays.asList(aln.getAlignmentAnnotation());
}
+ public JPredFile getPrediction(WSJob job) throws IOException
+ {
+ Collection<RemoteFile> files = client.getJob(job.getJobId()).getResults();
+ for (RemoteFile f : files)
+ {
+ if (f.getLabel().equals("concise"))
+ {
+ return new JPredFile(f.getContentUrl(), DataSourceType.URL);
+ }
+ }
+ return null;
+ }
+
@Override
public String toString()
{