The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Bio::Search::Result::BlastResult - Blast-specific subclass of Bio::Search::Result::GenericResult

SYNOPSIS

# Working with iterations (PSI-BLAST results)

$result->next_iteration();
$result->num_iterations();
$result->iteration();
$result->iterations();

# See Bio::Search::Result::GenericResult for information about working with Results.

# See Bio::Search::Iteration::IterationI # for details about working with iterations.

# TODO: # * Show how to configure a SearchIO stream so that it generates # BlastResult objects.

DESCRIPTION

This object is a subclass of Bio::Search::Result::GenericResult and provides some operations that facilitate working with BLAST and PSI-BLAST results.

For general information about working with Results, see Bio::Search::Result::GenericResult.

FEEDBACK

Mailing Lists

User feedback is an integral part of the evolution of this and other Bioperl modules. Send your comments and suggestions preferably to the Bioperl mailing list. Your participation is much appreciated.

bioperl-l@bioperl.org                  - General discussion
http://bioperl.org/wiki/Mailing_lists  - About the mailing lists

Support

Please direct usage questions or support issues to the mailing list:

bioperl-l@bioperl.org

rather than to the module maintainer directly. Many experienced and reponsive experts will be able look at the problem and quickly address it. Please include a thorough description of the problem with code and data examples if at all possible.

Reporting Bugs

Report bugs to the Bioperl bug tracking system to help us keep track of the bugs and their resolution. Bug reports can be submitted via the web:

https://redmine.open-bio.org/projects/bioperl/

AUTHOR - Steve Chervitz

Email sac@bioperl.org

APPENDIX

The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _

new

Title   : new
Usage   : my $obj = Bio::Search::Result::BlastResult->new();
Function: Builds a new Bio::Search::Result::BlastResult object
Returns : Bio::Search::Result::BlastResult
Args    : See Bio::Search::Result::GenericResult();
          The following parameters are specific to BlastResult:
            -iterations  => array ref of Bio::Search::Iteration::IterationI objects
            -inclusion_threshold => e-value threshold for inclusion in the
                                    PSI-BLAST score matrix model (blastpgp)

hits

Title   : hits
Usage   : my @hits = $result->hits
Function: Returns the available hits for this Result
Returns : Array of L<Bio::Search::Hit::HitI> objects
Args    : none
Note    : This method overrides L<Bio::Search::Result::GenericResult::hits> to
          take into account the possibility of multiple iterations, as occurs
          in PSI-BLAST reports.
          If there are multiple iterations, all 'new' hits for all iterations
          are returned. These are the hits that did not occur in a previous
          iteration.

          See Also: L<Bio::Search::Result::GenericResult::hits>

next_hit

Title   : next_hit
Usage   : while( $hit = $result->next_hit()) { ... }
Function: Returns the next available Hit object, representing potential
          matches between the query and various entities from the database.
Returns : a Bio::Search::Hit::HitI object or undef if there are no more.
Args    : none
Note    : This method overrides L<Bio::Search::Result::GenericResult::next_hit>
          to take into account the possibility of multiple iterations, as
          occurs in PSI-BLAST reports.

          If there are multiple iterations, calling next_hit() traverses the
          all of the hits, old and new, for each iteration, calling next_hit()
          on each iteration.

          See Also: L<Bio::Search::Iteration::GenericIteration::next_hit>

num_hits

Title   : num_hits
Usage   : my $hitcount= $result->num_hits
Function: returns the number of hits for this query result
Returns : integer
Args    : none
Note    : This method overrides L<Bio::Search::Result::GenericResult::num_hits>
          to take into account the possibility of multiple iterations, as
          occurs in PSI-BLAST reports.

          If there are multiple iterations, calling num_hits() returns the
          number of 'new' hits for each iteration. These are the hits that did
          not occur in a previous iteration.

          See Also: L<Bio::Search::Result::GenericResult::num_hits>

add_hit

