BioPerl
view release on metacpan or search on metacpan
Bio/Search/Iteration/GenericIteration.pm view on Meta::CPAN
=head2 oldhits_newly_below_threshold
See documentation in L<Bio::Search::Iteration::IterationI::oldhits_newly_below_threshold()|Bio::Search::Iteration::IterationI>.
=cut
sub oldhits_newly_below_threshold {
my $self = shift;
if (ref $self->{'_oldhits_newly_below_threshold'} ) {
my $factory = $self->hit_factory || return @{$self->{'_oldhits_newly_below_threshold'}};
for (0..$#{$self->{'_oldhits_newly_below_threshold'}}) {
ref(${$self->{'_oldhits_newly_below_threshold'}}[$_]) eq 'HASH' || next;
${$self->{'_oldhits_newly_below_threshold'}}[$_] = $factory->create_object(%{${$self->{'_oldhits_newly_below_threshold'}}[$_]});
}
return @{$self->{'_oldhits_newly_below_threshold'}};
}
return;
}
=head2 oldhits_not_below_threshold
See documentation in L<Bio::Search::Iteration::IterationI::oldhits_not_below_threshold()|Bio::Search::Iteration::IterationI>.
=cut
sub oldhits_not_below_threshold {
my $self = shift;
if (ref $self->{'_oldhits_not_below_threshold'} ) {
my $factory = $self->hit_factory || return @{$self->{'_oldhits_not_below_threshold'}};
for (0..$#{$self->{'_oldhits_not_below_threshold'}}) {
ref(${$self->{'_oldhits_not_below_threshold'}}[$_]) eq 'HASH' || next;
${$self->{'_oldhits_not_below_threshold'}}[$_] = $factory->create_object(%{${$self->{'_oldhits_not_below_threshold'}}[$_]});
}
return @{$self->{'_oldhits_not_below_threshold'}};
}
return;
}
=head2 hits_below_threshold
See documentation in L<Bio::Search::Iteration::IterationI::hits_below_threshold()|Bio::Search::Iteration::IterationI>.
=cut
sub hits_below_threshold {
my $self = shift;
my @hits = $self->newhits_below_threshold;
push @hits, $self->oldhits_newly_below_threshold;
return @hits;
}
=head2 get_hit
See documentation in L<Bio::Search::Iteration::IterationI::get_hit()|Bio::Search::Iteration::IterationI>.
To free up the memory used by the get_hit() functionality, call free_hit_lookup().
This functionality might be useful at the Result level, too.
BlastResult::get_hit() would return a list of HitI objects for hits
that occur in multiple iterations.
=cut
sub get_hit {
my ($self,$name) = @_;
$self->_create_hit_lookup() unless defined $self->{'_hit_lookup'};
return $self->{'_hit_lookup'}->{"\U$name"};
}
# Internal method.
sub _create_hit_lookup {
my $self = shift;
foreach ($self->hits) {
my $hname = $_->name;
$self->{'_hit_lookup'}->{"\U$hname"} = $_;
}
}
=head2 free_hit_lookup
Purpose : Frees up the memory used by the get_hit() functionality.
For the memory-conscious.
=cut
sub free_hit_lookup {
my $self = shift;
undef $self->{'_hit_lookup'};
}
1;
( run in 1.064 second using v1.01-cache-2.11-cpan-71847e10f99 )