Raw content of Bio::EnsEMBL::Analysis::RunnableDB::ProteinAnnotation::PIRSF
#
#
#
=pod
=head1 NAME
Bio::EnsEMBL::Pipeline::RunnableDB::ProteinAnnotation::PIRSF
=head1 SYNOPSIS
my $seg = Bio::EnsEMBL::Pipeline::RunnableDB::ProteinAnnotation::PIRSF->
new ( -db => $db,
-input_id => $input_id,
-analysis => $analysis,
);
$seg->fetch_input; # gets sequence from DB
$seg->run;
$seg->write_output; # writes features to to DB
=head1 DESCRIPTION
This object wraps Bio::EnsEMBL::Pipeline::Runnable::Hmmpfam
to add functionality to read and write to databases in
a Pfam-specific way.
=head1 CONTACT
=cut
package Bio::EnsEMBL::Analysis::RunnableDB::ProteinAnnotation::PIRSF;
use strict;
use vars qw(@ISA);
use Bio::EnsEMBL::Analysis::RunnableDB::ProteinAnnotation;
use Bio::EnsEMBL::Analysis::Runnable::ProteinAnnotation::PIRSF;
@ISA = qw(Bio::EnsEMBL::Analysis::RunnableDB::ProteinAnnotation);
sub fetch_input {
my ($self) = @_;
$self->SUPER::fetch_input;
# PIRSF needs sequence lengths, so we must create one Runnable
# for each input sequence, giving a Bio::PrimarySeq as input
my @query_seqs;
if (ref($self->query) and $self->query->isa("Bio::PrimarySeq")) {
push @query_seqs, $self->query;
} elsif (-e $self->query) {
my $seqio = Bio::SeqIO->new(-format => 'fasta',
-file => $self->query);
while(my $seq = $seqio->next_seq) {
push @query_seqs, $seq;
}
$seqio->close;
} else {
throw($self->query . " is neither an object ref nor a file name\n");
}
foreach my $seq (@query_seqs) {
my $run = Bio::EnsEMBL::Analysis::Runnable::ProteinAnnotation::PIRSF->
new(-query => $seq,
-analysis => $self->analysis,
-database => $self->analysis->db_file,
%{$self->parameters_hash}
);
$self->runnable($run);
}
}