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