Bio AnalysisI
Other packages in the module: Bio::AnalysisI
SummaryIncluded librariesPackage variablesSynopsisDescriptionGeneral documentationMethods
Toolbar
WebCvs
Summary
Bio::AnalysisI - An interface to any (local or remote) analysis tool
Package variables
No package variables defined.
Inherit
Bio::Root::RootI
Synopsis
This is an interface module - you do not instantiate it.
Use Bio::Tools::Run::Analysis module:
  use Bio::Tools::Run::Analysis;
my $tool = Bio::Tools::Run::Analysis->new(@args);
Description
This interface contains all public methods for accessing and
controlling local and remote analysis tools. It is meant to be used on
the client side.
Methods
analysis_nameDescriptionCode
analysis_specDescriptionCode
describeDescriptionCode
input_specDescriptionCode
result_specDescriptionCode
create_jobDescriptionCode
runDescriptionCode
wait_forDescriptionCode
Methods description
analysis_namecode    nextTop
 Usage   : $tool->analysis_name;
Returns : a name of this analysis
Args : none
analysis_speccodeprevnextTop
 Usage   : $tool->analysis_spec;
Returns : a hash reference describing this analysis
Args : none
The returned hash reference uses the following keys (not all of them always
present, perhaps others present as well): name, type, version,
supplier, installation, description.
Here is an example output:
  Analysis 'edit.seqret':
installation => EMBL-EBI
description => Reads and writes (returns) sequences
supplier => EMBOSS
version => 2.6.0
type => edit
name => seqret
describecodeprevnextTop
 Usage   : $tool->analysis_spec;
Returns : an XML detailed description of this analysis
Args : none
The returned XML string contains metadata describing this analysis
service. It includes also metadata returned (and easier used) by
method analysis_spec, input_spec and result_spec.
The DTD used for returned metadata is based on the adopted standard
(BSA specification for analysis engine):
  <!ELEMENT DsLSRAnalysis (analysis)+>
But the DTD may be extended by provider-specific metadata. For
example, the EBI experimental SOAP-based service on top of EMBOSS uses
DTD explained at http://www.ebi.ac.uk/~senger/applab.
input_speccodeprevnextTop
 Usage   : $tool->input_spec;
Returns : an array reference with hashes as elements
Args : none
The analysis input data are named, and can be also associated with a
default value, with allowed values and with few other attributes. The
names are important for feeding the service with the input data (the
inputs are given to methods create_job, Bio::AnalysisI|run, and/or
Bio::AnalysisI|wait_for as name/value pairs).
Here is a (slightly shortened) example of an input specification:
 $input_spec = [
{
'mandatory' => 'false',
'type' => 'String',
'name' => 'sequence_usa'
},
{
'mandatory' => 'false',
'type' => 'String',
'name' => 'sequence_direct_data'
},
{
'mandatory' => 'false',
'allowed_values' => [
'gcg',
'gcg8',
...
'raw'
],
'type' => 'String',
'name' => 'sformat'
},
{
'mandatory' => 'false',
'type' => 'String',
'name' => 'sbegin'
},
{
'mandatory' => 'false',
'type' => 'String',
'name' => 'send'
},
{
'mandatory' => 'false',
'type' => 'String',
'name' => 'sprotein'
},
{
'mandatory' => 'false',
'type' => 'String',
'name' => 'snucleotide'
},
{
'mandatory' => 'false',
'type' => 'String',
'name' => 'sreverse'
},
{
'mandatory' => 'false',
'type' => 'String',
'name' => 'slower'
},
{
'mandatory' => 'false',
'type' => 'String',
'name' => 'supper'
},
{
'mandatory' => 'false',
'default' => 'false',
'type' => 'String',
'name' => 'firstonly'
},
{
'mandatory' => 'false',
'default' => 'fasta',
'allowed_values' => [
'gcg',
'gcg8',
'embl',
...
'raw'
],
'type' => 'String',
'name' => 'osformat'
}
];
result_speccodeprevnextTop
 Usage   : $tool->result_spec;
Returns : a hash reference with result names as keys
and result types as values
Args : none
The analysis results are named and can be retrieved using their names
by methods results and result.
Here is an example of the result specification (again for the service
edit.seqret):
  $result_spec = {
'outseq' => 'String',
'report' => 'String',
'detailed_status' => 'String'
};
create_jobcodeprevnextTop
 Usage   : $tool->create_job ( {'sequence'=>'tatat'} )
