Bio::Search::Result
CrossMatchResult
Toolbar
Package variables
No package variables defined.
Included modules
Inherit
Synopsis
No synopsis!
Description
No description!
Methods
Methods description
Title : new Usage : my $obj = Bio::Search::Result::CrossMatchResult->new(); Function: Builds a new Bio::Search::Result::CrossMatchResult object Returns : Bio::Search::Result::CrossMatchResult Args : See Bio::Search::Result::GenericResult(); The following parameters are specific to CrossMatchResult: -iterations => array ref of Bio::Search::Iteration::IterationI objects -inclusion_threshold => e-value threshold for inclusion in the CrossMatch score matrix model (blastpgp) |
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 |
Title : next_iteration Usage : while( $it = $result->next_iteration()) { ... } Function: Returns the next Iteration object, representing all hits found within a given CrossMatch iteration. Returns : a Bio::Search::Iteration::IterationI object or undef if there are no more. Args : none |
Usage : $iteration = $blast->iteration( $number ); Purpose : Get an IterationI object for the specified iteration in the search result (CrossMatch). 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 |
Usage : $num_iterations = $blast->num_iterations; Purpose : Get the number of iterations in the search result (CrossMatch). Returns : Total number of iterations in the report Argument : none (read-only) |
Title : iterations Usage : my @iterations = $result->iterations Function: Returns the IterationI objects contained within this Result Returns : Array of Bio::Search::Iteration::IterationI objects Args : none |
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 (CrossMatch)
If iteration number is not specified and this is a CrossMatch result,
then this method will return true only if all iterations had
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 (CrossMatch) |
Title : _next_iteration_index Usage : private |
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 |
Title : inclusion_threshold Usage : my $incl_thresh = $result->inclusion_threshold; (read-only) Function: Gets the e-value threshold for inclusion in the CrossMatch score matrix model (blastpgp) that was used for generating the report being parsed. Returns : number (real) or undef if not a CrossMatch report. Args : none |
Methods code
sub new
{ my($class,@args) = @_;
my $self = $class->SUPER::new(@args);
$self->{'_iterations'} = [];
$self->{'_iteration_index'} = 0;
$self->{'_iteration_count'} = 0;
my( $iters, $ithresh ) = $self->_rearrange([qw(ITERATIONS
INCLUSION_THRESHOLD)],@args);
$self->{'_inclusion_threshold'} = $ithresh;
if( defined $iters ) {
$self->throw("Must define arrayref of Iterations when initializing a $class\n") unless ref($iters) =~ /array/i;
foreach my $i ( @{$iters} ) {
$self->add_iteration($i);
}
}
else {
$self->{'_no_iterations'} = 1;
}
return $self;} |
sub hits
{ my ($self) = shift;
if ($self->{'_no_iterations'}) {
return $self->SUPER::hits;
}
my @hits = ();
foreach my $it ($self->iterations) {
push @hits, $it->hits;
}
return @hits;} |
sub next_hit
{ my ($self,@args) = @_;
if ($self->{'_no_iterations'}) {
return $self->SUPER::next_hit(@args);
}
my $iter_index;
if (not defined $self->{'_last_hit'}) {
$iter_index = $self->{'_iter_index'} = $self->_next_iteration_index;
} else {
$iter_index = $self->{'_iter_index'};
}
return if $iter_index >= scalar @{$self->{'_iterations'}};
my $it = $self->{'_iterations'}->[$iter_index];
my $hit = $self->{'_last_hit'} = $it->next_hit;
return defined($hit) ? $hit : $self->next_hit;} |
sub num_hits
{ my ($self) = shift;
if ($self->{'_no_iterations'}) {
return $self->SUPER::num_hits;
}
if (not defined $self->{'_iterations'}) {
$self->throw("Can't get Hits: data not collected.");
}
return scalar( $self->hits );} |
sub add_iteration
{ my ($self,$i) = @_;
if( $i->isa('Bio::Search::Iteration::IterationI') ) {
push @{$self->{'_iterations'}}, $i;
$self->{'_iteration_count'}++;
} else {
$self->throw("Passed in a " .ref($i).
" as a Iteration which is not a Bio::Search::IterationI.");
}
return scalar @{$self->{'_iterations'}};} |
sub next_iteration
{ my ($self) = @_;
unless($self->{'_iter_queue_started'}) {
$self->{'_iter_queue'} = [$self->iterations()];
$self->{'_iter_queue_started'} = 1;
}
return shift @{$self->{'_iter_queue'}};} |
sub iteration
{ my ($self,$num) = @_;
$num = scalar @{$self->{'_iterations'}} unless defined $num;
unless ($num >= 1 and $num <= scalar $self->{'_iteration_count'}) {
$self->throw(-class=>'Bio::Root::NoSuchThing',
-text=>"No such iteration number: $num. Valid range=1-$self->{'_iteration_count'}",
-value=>$num);
}
return $self->{'_iterations'}->[$num-1];} |
sub num_iterations
{ shift->{'_iteration_count'}} |
sub number_of_iterations
{ shift->num_iterations } |
sub round
{ shift->iteration(@_) } |
sub iterations
{ my $self = shift;
my @its = ();
if( ref($self->{'_iterations'}) =~ /ARRAY/i ) {
@its = @{$self->{'_iterations'}};
}
return @its;} |
sub no_hits_found
{ my ($self, $round) = @_;
my $result = 0;
if( not defined $round ) {
if( $self->{'_iterations'} > 1) {
$result = 1;
foreach my $i( 1..$self->{'_iterations'} ) {
if( not defined $self->{"_iteration_$i"}->{'_no_hits_found'} ) {
$result = 0;
last;
}
}
}
else {
$result = $self->{"_iteration_1"}->{'_no_hits_found'};
}
}
else {
$result = $self->{"_iteration_$round"}->{'_no_hits_found'};
}
return $result;} |
sub set_no_hits_found
{ my ($self, $round) = @_;
$round ||= 1;
$self->{"_iteration_$round"}->{'_no_hits_found'} = 1;} |
sub _next_iteration_index
{ my ($self,@args) = @_;
return $self->{'_iteration_index'}++;} |
sub rewind
{ my $self = shift;
$self->SUPER::rewind(@_);
$self->{'_iteration_index'} = 0;
foreach ($self->iterations) {
$_->rewind;
}} |
sub inclusion_threshold
{ my $self = shift;
return $self->{'_inclusion_threshold'};} |
| algorithm_old | description | prev | next | Top |
sub algorithm_old
{ my $self = shift;
my $value = shift;
if($value) {
print STDERR "Cannot set the algorightm on this class!\n";
return $self->SUPER::algorithm;
} else {
return $self->SUPER::algorithm;
}
}
1;
} |
General documentation
No general documentation available.