compbio.ws.server
Class MuscleWS

java.lang.Object
  extended by compbio.ws.server.MuscleWS
All Implemented Interfaces:
JABAService, JManagement, Metadata<Muscle>, MsaWS<Muscle>

public class MuscleWS
extends Object
implements MsaWS<Muscle>


Field Summary
 
Fields inherited from interface compbio.data.msa.JABAService
SERVICE_NAMESPACE, V2_SERVICE_NAMESPACE
 
Constructor Summary
MuscleWS()
           
 
Method Summary
 String align(List<FastaSequence> sequences)
          Align a list of sequences with default settings.
 boolean cancelJob(String jobId)
          Stop running the job jobId but leave its output untouched
 String customAlign(List<FastaSequence> sequences, List<Option<Muscle>> options)
          Align a list of sequences with options.
 JobStatus getJobStatus(String jobId)
          Return the status of the job.
 Limit<Muscle> getLimit(String presetName)
          Get a Limit for a preset.
 LimitsManager<Muscle> getLimits()
          List Limits supported by a web service.
 PresetManager<Muscle> getPresets()
          Get presets supported by a web service
 Alignment getResult(String jobId)
          Return the result of the job.
 RunnerConfig<Muscle> getRunnerOptions()
          Get options supported by a web service
 String presetAlign(List<FastaSequence> sequences, Preset<Muscle> preset)
          Align a list of sequences with preset.
 ChunkHolder pullExecStatistics(String jobId, long position)
          Reads 1kb chunk from the statistics file which is specific to a given web service from the position.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MuscleWS

public MuscleWS()
Method Detail

align

public String align(List<FastaSequence> sequences)
             throws JobSubmissionException
Description copied from interface: MsaWS
Align a list of sequences with default settings. Any dataset containing a greater number of sequences or when the average length of the sequences are greater then defined in the default Limit, will not be accepted for an alignment operation and JobSubmissionException will be thrown.

Specified by:
align in interface MsaWS<Muscle>
Parameters:
sequences - List of FastaSequence objects. The programme does not perform any sequence validity checks. Nor does it checks whether the sequences names are unique. It is responsibility of the caller to make sure of this
Returns:
jobId - unique identifier for the job
Throws:
JobSubmissionException - is thrown when the job could not be submitted due to the following reasons: 1) The number of sequences in the submission or their average length is greater then defined by the default Limit. 2) Any problems on the server side e.g. it is misconfigured or malfunction, is reported via this exception. In the first case the information on the limit could be obtained from an exception.
UnsupportedRuntimeException - thrown if server OS does not support native executables for a given web service, e.g. JABAWS is deployed on Windows and Mafft service is called
LimitExceededException - is throw if the input sequences number or their average length exceeds what is defined by the limit

customAlign

public String customAlign(List<FastaSequence> sequences,
                          List<Option<Muscle>> options)
                   throws JobSubmissionException,
                          WrongParameterException
Description copied from interface: MsaWS
Align a list of sequences with options.

Specified by:
customAlign in interface MsaWS<Muscle>
Parameters:
sequences - List of FastaSequence objects. The programme does not perform any sequence validity checks. Nor does it checks whether the sequences names are unique. It is responsibility of the caller to validate this information
options - A list of Options
Returns:
jobId - unique identifier for the job
Throws:
JobSubmissionException - is thrown when the job could not be submitted due to the following reasons: 1) The number of sequences in the submission or their average length is greater then defined by the default Limit. 2) Any problems on the server side e.g. it is misconfigured or malfunction, is reported via this exception. In the first case the information on the limit could be obtained from an exception.
UnsupportedRuntimeException - thrown if server OS does not support native executables for a given web service, e.g. JABAWS is deployed on Windows and Mafft service is called
LimitExceededException - is throw if the input sequences number or their average length exceeds what is defined by the limit
WrongParameterException - is throws when 1) One of the Options provided is not supported, 2) The value of the option is defined outside the boundaries. In both cases exception object contain the information on the violating Option.
See Also:
Default Limit is used to decide whether the calculation will be permitted or denied

presetAlign