Title   : add_hit
Usage   : $report->add_hit($hit)
Function: Adds a HitI to the stored list of hits
Returns : Number of HitI currently stored
Args    : Bio::Search::Hit::HitI

add_iteration

Title   : add_iteration
Usage   : $report->add_iteration($iteration)
Function: Adds a IterationI to the stored list of iterations
Returns : Number of IterationI currently stored
Args    : Bio::Search::Iteration::IterationI

next_iteration

Title   : next_iteration
Usage   : while( $it = $result->next_iteration()) { ... }
Function: Returns the next Iteration object, representing all hits
          found within a given PSI-Blast iteration.
Returns : a Bio::Search::Iteration::IterationI object or undef if there are no more.
Args    : none

iteration

Usage     : $iteration = $blast->iteration( $number );
Purpose   : Get an IterationI object for the specified iteration
            in the search result (PSI-BLAST).
Returns   : Bio::Search::Iteration::IterationI object
Throws    : Bio::Root::NoSuchThing exception if $number is not within 
            range of the number of iterations in this report.
Argument  : integer (optional, if not specified get the last iteration)
            First iteration = 1

num_iterations

Usage     : $num_iterations = $blast->num_iterations; 
Purpose   : Get the number of iterations in the search result (PSI-BLAST).
Returns   : Total number of iterations in the report
Argument  : none (read-only)

number_of_iterations

Usage     : $num_iterations = $blast->number_of_iterations; 
Purpose   : Get the number of iterations in the search result (PSI-BLAST).
Returns   : Total number of iterations in the report
Argument  : none (read-only)
Note      : Alias of L<num_iterations>.

round

Usage     : $round = $blast->round( $number );
Purpose   : Get an IterationI object for the specified iteration
            in the search result (PSI-BLAST).
Returns   : Bio::Search::Iteration::IterationI object
Throws    : Bio::Root::NoSuchThing exception if $number is not within 
            range of the number of iterations in this report.
Argument  : integer (optional, if not specified get the last iteration)
            First iteration = 1
Note      : Alias of L<iteration>.

iterations

Title   : iterations
Usage   : my @iterations = $result->iterations
Function: Returns the IterationI objects contained within this Result
Returns : Array of L<Bio::Search::Iteration::IterationI> objects
Args    : none

psiblast

Usage     : if( $blast->psiblast ) { ... }
Purpose   : Set/get a boolean indicator whether or not the report 
            is a PSI-BLAST report.
Returns   : 1 if PSI-BLAST, undef if not.
Argument  : 1 (when setting)

no_hits_found

Usage     : $nohits = $blast->no_hits_found( $iteration_number );
Purpose   : Get boolean indicator indicating whether or not any hits
            were present in the report.

            This is NOT the same as determining the number of hits via
            the hits() method, which will return zero hits if there were no
            hits in the report or if all hits were filtered out during the parse.

            Thus, this method can be used to distinguish these possibilities
            for hitless reports generated when filtering.

Returns   : Boolean
Argument  : (optional) integer indicating the iteration number (PSI-BLAST)
            If iteration number is not specified and this is a PSI-BLAST result,
            then this method will return true only if all iterations had
            no hits found.

set_no_hits_found

Usage     : $blast->set_no_hits_found( $iteration_number ); 
Purpose   : Set boolean indicator indicating whether or not any hits
            were present in the report.
Returns   : n/a
Argument  : (optional) integer indicating the iteration number (PSI-BLAST)

_next_iteration_index

Title   : _next_iteration_index
Usage   : private

rewind

Title   : rewind
Usage   : $result->rewind;
Function: Allow one to reset the Iteration iterator to the beginning
          Since this is an in-memory implementation
Returns : none
Args    : none

inclusion_threshold

Title   : inclusion_threshold
Usage   : my $incl_thresh = $result->inclusion_threshold; (read-only)
Function: Gets the e-value threshold for inclusion in the PSI-BLAST 
          score matrix model (blastpgp) that was used for generating the report
          being parsed.
Returns : number (real) or undef if not a PSI-BLAST report.
Args    : none