Raw content of Bio::EnsEMBL::Analysis::Runnable::ProteinAnnotation::PrositeProfile
=head1 NAME
PrositeProfile
=head1 SYNOPSIS
=head1 DESCRIPTION
=cut
package Bio::EnsEMBL::Analysis::Runnable::ProteinAnnotation::PrositeProfile;
use vars qw(@ISA);
use strict;
# Object preamble - inheriets from Bio::Root::Object
use Bio::EnsEMBL::Utils::Exception qw(throw warning);
use Bio::EnsEMBL::Analysis::Runnable::ProteinAnnotation;
@ISA = qw(Bio::EnsEMBL::Analysis::Runnable::ProteinAnnotation);
sub multiprotein{
my ($self) = @_;
return 0;
}
sub run_analysis {
my ($self) = @_;
throw("Failed during Profile run $!\n") unless
(system ($self->program . ' -f ' . $self->queryfile. ' ' .
$self->database . ' > ' .$self->resultsfile) == 0) ;
}
sub parse_results {
my ($self,$seqid) = @_;
my ($fh);
my $resfile = $self->resultsfile;
if (-e $resfile) {
if (-z $resfile) {
return;
} else {
open ($fh, "<$resfile") or throw("Error opening ", $resfile,);
}
}
my (@pfs);
while (<$fh>) {
if (/^\s*(\S+)\s+(\d+)\s*pos\.\s+(\d+)\s+\-\s+(\d+)\s+(\w+)\|/) {
my ($sc, $rsc, $st, $en, $acc) = ($1, $2, $3, $4, $5);
my $fp = $self->create_protein_feature($st,
$en,
$sc,
$seqid,
0, 0,
$acc,
$self->analysis,
0, 0);
push @pfs, $fp;
}
}
$self->output(\@pfs);
}