Bio::Tools::Run::Analysis is a Perl module representing any (remote or local) analysis tool.
SYNOPSIS
# run analysis 'seqret' using a default location and a default
# access method (which means using a Web Service at EBI)
use Bio::Tools::Run::Analysis;
print new Bio::Tools::Run::Analysis (-name => 'edit::seqret')
->wait_for ({ sequence_direct_data => 'tatatacgtatacga',
osformat => 'embl'
})
->result ('outseq');
# run a longer job without waiting for its completion
use Bio::Tools::Run::Analysis;
my $job = new Bio::Tools::Run::Analysis (-name => 'edit::seqret')
->run ({ sequence_direct_data => 'tatatacgtatacga',
osformat => 'embl'
});
# ...and after a while
$job->result ('outseq');
# get all results in the same invocation (as a hash reference
# with result names as keys) - let the module decide which
# results are binary (images in this examples) and save those
# in file (or files); it also shows how to tell that the module
# should read input data from a local file first
use Bio::Tools::Run::Analysis;
my $results =
new Bio::Tools::Run::Analysis (-name => 'alignment_multiple::prettyplot')
->wait_for ( { msf_direct_data => '@/home/testdata/my.seq' } )
->results ('?');
use Data::Dumper;
print Dumper ($results);
# get names, types of all inputs and results,
# get short and detailed (in XML) service description
use Bio::Tools::Run::Analysis;
my $service = new Bio::Tools::Run::Analysis (-name => 'edit::seqret');
my $hash1 = $service->input_spec;
my $hash2 = $service->result_spec;
my $hash3 = $service->analysis_spec;
my $xml = $service->describe;
# get current job status
use Bio::Tools::Run::Analysis;
print new Bio::Tools::Run::Analysis (-name => 'edit::seqret')
->run ( { #...input data...
} )
->status;
# run a job and print its job ID, keep the job un-destroyed
use Bio::Tools::Run::Analysis;
my $job =
new Bio::Tools::Run::Analysis (-name => 'edit::seqret',
-destroy_on_exit => 0)
->run ( { sequence_direct_data => '@/home/testdata/mzef.seq' } );
print $job->id . "n";
# ...it prints (for example):
# edit::seqret/c8ef56:ef535489ac:-7ff4
# ...in another time, on another planet, you may say
use Bio::Tools::Run::Analysis;
my $job =
new Bio::Tools::Run::Analysis::Job (-name => 'edit::seqret',
-id => 'edit::seqret/c8ef56:ef535489ac:-7ff4');
print join ("n",
$job->status,
'Finished: ' . $job->ended (1), # (1) means 'formatted'
'Elapsed time: ' . $job->elapsed,
$job->last_event,
$job->result ('outseq')
);
# ...or you may achieve the same keeping module
# Bio::Tools::Run::Analysis::Job invisible
use Bio::Tools::Run::Analysis;
my $job =
new Bio::Tools::Run::Analysis (-name => 'edit::seqret')
->create_job ('edit::seqret/c8ef56:ef535489ac:-7ff4');
print join ("n",
$job->status,
# ...
);
# ...and later you may free this job resources
$job->remove;
#
# --- See DESCRIPTION for using generator 'applmaker.pl':
#
Product's homepage
Requirements:
· Perl