public String presetAlign(List<FastaSequence> sequences,
                          Preset<Muscle> preset)
                   throws JobSubmissionException,
                          WrongParameterException
Description copied from interface: MsaWS
Align a list of sequences with preset. Limit for a presetName is used whether the calculation will be permitted or denied. If no Limit was defined for a presetName, than default limit is used.

Specified by:
presetAlign in interface MsaWS<Muscle>
Parameters:
sequences - List of FastaSequence objects. The programme does not perform any sequence validity checks. Nor does it checks whether the sequences names are unique. It is responsibility of the caller to validate this information
preset - A list of Options
Returns:
String - jobId - unique identifier for the job
Throws:
JobSubmissionException - is thrown when the job could not be submitted due to the following reasons: 1) The number of sequences in the submission or their average length is greater then defined by the default Limit. 2) Any problems on the server side e.g. it is misconfigured or malfunction, is reported via this exception. In the first case the information on the limit could be obtained from an exception.
UnsupportedRuntimeException - thrown if server OS does not support native executables for a given web service, e.g. JABAWS is deployed on Windows and Mafft service is called
LimitExceededException - is throw if the input sequences number or average length exceeds what is defined by the limit
WrongParameterException - is throws when 1) One of the Options provided is not supported, 2) The value of the option is defined outside the boundaries. In both cases exception object contain the information on the violating Option.
See Also:
Preset

getResult

public Alignment getResult(String jobId)
                    throws ResultNotAvailableException
Description copied from interface: MsaWS
Return the result of the job. This method waits for the job jobId to complete before return.

Specified by:
getResult in interface MsaWS<Muscle>
Parameters:
jobId - a unique job identifier
Returns:
Alignment
Throws:
ResultNotAvailableException - this exception is throw if the job execution was not successful or the result of the execution could not be found. (e.g. removed). Exception could also be thrown due to the lower level problems on the server i.e. IOException, FileNotFoundException problems as well as UnknownFileFormatException.

getLimit

public Limit<Muscle> getLimit(String presetName)
Description copied from interface: Metadata
Get a Limit for a preset.

Specified by:
getLimit in interface Metadata<Muscle>
Parameters:
presetName - the name of the preset. if no name is provided, then the default preset is returned. If no limit for a particular preset is defined then the default preset is returned
Returns:
Limit

getLimits

public LimitsManager<Muscle> getLimits()
Description copied from interface: Metadata
List Limits supported by a web service.

Specified by:
getLimits in interface Metadata<Muscle>
Returns:
LimitManager

pullExecStatistics

public ChunkHolder pullExecStatistics(String jobId,
                                      long position)
Description copied from interface: JManagement
Reads 1kb chunk from the statistics file which is specific to a given web service from the position. If in time of a request less then 1kb data is available from the position to the end of the file, then it returns all the data available from the position to the end of the file.

Specified by:
pullExecStatistics in interface JManagement
Parameters:
jobId - - unique job identifier
position - - next position within the file to read
Returns:
ChunkHolder - which contains a chunk of data and a next position within the file from which no data has been read
See Also:
ChunkHolder

cancelJob

public boolean cancelJob(String jobId)
Description copied from interface: JManagement
Stop running the job jobId but leave its output untouched

Specified by:
cancelJob in interface JManagement
Returns:
true if job was cancelled successfully, false otherwise

getJobStatus

public JobStatus getJobStatus(String jobId)
Description copied from interface: JManagement
Return the status of the job.

Specified by:
getJobStatus in interface JManagement
Parameters:
jobId - - unique job identifier
Returns:
JobStatus - status of the job
See Also:
JobStatus

getPresets

public PresetManager<Muscle> getPresets()
Description copied from interface: Metadata
Get presets supported by a web service

Specified by:
getPresets in interface Metadata<Muscle>
Returns:
PresetManager the object contains information about presets supported by a web service

getRunnerOptions

public RunnerConfig<Muscle> getRunnerOptions()
Description copied from interface: Metadata
Get options supported by a web service

Specified by:
getRunnerOptions in interface Metadata<Muscle>
Returns:
RunnerConfig the list of options and parameters supported by a web service.