JWS-113 Commented Jpred entries in the datamodel, runner and webservices java source...
[jabaws.git] / webservices / compbio / ws / server / JpredWS.java
1 /* Copyright (c) 2011 Peter Troshin\r
2  *  \r
3  *  JAva Bioinformatics Analysis Web Services (JABAWS) @version: 2.0     \r
4  * \r
5  *  This library is free software; you can redistribute it and/or modify it under the terms of the\r
6  *  Apache License version 2 as published by the Apache Software Foundation\r
7  * \r
8  *  This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without\r
9  *  even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Apache \r
10  *  License for more details.\r
11  * \r
12  *  A copy of the license is in apache_license.txt. It is also available here:\r
13  * @see: http://www.apache.org/licenses/LICENSE-2.0.txt\r
14  * \r
15  * Any republication or derived work distributed in source code form\r
16  * must include this copyright and license notice.\r
17  */\r
18 \r
19 //package compbio.ws.server;\r
20 //\r
21 //import java.io.File;\r
22 //import java.util.List;\r
23 //\r
24 //import javax.jws.WebService;\r
25 //\r
26 //import org.apache.log4j.Logger;\r
27 //\r
28 //import compbio.data.msa.JABAService;\r
29 //import compbio.data.msa.MsaWS;\r
30 //import compbio.data.sequence.Alignment;\r
31 //import compbio.data.sequence.JpredAlignment;\r
32 //import compbio.data.sequence.FastaSequence;\r
33 //import compbio.engine.AsyncExecutor;\r
34 //import compbio.engine.Configurator;\r
35 //import compbio.engine.client.ConfiguredExecutable;\r
36 //import compbio.engine.client.Executable;\r
37 //import compbio.engine.client.SkeletalExecutable;\r
38 //import compbio.engine.client.EngineUtil;\r
39 //import compbio.metadata.ChunkHolder;\r
40 //import compbio.metadata.JobStatus;\r
41 //import compbio.metadata.JobSubmissionException;\r
42 //import compbio.metadata.Limit;\r
43 //import compbio.metadata.LimitsManager;\r
44 //import compbio.metadata.Option;\r
45 //import compbio.metadata.Preset;\r
46 //import compbio.metadata.PresetManager;\r
47 //import compbio.metadata.ResultNotAvailableException;\r
48 //import compbio.metadata.RunnerConfig;\r
49 //import compbio.metadata.WrongParameterException;\r
50 //import compbio.runner.RunnerUtil;\r
51 //import compbio.runner.predictors.Jpred;\r
52 //\r
53 //@WebService(endpointInterface = "compbio.data.msa.MsaWS", targetNamespace = JABAService.V2_SERVICE_NAMESPACE, serviceName = "JpredWS")\r
54 //public class JpredWS implements MsaWS<Jpred> {\r
55 //\r
56 //      private static Logger log = Logger.getLogger(JpredWS.class);\r
57 //\r
58 //      private static final RunnerConfig<Jpred> jpredOptions = RunnerUtil.getSupportedOptions(Jpred.class);\r
59 //      private static final PresetManager<Jpred> jpredPresets = RunnerUtil.getPresets(Jpred.class);\r
60 //      private static final LimitsManager<Jpred> limitMan = EngineUtil.getLimits(new Jpred().getType());\r
61 //\r
62 //      @Override\r
63 //      public String align(List<FastaSequence> sequences)\r
64 //                      throws JobSubmissionException {\r
65 //              WSUtil.validateFastaInput(sequences);\r
66 //              ConfiguredExecutable<Jpred> confClust = init(sequences);\r
67 //              return WSUtil.align(sequences, confClust, log, "align", getLimit(""));\r
68 //      }\r
69 //\r
70 //      ConfiguredExecutable<Jpred> init(List<FastaSequence> dataSet)\r
71 //                      throws JobSubmissionException {\r
72 //              Jpred jpred = new Jpred();\r
73 //              jpred.setInput(SkeletalExecutable.INPUT);\r
74 //              jpred.setOutput(SkeletalExecutable.OUTPUT);\r
75 //              jpred.setError(SkeletalExecutable.ERROR);\r
76 //              ConfiguredExecutable<Jpred> confJpred = Configurator.configureExecutable(jpred, dataSet);\r
77 //              // Set the number of threads for the cluster execution from conf file\r
78 //              if (confJpred.getExecProvider() == Executable.ExecProvider.Cluster) {\r
79 //                      int clusterCpuNum = SkeletalExecutable.getClusterCpuNum(jpred.getType());\r
80 //                      if (clusterCpuNum != 0) {\r
81 //                              jpred.setNCore(clusterCpuNum);\r
82 //                      }\r
83 //              }\r
84 //              return confJpred;\r
85 //      }\r
86 //\r
87 //      @Override\r
88 //      public String presetAlign(List<FastaSequence> sequences,\r
89 //                      Preset<Jpred> preset) throws JobSubmissionException,\r
90 //                      WrongParameterException {\r
91 //              WSUtil.validateFastaInput(sequences);\r
92 //              if (preset == null) {\r
93 //                      throw new WrongParameterException("Preset must be provided!");\r
94 //              }\r
95 //              Limit<Jpred> limit = getLimit(preset.getName());\r
96 //              ConfiguredExecutable<Jpred> confClust = init(sequences);\r
97 //              confClust.addParameters(preset.getOptions());\r
98 //              return WSUtil.align(sequences, confClust, log, "presetAlign", limit);\r
99 //      }\r
100 //\r
101 //      @Override\r
102 //      public String customAlign(List<FastaSequence> sequences,\r
103 //                      List<Option<Jpred>> options) throws JobSubmissionException,\r
104 //                      WrongParameterException {\r
105 //              WSUtil.validateFastaInput(sequences);\r
106 //              ConfiguredExecutable<Jpred> confClust = init(sequences);\r
107 //              List<String> params = WSUtil.getCommands(options, Jpred.KEY_VALUE_SEPARATOR);\r
108 //              confClust.addParameters(params);\r
109 //              log.info("Setting parameters: " + params);\r
110 //              return WSUtil.align(sequences, confClust, log, "customAlign", getLimit(""));\r
111 //      }\r
112 //\r
113 //      @Override\r
114 //      public RunnerConfig<Jpred> getRunnerOptions() {\r
115 //              return jpredOptions;\r
116 //      }\r
117 //\r
118 //      @SuppressWarnings("unchecked")\r
119 //      @Override\r
120 //      public Alignment getResult(String jobId) throws ResultNotAvailableException {\r
121 //              WSUtil.validateJobId(jobId);\r
122 //              AsyncExecutor asyncEngine = Configurator.getAsyncEngine(jobId);\r
123 //              ConfiguredExecutable<Jpred> jpred = (ConfiguredExecutable<Jpred>) asyncEngine.getResults(jobId);\r
124 //              return (Alignment)jpred.getResults();\r
125 //      }\r
126 //\r
127 //      @Override\r
128 //      public Limit<Jpred> getLimit(String presetName) {\r
129 //              if (limitMan == null) {\r
130 //                      // No limit is configured\r
131 //                      return null;\r
132 //              }\r
133 //              Limit<Jpred> limit = limitMan.getLimitByName(presetName);\r
134 //              return limit;\r
135 //      }\r
136 //\r
137 //      @Override\r
138 //      public LimitsManager<Jpred> getLimits() {\r
139 //              return limitMan;\r
140 //      }\r
141 //\r
142 //      @Override\r
143 //      public boolean cancelJob(String jobId) {\r
144 //              WSUtil.validateJobId(jobId);\r
145 //              boolean result = WSUtil.cancelJob(jobId);\r
146 //              return result;\r
147 //      }\r
148 //\r
149 //      @Override\r
150 //      public JobStatus getJobStatus(String jobId) {\r
151 //              WSUtil.validateJobId(jobId);\r
152 //              JobStatus status = WSUtil.getJobStatus(jobId);\r
153 //              return status;\r
154 //      }\r
155 //\r
156 //      @Override\r
157 //      public PresetManager<Jpred> getPresets() {\r
158 //              return jpredPresets;\r
159 //      }\r
160 //\r
161 //      @Override\r
162 //      public ChunkHolder pullExecStatistics(String jobId, long position) {\r
163 //              WSUtil.validateJobId(jobId);\r
164 //              String file = Configurator.getWorkDirectory(jobId) + File.separator + Jpred.getStatFile();\r
165 //              ChunkHolder cholder = WSUtil.pullFile(file, position);\r
166 //              return cholder;\r
167 //      }\r
168 //\r
169 //}\r