1 package compbio.ws.jpred;
3 import java.io.IOException;
4 import java.util.ArrayList;
7 import javax.jws.WebService;
9 import org.apache.log4j.Logger;
11 import compbio.beans.ProteinBean;
12 import compbio.cassandra.CassandraNativeConnector;
13 import compbio.cassandra.readers.SequenceReader;
14 import compbio.engine.archive.ArchivedJob;
17 * Implementation of the Jpred web service in ProteoCache
19 * @author Alexander Sherstnev
20 * @author Natasha Sherstneva
25 @WebService(endpointInterface = "compbio.ws.jpred.Jpred", targetNamespace = "http://server.proteocache.ws", serviceName = "ProteoCacheWS", portName = "ProteoCacheWSPort")
26 public class JpredWS implements Jpred {
27 private static Logger log = Logger.getLogger(CassandraNativeConnector.class);
30 private List<String> findJobs(String sequence, String program, String version) {
31 CassandraNativeConnector dbconnector = new CassandraNativeConnector();
32 SequenceReader reader = new SequenceReader();
33 reader.setSession(dbconnector.getSession());
34 log.debug("ProteoCacheWS is connected:\n search for sequence: " + sequence + "\ncalculated with " + program + " (version: "
36 List<String> jobs = new ArrayList<String>();
37 List<ProteinBean> result = reader.readProteins(sequence, "whole");
39 for (ProteinBean protein : result) {
40 List<String> thejobs = protein.getJobid();
41 jobid = thejobs.get(0);
42 for (String job : thejobs) {
51 public String findSequence(String sequence, String program, String version) {
52 List<String> jobs = findJobs(sequence, program, version);
54 return jobs.size() + " jobs found";
56 return "no jobs found";
60 public String findJobForSequence(String sequence, String program, String version) {
61 List<String> jobs = findJobs(sequence, program, version);
63 for (String job : jobs) {
65 ArchivedJob aj = new ArchivedJob(job);
67 link = aj.prepareJobArchiveToWeb();
68 } catch (IOException e) {
69 log.error("JpredWS.findSequence: IO exception with job archive file");
70 log.error(e.getLocalizedMessage(), e.getCause());
82 public String getArchive(String jobid) {
84 ArchivedJob aj = new ArchivedJob(jobid);
86 link = aj.prepareJobArchiveToWeb();
87 } catch (IOException e) {
88 log.error("JpredWS.findSequence: IO exception with job archive file");
89 log.error(e.getLocalizedMessage(), e.getCause());
91 // if the archive file is not available null is returned