Raw content of Bio::EnsEMBL::Analysis::RunnableDB::Genscan
# Ensembl module for Bio::EnsEMBL::Analysis::RunnableDB::Genscan
#
# Copyright (c) 2004 Ensembl
#
=head1 NAME
=head1 SYNOPSIS
my $runnabledb = Bio::EnsEMBL::Analysis::RunnableDB::Genscan->
new(
-input_id => 'contig::AL805961.22.1.166258:1:166258:1',
-db => $db,
-analysis => $analysis,
);
$runnabledb->fetch_input;
$runnabledb->run;
$runnabledb->write_output;
=head1 DESCRIPTION
fetches sequence data from database an instantiates and runs the
genscan runnable
=head1 CONTACT
Post questions to the Ensembl development list: ensembl-dev@ebi.ac.uk
=cut
package Bio::EnsEMBL::Analysis::RunnableDB::Genscan;
use strict;
use warnings;
use Bio::EnsEMBL::Analysis::RunnableDB;
use Bio::EnsEMBL::Analysis::Runnable::Genscan;
use Bio::EnsEMBL::Analysis::Config::General;
use Bio::EnsEMBL::Utils::Exception qw(throw warning);
use Bio::EnsEMBL::Analysis::Tools::Logger qw(logger_info);
use vars qw(@ISA);
@ISA = qw(Bio::EnsEMBL::Analysis::RunnableDB);
=head2 fetch_input
Arg [1] : Bio::EnsEMBL::Analysis::RunnableDB::Genscan
Function : fetch data out of database and create runnable
Returntype: 1
Exceptions: none
Example :
=cut
sub fetch_input{
my ($self) = @_;
my $slice = $self->fetch_sequence($self->input_id, $self->db,
$ANALYSIS_REPEAT_MASKING);
$self->query($slice);
my %args = %{$self->standard_args};
my $runnable = $self->runnable_path->new
(
%args,
);
my $seq = $self->query->seq;
if ($seq =~ /[CATG]{3}/) {
$self->input_is_void(0);
} else {
$self->input_is_void(1);
warning("Need at least 3 nucleotides - maybe your sequence was fully repeatmasked ...");
}
$self->runnable($runnable);
return 1;
}
=head2 write_output
Arg [1] : Bio::EnsEMBL::Analysis::RunnableDB::Genscan
Function : writes the prediction transcripts back to the database
after validation
Returntype: none
Exceptions:
Example :
=cut
sub write_output{
my ($self) = @_;
my $adaptor = $self->db->get_PredictionTranscriptAdaptor;
my @output = @{$self->output};
my $ff = $self->feature_factory;
foreach my $pt(@output){
$pt->analysis($self->analysis);
$pt->slice($self->query) if(!$pt->slice);
$ff->validate_prediction_transcript($pt, 1);
$adaptor->store($pt);
}
}
sub runnable_path{
my ($self);
return "Bio::EnsEMBL::Analysis::Runnable::Genscan";
}
=head2 standard_args
Arg [1] : Bio::EnsEMBL::Analysis::RunnableDB::Genscan
Function : to return a hash which contains the
standard constructor args for the genscan runnable
Returntype: hashref
Exceptions: none
Example :
=cut
sub standard_args{
my ($self) = @_;
my %parameters;
if($self->parameters_hash){
%parameters = %{$self->parameters_hash};
}
return {
-query => $self->query,
-program => $self->analysis->program_file,
-analysis => $self->analysis,
%parameters,
-matrix => $self->analysis->db_file,
};
}
1;