X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws2%2Fclient%2Febi%2FPhmmerWSClient.java;h=9c5f14f6640dbafa2b8d7582a5bfc58fc26eab3f;hb=dc82563dc0d6752da31ade9031035854e5c33409;hp=5a51fcc123a110ba86c50918cd83cd1b6270cca9;hpb=d8cfb2d4adc9d86926e8b5a8ba0566249d6ce1df;p=jalview.git diff --git a/src/jalview/ws2/client/ebi/PhmmerWSClient.java b/src/jalview/ws2/client/ebi/PhmmerWSClient.java index 5a51fcc..9c5f14f 100644 --- a/src/jalview/ws2/client/ebi/PhmmerWSClient.java +++ b/src/jalview/ws2/client/ebi/PhmmerWSClient.java @@ -1,11 +1,22 @@ package jalview.ws2.client.ebi; +import java.io.BufferedReader; import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; import java.io.StringReader; +import java.net.URI; import java.util.List; +import jalview.bin.Console; +import jalview.datamodel.Alignment; +import jalview.datamodel.AlignmentI; import jalview.datamodel.SequenceI; +import jalview.io.DataSourceType; import jalview.io.FileFormat; +import jalview.io.FileParse; +import jalview.io.FormatAdapter; +import jalview.io.StockholmFile; import jalview.ws.params.ArgumentI; import jalview.ws.params.simple.BooleanOption; import jalview.ws.params.simple.DoubleParameter; @@ -13,13 +24,14 @@ import jalview.ws.params.simple.IntegerParameter; import jalview.ws2.api.Credentials; import jalview.ws2.api.JobStatus; import jalview.ws2.api.WebServiceJobHandle; +import jalview.ws2.client.api.AlignmentWebServiceClientI; import jalview.ws2.client.api.WebServiceClientI; import uk.ac.dundee.compbio.hmmerclient.PhmmerClient; import uk.ac.dundee.compbio.hmmerclient.PhmmerRequest; import uk.ac.dundee.compbio.hmmerclient.PhmmerRequest.SequenceDatabase; import uk.ac.dundee.compbio.hmmerclient.PhmmerRequest.SubstitutionMatrix; -public class PhmmerWSClient implements WebServiceClientI +public class PhmmerWSClient implements AlignmentWebServiceClientI { final PhmmerClient client; @@ -53,6 +65,7 @@ public class PhmmerWSClient implements WebServiceClientI var email = credentials.getEmail() != null ? credentials.getEmail() : "nouser@jalview.org"; var jobId = client.submit(request.build(), email); + Console.debug("Phmmer client submitted new job with id " + jobId); return new WebServiceJobHandle( getClientName(), "phmmer", getUrl(), jobId); } @@ -229,4 +242,22 @@ public class PhmmerWSClient implements WebServiceClientI "ebi job dispatcher does not support job cancellation"); } + /** + * FIXME: Temporary hack + */ + @Override + public AlignmentI getAlignment(WebServiceJobHandle job) throws IOException + { + URI url = client.getResultURL(job.getJobId(), "sto"); + try(InputStream stream = client.getResultStream(job.getJobId(), "sto")) + { + StockholmFile file = new StockholmFile(new FileParse( + new BufferedReader(new InputStreamReader(stream)), + url.toString(), DataSourceType.URL)); + var aln = new Alignment(file.getSeqsAsArray()); + for (var annotation : file.getAnnotations()) + aln.addAnnotation(annotation); + return aln; + } + } }