1 package jalview.ws2.client.jpred4;
3 import java.io.IOException;
4 import java.net.MalformedURLException;
6 import java.util.Collections;
9 import jalview.ws.params.ArgumentI;
10 import jalview.ws.params.ParamManager;
11 import jalview.ws2.actions.secstructpred.SecStructPredAction;
12 import jalview.ws2.api.WebService;
13 import jalview.ws2.client.api.AbstractWebServiceDiscoverer;
14 import jalview.ws2.client.ebi.JobDispatcherWSDiscoverer;
15 import jalview.ws2.params.SimpleParamDatastore;
16 import uk.ac.dundee.compbio.jpred.JPredClient;
18 public class JPred4WSDiscoverer extends AbstractWebServiceDiscoverer
20 private static final URL DEFAULT_URL;
25 DEFAULT_URL = new URL("https://www.compbio.dundee.ac.uk/jpred4/");
26 } catch (MalformedURLException e)
28 throw new ExceptionInInitializerError(e);
32 private static JPred4WSDiscoverer instance = null;
34 private static ParamManager paramManager = null;
36 private JPred4WSDiscoverer()
40 public static JPred4WSDiscoverer getInstance()
43 instance = new JPred4WSDiscoverer();
47 public String getName()
52 public static void setParamManager(ParamManager manager)
54 paramManager = manager;
58 public int getStatusForUrl(URL url)
60 // TODO: implement actual status check
65 public String getUrlsPropertyKey()
71 protected URL getDefaultUrl()
77 protected List<WebService<?>> fetchServices(URL url) throws IOException
79 JPredClient client = new JPredClient(url);
80 var wsBuilder = WebService.<SecStructPredAction> newBuilder();
82 wsBuilder.clientName("jpred4");
83 wsBuilder.category("Secondary structure prediction");
84 wsBuilder.name("jpred4");
85 wsBuilder.description("JPred4 Secondary Structure Prediction.");
86 wsBuilder.interactive(false);
89 .paramDatastore(new SimpleParamDatastore(url, Collections.emptyList(),
90 Collections.emptyList(), paramManager));
91 wsBuilder.actionClass(SecStructPredAction.class);
92 var webService = wsBuilder.build();
94 var actionBuilder = SecStructPredAction.newBuilder(
95 new JPred4WSClient(client, false));
96 actionBuilder.webService(webService);
97 actionBuilder.msaMode(false);
98 actionBuilder.name("JPred4 (Single sequence)");
99 webService.addAction(actionBuilder.build());
101 var actionBuilderMsa = SecStructPredAction.newBuilder(
102 new JPred4WSClient(client, true));
103 actionBuilderMsa.webService(webService);
104 actionBuilderMsa.msaMode(true);
105 actionBuilderMsa.name("JPred4 (MSA)");
106 webService.addAction(actionBuilderMsa.build());
108 return List.of(webService);