From 857348180124be7ab86d7de1e4d3f780e65b1fdd Mon Sep 17 00:00:00 2001 From: Mateusz Warowny Date: Wed, 11 Sep 2019 11:18:38 +0100 Subject: [PATCH] Create generic msa service instance --- j11lib/slivka-client.jar | Bin 37386 -> 114641 bytes src/jalview/ws/slivkaws/SlivkaDatastore.java | 4 +- src/jalview/ws/slivkaws/SlivkaParamSet.java | 9 +- src/jalview/ws/slivkaws/SlivkaWSDiscoverer.java | 104 +++++++++++++++----- .../{ClustaloWS.java => SlivkaWSInstance.java} | 95 +++++++++--------- 5 files changed, 133 insertions(+), 79 deletions(-) rename src/jalview/ws/slivkaws/{ClustaloWS.java => SlivkaWSInstance.java} (71%) diff --git a/j11lib/slivka-client.jar b/j11lib/slivka-client.jar index 7c00c7c550526eab50b37f485a6b62d13c05a730..9efae32cf535d615e9f6232be655ffd7d193a832 100644 GIT binary patch literal 114641 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 presets = new ArrayList<>(); - SlivkaDatastore(Service service) throws IOException { + SlivkaDatastore(SlivkaService service) throws IOException { defaultPreset = new SlivkaParamSet(service); presets.add(defaultPreset); } diff --git a/src/jalview/ws/slivkaws/SlivkaParamSet.java b/src/jalview/ws/slivkaws/SlivkaParamSet.java index 7feb2f1..86755cb 100644 --- a/src/jalview/ws/slivkaws/SlivkaParamSet.java +++ b/src/jalview/ws/slivkaws/SlivkaParamSet.java @@ -18,19 +18,20 @@ import uk.ac.dundee.compbio.slivkaclient.DecimalField; import uk.ac.dundee.compbio.slivkaclient.Form; import uk.ac.dundee.compbio.slivkaclient.FormField; import uk.ac.dundee.compbio.slivkaclient.IntegerField; -import uk.ac.dundee.compbio.slivkaclient.Service; +import uk.ac.dundee.compbio.slivkaclient.SlivkaForm; +import uk.ac.dundee.compbio.slivkaclient.SlivkaService; import uk.ac.dundee.compbio.slivkaclient.TextField; public class SlivkaParamSet implements WsParamSetI { - private Service service; + private SlivkaService service; private List args = new ArrayList<>(); - SlivkaParamSet(Service service) throws IOException { + SlivkaParamSet(SlivkaService service) throws IOException { this.service = service; - Form form = service.getForm(); + SlivkaForm form = service.getForm(); for (FormField field : form.getFields()) { ArgumentI arg; diff --git a/src/jalview/ws/slivkaws/SlivkaWSDiscoverer.java b/src/jalview/ws/slivkaws/SlivkaWSDiscoverer.java index dfa3d89..2d46c9f 100644 --- a/src/jalview/ws/slivkaws/SlivkaWSDiscoverer.java +++ b/src/jalview/ws/slivkaws/SlivkaWSDiscoverer.java @@ -6,6 +6,7 @@ import jalview.ws.WSMenuEntryProviderI; import jalview.ws.jws2.MsaWSClient; import java.awt.event.ActionEvent; +import java.io.IOError; import java.io.IOException; import java.net.URISyntaxException; @@ -19,7 +20,6 @@ public class SlivkaWSDiscoverer { private static SlivkaWSDiscoverer instance = null; private SlivkaClient client; - private ClustaloWS clustalo; private SlivkaWSDiscoverer() { try @@ -29,7 +29,6 @@ public class SlivkaWSDiscoverer { throw new RuntimeException(e); } - clustalo = new ClustaloWS(client); } public static SlivkaWSDiscoverer getInstance() @@ -45,38 +44,93 @@ public class SlivkaWSDiscoverer { JMenu submenu = new JMenu("Slivka"); - JMenuItem noParamMenuItem = new JMenuItem("ClustalO with defaults"); - noParamMenuItem.addActionListener((ActionEvent e) -> { - AlignmentView msa = alignFrame.gatherSequencesForAlignment(); - if (msa != null) + { + // clustalo menu entry + JMenuItem noParamMenuItem = new JMenuItem("ClustalO with defaults"); + SlivkaWSInstance clustalo; + try + { + clustalo = new SlivkaWSInstance(client, client.getService("clustalo")); + } catch (IOException e) { - new MsaWSClient( - clustalo, alignFrame.getTitle(), msa, false, true, - alignFrame.getViewport().getAlignment().getDataset(), - alignFrame); + throw new IOError(e); } - }); - submenu.add(noParamMenuItem); + noParamMenuItem.addActionListener((ActionEvent e) -> { + AlignmentView msa = alignFrame.gatherSequencesForAlignment(); + if (msa != null) + { + new MsaWSClient( + clustalo, alignFrame.getTitle(), msa, false, true, alignFrame.getViewport().getAlignment().getDataset(), + alignFrame + ); + } + }); + submenu.add(noParamMenuItem); - JMenuItem parametrisedMenuItem = new JMenuItem("ClustalO with custom parameters"); - parametrisedMenuItem.addActionListener((ActionEvent evt) -> { - AlignmentView msa = alignFrame.gatherSequencesForAlignment(); - if (msa != null) + JMenuItem parametrisedMenuItem = new JMenuItem("ClustalO with custom parameters"); + parametrisedMenuItem.addActionListener((ActionEvent evt) -> { + AlignmentView msa = alignFrame.gatherSequencesForAlignment(); + if (msa != null) + { + try + { + SlivkaParamSet paramSet = new SlivkaParamSet(clustalo.getService()); + new MsaWSClient( + clustalo, paramSet, null, true, alignFrame.getTitle(), msa, false, true, + alignFrame.getViewport().getAlignment().getDataset(), alignFrame + ); + } catch (IOException e) + { + e.printStackTrace(); + } + } + }); + submenu.add(parametrisedMenuItem); + } + + { + // clustalw2 menu entry + JMenuItem noParamMenuItem = new JMenuItem("ClustalW2 with defaults"); + SlivkaWSInstance clustalo; + try { - try + clustalo = new SlivkaWSInstance(client, client.getService("clustalw")); + } catch (IOException e) + { + throw new IOError(e); + } + noParamMenuItem.addActionListener((ActionEvent e) -> { + AlignmentView msa = alignFrame.gatherSequencesForAlignment(); + if (msa != null) { - SlivkaParamSet paramSet = new SlivkaParamSet(clustalo.getService()); new MsaWSClient( - clustalo, paramSet, null, true, alignFrame.getTitle(), msa, false, true, - alignFrame.getViewport().getAlignment().getDataset(), alignFrame + clustalo, alignFrame.getTitle(), msa, false, true, alignFrame.getViewport().getAlignment().getDataset(), + alignFrame ); - } catch (IOException e) + } + }); + submenu.add(noParamMenuItem); + + JMenuItem parametrisedMenuItem = new JMenuItem("ClustalW2 with custom parameters"); + parametrisedMenuItem.addActionListener((ActionEvent evt) -> { + AlignmentView msa = alignFrame.gatherSequencesForAlignment(); + if (msa != null) { - e.printStackTrace(); + try + { + SlivkaParamSet paramSet = new SlivkaParamSet(clustalo.getService()); + new MsaWSClient( + clustalo, paramSet, null, true, alignFrame.getTitle(), msa, false, true, + alignFrame.getViewport().getAlignment().getDataset(), alignFrame + ); + } catch (IOException e) + { + e.printStackTrace(); + } } - } - }); - submenu.add(parametrisedMenuItem); + }); + submenu.add(parametrisedMenuItem); + } wsmenu.add(submenu); } diff --git a/src/jalview/ws/slivkaws/ClustaloWS.java b/src/jalview/ws/slivkaws/SlivkaWSInstance.java similarity index 71% rename from src/jalview/ws/slivkaws/ClustaloWS.java rename to src/jalview/ws/slivkaws/SlivkaWSInstance.java index 6a2dae6..d5456a6 100644 --- a/src/jalview/ws/slivkaws/ClustaloWS.java +++ b/src/jalview/ws/slivkaws/SlivkaWSInstance.java @@ -12,32 +12,34 @@ import jalview.ws.api.MultipleSequenceAlignmentI; import jalview.ws.api.ServiceWithParameters; import jalview.ws.gui.WsJob; import jalview.ws.params.ArgumentI; +import jalview.ws.params.InvalidArgumentException; import jalview.ws.params.ParamDatastoreI; import jalview.ws.params.ParamManager; import jalview.ws.params.WsParamSetI; import java.io.ByteArrayInputStream; +import java.io.IOError; import java.io.IOException; import java.io.InputStream; +import java.rmi.ServerError; import java.util.EnumMap; import java.util.HashMap; import java.util.List; -import uk.ac.dundee.compbio.slivkaclient.FieldType; -import uk.ac.dundee.compbio.slivkaclient.Form; import uk.ac.dundee.compbio.slivkaclient.FormField; import uk.ac.dundee.compbio.slivkaclient.FormValidationException; import uk.ac.dundee.compbio.slivkaclient.JobState; import uk.ac.dundee.compbio.slivkaclient.RemoteFile; -import uk.ac.dundee.compbio.slivkaclient.Service; import uk.ac.dundee.compbio.slivkaclient.SlivkaClient; +import uk.ac.dundee.compbio.slivkaclient.SlivkaForm; +import uk.ac.dundee.compbio.slivkaclient.SlivkaService; import uk.ac.dundee.compbio.slivkaclient.ValidationException; -public class ClustaloWS extends ServiceWithParameters +public class SlivkaWSInstance extends ServiceWithParameters implements MultipleSequenceAlignmentI, JalviewServiceEndpointProviderI { private SlivkaClient client; - private Service service; + private SlivkaService service; private SlivkaDatastore store = null; private EnumMap stateMap = new EnumMap<>(JobState.class); @@ -51,19 +53,10 @@ public class ClustaloWS extends ServiceWithParameters stateMap.put(JobState.UNKNOWN, WsJob.JobState.UNKNOWN); } - - ClustaloWS(SlivkaClient client) - { - super("ClustalO", "Alignment", "ClustalO", "Slivka", client.getUrl().toString()); - + SlivkaWSInstance(SlivkaClient client, SlivkaService service) { + super(service.getName(), "Alignment", service.getName(), "Slivka", client.getUrl().toString()); this.client = client; - try - { - this.service = client.getService("clustalo"); - } catch (IOException e) - { - throw new RuntimeException(e); - } + this.service = service; } @Override @@ -78,7 +71,7 @@ public class ClustaloWS extends ServiceWithParameters } } - Service getService() + SlivkaService getService() { return service; } @@ -92,6 +85,19 @@ public class ClustaloWS extends ServiceWithParameters @Override public boolean handleSubmitError(Throwable _lex, WsJob j, WebserviceInfo wsInfo) { + if (_lex instanceof FormValidationException) + { + FormValidationException formError = (FormValidationException) _lex; + String[] messages = new String[formError.getErrors().size()]; + int i = 0; + for (ValidationException e : formError.getErrors()) + { + messages[i++] = String.format("%s: %s,", e.getField().getName(), e.getMessage()); + } + j.setState(WsJob.JobState.INVALID); + j.setStatus(String.join(", ", messages)); + return true; + } return false; } @@ -102,8 +108,7 @@ public class ClustaloWS extends ServiceWithParameters } @Override - public JobId align(List toalign, WsParamSetI parameters, List list) - throws IOException + public JobId align(List toalign, WsParamSetI parameters, List list) throws Throwable { StringBuilder builder = new StringBuilder(); for (SequenceI seq : toalign) @@ -113,7 +118,7 @@ public class ClustaloWS extends ServiceWithParameters } InputStream stream = new ByteArrayInputStream(builder.toString().getBytes()); RemoteFile file = client.uploadFile(stream, "input.fasta", "application/fasta"); - Form form = service.getForm(); + SlivkaForm form = service.getForm(); HashMap values = new HashMap<>(list != null ? list.size() : 0); if (list != null) { @@ -124,49 +129,49 @@ public class ClustaloWS extends ServiceWithParameters } for (FormField field : form.getFields()) { - if (field.getType() == FieldType.FILE) - { + switch (field.getType()) { + case FILE: form.insert(field.getName(), file); - } else - { + 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()))); } } - try - { - return new JobId("clustalo", "clustalo", form.submit()); - } catch (FormValidationException e) - { - for (ValidationException ve : e.getErrors()) - { - System.out.format("%s: %s%n", ve.getField().getName(), ve.getMessage()); - } - return null; - } + return new JobId(service.getName(), service.getName(), form.submit()); } @Override - public AlignmentI getAlignmentFor(JobId jobId) + public AlignmentI getAlignmentFor(JobId jobId) throws InvalidArgumentException, ServerError, IOError { List files; try { files = client.getJobResults(jobId.getJobId()); - for (RemoteFile f: files) { + for (RemoteFile f : files) + { if (f.getMimeType().equals("application/clustal")) { return new FormatAdapter().readFile(f.getURL().toString(), DataSourceType.URL, FileFormat.Clustal); } } - } catch (IOException e1) + } catch (IOException e) { - // TODO Auto-generated catch block - e1.printStackTrace(); + throw new IOError(e); } return null; } @Override + public Object getEndpoint() + { + return this; + } + + @Override public void initParamStore(ParamManager userParameterStore) { if (store == null) @@ -176,7 +181,7 @@ public class ClustaloWS extends ServiceWithParameters store = new SlivkaDatastore(service); } catch (IOException e) { - throw new RuntimeException(e); + throw new IOError(e); } } } @@ -192,10 +197,4 @@ public class ClustaloWS extends ServiceWithParameters { return store; } - - @Override - public Object getEndpoint() - { - return this; - } } -- 1.7.10.2