Returns : Bio::Tools::Run::Analysis::Job
Args : data and parameters for this execution
(in various formats)
Create an object representing a single execution of this analysis
tool.
Call this method if you wish to "stage the scene" - to create a job
with all input data but without actually running it. This method is
called automatically from other methods (Bio::AnalysisI|run and
Bio::AnalysisI|wait_for) so usually you do not need to call it directly.
The input data and prameters for this execution can be specified in
various ways:
    array reference
    The array has scalar elements of the form
   name = [[@]value]
    where name is the name of an input data or input parameter (see
method input_spec for finding what names are recognized by this
analysis) and value is a value for this data/parameter. If value
is missing a 1 is assumed (which is convenient for the boolean
options). If value starts with @ it is treated as a local
filename, and its contents is used as the data/parameter value.
    hash reference
    The same as with the array reference but now there is no need to use
an equal sign. The hash keys are input names and hash values their
data. The values can again start with a @ sign indicating a local
filename.
    scalar
    In this case, the parameter represents a job ID obtained in some
previous invocation - such job already exists on the server side, and
we are just re-creating it here using the same job ID.
TBD: here we should allow the same by using a reference to the
Bio::Tools::Run::Analysis::Job object.

    undef
    Finally, if the parameter is undefined, ask server to create an empty
job. The input data may be added later using set_data...
method(s) - see scripts/papplmaker.PLS for details.
runcodeprevnextTop
 Usage   : $tool->run ( ['sequence=@my.seq', 'osformat=embl'] )
Returns : Bio::Tools::Run::Analysis::Job,
representing started job (an execution)
Args : the same as for create_job
Create a job and start it, but do not wait for its completion.
wait_forcodeprevnextTop
 Usage   : $tool->wait_for ( { 'sequence' => '@my,file' } )
Returns : Bio::Tools::Run::Analysis::Job,
representing finished job
Args : the same as for create_job
Create a job, start it and wait for its completion.
Note that this is a blocking method. It returns only after the
executed job finishes, either normally or by an error.
Usually, after this call, you ask for results of the finished job:
    $analysis->wait_for (...)->results;
Methods code
analysis_namedescriptionprevnextTop
sub analysis_name {
 shift->throw_not_implemented();
}
analysis_specdescriptionprevnextTop
sub analysis_spec {
 shift->throw_not_implemented();
}
describedescriptionprevnextTop
sub describe {
 shift->throw_not_implemented();
}
input_specdescriptionprevnextTop
sub input_spec {
 shift->throw_not_implemented();
}
result_specdescriptionprevnextTop
sub result_spec {
 shift->throw_not_implemented();
}
create_jobdescriptionprevnextTop
sub create_job {
 shift->throw_not_implemented();
}
rundescriptionprevnextTop
sub run {
 shift->throw_not_implemented();
}
wait_fordescriptionprevnextTop
sub wait_for {
 shift->throw_not_implemented();
}
General documentation
FEEDBACKTop
Mailing ListsTop
User feedback is an integral part of the evolution of this and other
Bioperl modules. Send your comments and suggestions preferably to
the Bioperl mailing list. Your participation is much appreciated.
  bioperl-l@bioperl.org                  - General discussion
http://bioperl.org/wiki/Mailing_lists - About the mailing lists
Support Top
Please direct usage questions or support issues to the mailing list:
bioperl-l@bioperl.org
rather than to the module maintainer directly. Many experienced and
reponsive experts will be able look at the problem and quickly
address it. Please include a thorough description of the problem
with code and data examples if at all possible.
Reporting BugsTop
Report bugs to the Bioperl bug tracking system to help us keep track
of the bugs and their resolution. Bug reports can be submitted via the
web:
  https://redmine.open-bio.org/projects/bioperl/
AUTHORTop
Martin Senger (martin.senger@gmail.com)
COPYRIGHTTop
Copyright (c) 2003, Martin Senger and EMBL-EBI.
All Rights Reserved.
This module is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
DISCLAIMERTop
This software is provided "as is" without warranty of any kind.
SEE ALSOTop
http://www.ebi.ac.uk/Tools/webservices/soaplab/guide
APPENDIXTop
This is actually the main documentation...
If you try to call any of these methods directly on this
Bio::AnalysisI object you will get a not implemented error
message. You need to call them on a Bio::Tools::Run::Analysis object instead.