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 )