BioPerl
view release on metacpan or search on metacpan
Bio/AlignIO/bl2seq.pm view on Meta::CPAN
$self->SUPER::_initialize(@args);
my ($rt) = $self->_rearrange([qw(REPORT_TYPE)],@args);
defined $rt && $self->report_type($rt);
}
=head2 next_aln
Title : next_aln
Usage : $aln = $stream->next_aln()
Function: returns the next alignment in the stream.
Returns : L<Bio::Align::AlignI> object on success,
undef on error or end of file
Args : none
=cut
sub next_aln {
my $self = shift;
unless (exists $self->{'_searchio'}) {
$self->{'_searchio'} = Bio::SearchIO->new(-fh => $self->_fh,
-format => 'blast',
-report_type => $self->report_type);
}
while (1) {
if (!exists $self->{'_result'}) {
$self->{'_result'} = $self->{'_searchio'}->next_result;
}
return if !defined $self->{'_result'};
if (!exists $self->{'_hit'}) {
$self->{'_hit'} = $self->{'_result'}->next_hit;
}
# out of hits for this result?
if (!defined $self->{'_hit'}) {
delete $self->{'_result'};
next;
}
my $hsp = $self->{'_hit'}->next_hsp;
# out of hsps for this hit?
if (!defined $hsp) {
delete $self->{'_hit'};
next;
}
$hsp ? return $hsp->get_aln: return;
}
}
=head2 write_aln (NOT IMPLEMENTED)
Title : write_aln
Usage : $stream->write_aln(@aln)
Function: writes the $aln object into the stream in bl2seq format
Returns : 1 for success and 0 for error
Args : L<Bio::Align::AlignI> object
=cut
sub write_aln {
my ($self,@aln) = @_;
$self->throw_not_implemented();
}
=head2 report_type
Title : report_type
Usage : $obj->report_type($newval)
Function: Sets the report type (blastn, blastp...)
Returns : value of report_type (a scalar)
Args : on set, new value (a scalar or undef, optional)
=cut
sub report_type{
my $self = shift;
return $self->{'report_type'} = shift if @_;
return $self->{'report_type'};
}
1;
( run in 2.205 seconds using v1.01-cache-2.11-cpan-437f7b0c052 )