X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=webservices%2Fcompbio%2Fws%2Fserver%2FRNAalifoldWS.java;h=91081c45f8bdc1dd1d6cf233a12322f7da04e86a;hb=c84ec6492607920b938cfa3645e1a92e15727dd1;hp=f838b16013f8a2ec28ea21d2bea4079588e7d141;hpb=fa61eaad52ffe5ee0db449c3dd9ec5fa67aec43f;p=jabaws.git diff --git a/webservices/compbio/ws/server/RNAalifoldWS.java b/webservices/compbio/ws/server/RNAalifoldWS.java index f838b16..91081c4 100644 --- a/webservices/compbio/ws/server/RNAalifoldWS.java +++ b/webservices/compbio/ws/server/RNAalifoldWS.java @@ -1,166 +1,77 @@ -package compbio.ws.server; - -import java.io.File; -import java.util.List; - -import javax.jws.WebParam; -import javax.jws.WebService; - -import org.apache.log4j.Logger; - -import compbio.data.msa.FoldWS; -import compbio.data.msa.JABAService; -import compbio.data.msa.JManagement; -import compbio.data.msa.Metadata; -import compbio.data.sequence.Alignment; -import compbio.data.sequence.RNAstruct; -import compbio.data.sequence.FastaSequence; -import compbio.engine.AsyncExecutor; -import compbio.engine.Configurator; -import compbio.engine.client.ConfiguredExecutable; -import compbio.engine.client.SkeletalExecutable; -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.Util; -import compbio.runner.structure.RNAalifold; - -@WebService(endpointInterface = "compbio.data.msa.FoldWS", targetNamespace = JABAService.SERVICE_NAMESPACE, serviceName = "RNAalifoldWS") -public class RNAalifoldWS implements FoldWS { - - private static Logger log = Logger.getLogger(ClustalWS.class); - - private static final RunnerConfig rnaalifoldOptions = Util. - getSupportedOptions(RNAalifold.class); - - private static final PresetManager rnaalifoldPresets = Util - .getPresets(RNAalifold.class); - - private static final LimitsManager limitMan = compbio.engine.client.Util - .getLimits(new RNAalifold().getType()); - - - @Override - public String fold(Alignment alignment) - throws JobSubmissionException { - - // Validate clustal input here? - ConfiguredExecutable confRNAalifold = init(alignment); - return WSUtil.fold(alignment, confRNAalifold, log, "fold", getLimit("")); - } - - - ConfiguredExecutable init(Alignment dataset) throws JobSubmissionException { - RNAalifold rnaalifold = new RNAalifold(); - rnaalifold.setInput(SkeletalExecutable.INPUT) - .setOutput(SkeletalExecutable.OUTPUT) - .setError(SkeletalExecutable.ERROR); - ConfiguredExecutable confRNAalifold = Configurator - .configureExecutable(rnaalifold, dataset.getSequences()); - return confRNAalifold; - } - - @Override - public String presetFold(Alignment alignment, - Preset preset) throws JobSubmissionException, - WrongParameterException { - // validate - if (preset == null) { - throw new WrongParameterException("Preset must be Provided!"); - } - Limit limit = getLimit(preset.getName()); - ConfiguredExecutable confRNAalifold = init(alignment); - confRNAalifold.addParameters(preset.getOptions()); - return WSUtil.fold(alignment, confRNAalifold, log, "presetFold", limit); - } - - @Override - public String customFold(Alignment alignment, - List> options) throws JobSubmissionException, - WrongParameterException { - // validate - ConfiguredExecutable confRNAalifold = init(alignment); - List params = WSUtil.getCommands(options, - RNAalifold.KEY_VALUE_SEPARATOR); - confRNAalifold.addParameters(params); - log.info("Setting parameters: " + params); - return WSUtil.fold(alignment, confRNAalifold, log, "customFold", - getLimit("")); - } - - @Override - public RunnerConfig getRunnerOptions() { - return rnaalifoldOptions; - } - - @SuppressWarnings("unchecked") - public RNAstruct getResult(String jobId) throws ResultNotAvailableException { - - WSUtil.validateJobId(jobId); - AsyncExecutor asyncEngine = Configurator.getAsyncEngine(jobId); - ConfiguredExecutable rnaalifold = (ConfiguredExecutable) asyncEngine - .getResults(jobId); - return rnaalifold.getResults(); - } - - @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 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 - // PlaceHolder - public PresetManager getPresets() { - if (rnaalifoldPresets == null) { - // No presets are configured - return null; - } - return rnaalifoldPresets; - } - - @Override - // PlaceHolder - public ChunkHolder pullExecStatistics(String jobId, long position) { - -// WSUtil.validateJobId(jobId); -// String file = Configurator.getWorkDirectory(jobId) + File.separator -// + RNAalifold.getStatFile(); -// ChunkHolder cholder = WSUtil.pullFile(file, position); -// return cholder; - return new ChunkHolder("", -1); - } -} - - +package compbio.ws.server; + +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.client.ConfiguredExecutable; +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.conservation.AACon; +import compbio.runner.structure.RNAalifold; + +@WebService(endpointInterface = "compbio.data.msa.SequenceAnnotation", targetNamespace = JABAService.V2_SERVICE_NAMESPACE, serviceName = "RNAalifoldWS") +public class RNAalifoldWS extends SequenceAnnotationService + implements + SequenceAnnotation { + + private static Logger log = Logger.getLogger(RNAalifoldWS.class); + + public RNAalifoldWS() { + super (new RNAalifold(), log); + } + + // Only purpose is to replace "analize" with "fold" method + // so that a clustal input file and not fasta will be generated + @Override + public String analize(List sequences) + throws UnsupportedRuntimeException, LimitExceededException, + JobSubmissionException { + WSUtil.validateFastaInput(sequences); + ConfiguredExecutable confRNAalifold = init(sequences); + return WSUtil.fold(sequences, confRNAalifold, log, "analize", + getLimit("")); + } + + // Only purpose is to replace "analize" with "fold" method + // so that a clustal input file and not fasta will be generated + @Override + public String customAnalize(List sequences, + List> options) throws UnsupportedRuntimeException, + LimitExceededException, JobSubmissionException, + WrongParameterException { + WSUtil.validateFastaInput(sequences); + ConfiguredExecutable confRNAalifold = init(sequences); + + List params = WSUtil.getCommands(options, + AACon.KEY_VALUE_SEPARATOR); + confRNAalifold.addParameters(params); + return WSUtil.fold(sequences, confRNAalifold, log, "customAnalize", + getLimit("")); + } + + + /* + * No presets are supported, thus the result of this call will be as simple + * call to analize without parameters + */ + @Override + public String presetAnalize(List sequences, + Preset preset) throws UnsupportedRuntimeException, + LimitExceededException, JobSubmissionException, + WrongParameterException { + + return analize(sequences); + } +} + +