JWS-113 Commented Jpred entries in the datamodel, runner and webservices java source...
[jabaws.git] / webservices / compbio / ws / server / JpredWS.java
index edf17a1..382ef37 100644 (file)
@@ -1,8 +1,6 @@
 /* Copyright (c) 2011 Peter Troshin\r
- * Copyright (c) 2013 Alexander Sherstnev\r
  *  \r
- *  JAva Bioinformatics Analysis Web Services (JABAWS)\r
- *  @version: 2.5     \r
+ *  JAva Bioinformatics Analysis Web Services (JABAWS) @version: 2.0     \r
  * \r
  *  This library is free software; you can redistribute it and/or modify it under the terms of the\r
  *  Apache License version 2 as published by the Apache Software Foundation\r
  * Any republication or derived work distributed in source code form\r
  * must include this copyright and license notice.\r
  */\r
-package compbio.ws.server;\r
 \r
-import java.io.File;\r
-import java.util.List;\r
-\r
-import javax.jws.WebService;\r
-\r
-import org.apache.log4j.Logger;\r
-\r
-import compbio.data.msa.JABAService;\r
-import compbio.data.msa.SequenceAnnotation;\r
-import compbio.data.sequence.FastaSequence;\r
-import compbio.engine.Configurator;\r
-import compbio.engine.client.ConfiguredExecutable;\r
-import compbio.metadata.ChunkHolder;\r
-import compbio.metadata.JobSubmissionException;\r
-import compbio.metadata.LimitExceededException;\r
-import compbio.metadata.Option;\r
-import compbio.metadata.Preset;\r
-import compbio.metadata.UnsupportedRuntimeException;\r
-import compbio.metadata.WrongParameterException;\r
-import compbio.runner.predictors.Jpred;\r
-\r
-@WebService(endpointInterface = "compbio.data.msa.SequenceAnnotation", targetNamespace = JABAService.V3_SERVICE_NAMESPACE, serviceName = "JpredWS")\r
-public class JpredWS extends SequenceAnnotationService<Jpred>\r
-               implements SequenceAnnotation<Jpred> {\r
-\r
-       private static Logger log = Logger.getLogger(JpredWS.class);\r
-\r
-       public JpredWS() {\r
-               super(new Jpred(), log);\r
-       }\r
-\r
-       @Override\r
-       public String analize(List<FastaSequence> sequences)\r
-                       throws UnsupportedRuntimeException, LimitExceededException, JobSubmissionException {\r
-               WSUtil.validateJpredInput(sequences);\r
-               ConfiguredExecutable<Jpred> confpred = init(sequences);\r
-\r
-               // set default conservation method to fastest - SHENKIN\r
-               // TODO: This violates encapsulation, should be moved to the runners\r
-               // level.\r
-               //confpred.addParameters(Arrays.asList("-m=SHENKIN"));\r
-               return WSUtil.analize(sequences, confpred, log, "JpredWS analize", getLimit(""));\r
-       }\r
-\r
-       @Override\r
-       public String customAnalize(List<FastaSequence> sequences, List<Option<Jpred>> options) \r
-                                       throws UnsupportedRuntimeException, LimitExceededException, JobSubmissionException, WrongParameterException {\r
-               WSUtil.validateJpredInput(sequences);\r
-               return super.customAnalize(sequences, options);\r
-       }\r
-\r
-       @Override\r
-       public String presetAnalize(List<FastaSequence> sequences, Preset<Jpred> preset)\r
-                       throws UnsupportedRuntimeException, LimitExceededException, JobSubmissionException, WrongParameterException {\r
-               WSUtil.validateJpredInput(sequences);\r
-               return super.presetAnalize(sequences, preset);\r
-       }\r
-\r
-       @Override\r
-       public ChunkHolder pullExecStatistics(String jobId, long position) {\r
-               WSUtil.validateJobId(jobId);\r
-               String file = Configurator.getWorkDirectory(jobId) + File.separator + Jpred.getStatFile();\r
-               return WSUtil.pullFile(file, position);\r
-       }\r
-\r
-}\r
+//package compbio.ws.server;\r
+//\r
+//import java.io.File;\r
+//import java.util.List;\r
+//\r
+//import javax.jws.WebService;\r
+//\r
+//import org.apache.log4j.Logger;\r
+//\r
+//import compbio.data.msa.JABAService;\r
+//import compbio.data.msa.MsaWS;\r
+//import compbio.data.sequence.Alignment;\r
+//import compbio.data.sequence.JpredAlignment;\r
+//import compbio.data.sequence.FastaSequence;\r
+//import compbio.engine.AsyncExecutor;\r
+//import compbio.engine.Configurator;\r
+//import compbio.engine.client.ConfiguredExecutable;\r
+//import compbio.engine.client.Executable;\r
+//import compbio.engine.client.SkeletalExecutable;\r
+//import compbio.engine.client.EngineUtil;\r
+//import compbio.metadata.ChunkHolder;\r
+//import compbio.metadata.JobStatus;\r
+//import compbio.metadata.JobSubmissionException;\r
+//import compbio.metadata.Limit;\r
+//import compbio.metadata.LimitsManager;\r
+//import compbio.metadata.Option;\r
+//import compbio.metadata.Preset;\r
+//import compbio.metadata.PresetManager;\r
+//import compbio.metadata.ResultNotAvailableException;\r
+//import compbio.metadata.RunnerConfig;\r
+//import compbio.metadata.WrongParameterException;\r
+//import compbio.runner.RunnerUtil;\r
+//import compbio.runner.predictors.Jpred;\r
+//\r
+//@WebService(endpointInterface = "compbio.data.msa.MsaWS", targetNamespace = JABAService.V2_SERVICE_NAMESPACE, serviceName = "JpredWS")\r
+//public class JpredWS implements MsaWS<Jpred> {\r
+//\r
+//     private static Logger log = Logger.getLogger(JpredWS.class);\r
+//\r
+//     private static final RunnerConfig<Jpred> jpredOptions = RunnerUtil.getSupportedOptions(Jpred.class);\r
+//     private static final PresetManager<Jpred> jpredPresets = RunnerUtil.getPresets(Jpred.class);\r
+//     private static final LimitsManager<Jpred> limitMan = EngineUtil.getLimits(new Jpred().getType());\r
+//\r
+//     @Override\r
+//     public String align(List<FastaSequence> sequences)\r
+//                     throws JobSubmissionException {\r
+//             WSUtil.validateFastaInput(sequences);\r
+//             ConfiguredExecutable<Jpred> confClust = init(sequences);\r
+//             return WSUtil.align(sequences, confClust, log, "align", getLimit(""));\r
+//     }\r
+//\r
+//     ConfiguredExecutable<Jpred> init(List<FastaSequence> dataSet)\r
+//                     throws JobSubmissionException {\r
+//             Jpred jpred = new Jpred();\r
+//             jpred.setInput(SkeletalExecutable.INPUT);\r
+//             jpred.setOutput(SkeletalExecutable.OUTPUT);\r
+//             jpred.setError(SkeletalExecutable.ERROR);\r
+//             ConfiguredExecutable<Jpred> confJpred = Configurator.configureExecutable(jpred, dataSet);\r
+//             // Set the number of threads for the cluster execution from conf file\r
+//             if (confJpred.getExecProvider() == Executable.ExecProvider.Cluster) {\r
+//                     int clusterCpuNum = SkeletalExecutable.getClusterCpuNum(jpred.getType());\r
+//                     if (clusterCpuNum != 0) {\r
+//                             jpred.setNCore(clusterCpuNum);\r
+//                     }\r
+//             }\r
+//             return confJpred;\r
+//     }\r
+//\r
+//     @Override\r
+//     public String presetAlign(List<FastaSequence> sequences,\r
+//                     Preset<Jpred> preset) throws JobSubmissionException,\r
+//                     WrongParameterException {\r
+//             WSUtil.validateFastaInput(sequences);\r
+//             if (preset == null) {\r
+//                     throw new WrongParameterException("Preset must be provided!");\r
+//             }\r
+//             Limit<Jpred> limit = getLimit(preset.getName());\r
+//             ConfiguredExecutable<Jpred> confClust = init(sequences);\r
+//             confClust.addParameters(preset.getOptions());\r
+//             return WSUtil.align(sequences, confClust, log, "presetAlign", limit);\r
+//     }\r
+//\r
+//     @Override\r
+//     public String customAlign(List<FastaSequence> sequences,\r
+//                     List<Option<Jpred>> options) throws JobSubmissionException,\r
+//                     WrongParameterException {\r
+//             WSUtil.validateFastaInput(sequences);\r
+//             ConfiguredExecutable<Jpred> confClust = init(sequences);\r
+//             List<String> params = WSUtil.getCommands(options, Jpred.KEY_VALUE_SEPARATOR);\r
+//             confClust.addParameters(params);\r
+//             log.info("Setting parameters: " + params);\r
+//             return WSUtil.align(sequences, confClust, log, "customAlign", getLimit(""));\r
+//     }\r
+//\r
+//     @Override\r
+//     public RunnerConfig<Jpred> getRunnerOptions() {\r
+//             return jpredOptions;\r
+//     }\r
+//\r
+//     @SuppressWarnings("unchecked")\r
+//     @Override\r
+//     public Alignment getResult(String jobId) throws ResultNotAvailableException {\r
+//             WSUtil.validateJobId(jobId);\r
+//             AsyncExecutor asyncEngine = Configurator.getAsyncEngine(jobId);\r
+//             ConfiguredExecutable<Jpred> jpred = (ConfiguredExecutable<Jpred>) asyncEngine.getResults(jobId);\r
+//             return (Alignment)jpred.getResults();\r
+//     }\r
+//\r
+//     @Override\r
+//     public Limit<Jpred> getLimit(String presetName) {\r
+//             if (limitMan == null) {\r
+//                     // No limit is configured\r
+//                     return null;\r
+//             }\r
+//             Limit<Jpred> limit = limitMan.getLimitByName(presetName);\r
+//             return limit;\r
+//     }\r
+//\r
+//     @Override\r
+//     public LimitsManager<Jpred> getLimits() {\r
+//             return limitMan;\r
+//     }\r
+//\r
+//     @Override\r
+//     public boolean cancelJob(String jobId) {\r
+//             WSUtil.validateJobId(jobId);\r
+//             boolean result = WSUtil.cancelJob(jobId);\r
+//             return result;\r
+//     }\r
+//\r
+//     @Override\r
+//     public JobStatus getJobStatus(String jobId) {\r
+//             WSUtil.validateJobId(jobId);\r
+//             JobStatus status = WSUtil.getJobStatus(jobId);\r
+//             return status;\r
+//     }\r
+//\r
+//     @Override\r
+//     public PresetManager<Jpred> getPresets() {\r
+//             return jpredPresets;\r
+//     }\r
+//\r
+//     @Override\r
+//     public ChunkHolder pullExecStatistics(String jobId, long position) {\r
+//             WSUtil.validateJobId(jobId);\r
+//             String file = Configurator.getWorkDirectory(jobId) + File.separator + Jpred.getStatFile();\r
+//             ChunkHolder cholder = WSUtil.pullFile(file, position);\r
+//             return cholder;\r
+//     }\r
+//\r
+//}\r