[Bioperl-l] Return $hit->name by Score Bit value when parsing blast result

Jason Stajich jason.stajich at duke.edu
Fri Aug 12 08:06:07 EDT 2005

They are supposed to be returned in the order they are found in the  
report -- although I remember there may be something inconsistent  
with the code added to handle PSIBlast parsing too.  I've not yet  
investigated this so so I don't know whether or not it is a bug.

At any rate, you can always collect all the Hits into an array an  
sort them:

my @hits = $result->hits;
for my $hit ( sort { $a->bits <=> $b->bits } @hits ) {


If you read the documentation for Bio::Search::Result::ResultI you'll  
see a 'sort_hits' function which should also allow you to provide a  
sorting function to control the order of the hits.

On Aug 12, 2005, at 3:53 AM, Andrew Leung wrote:

> Hi,
> I did a StandAloneBlast and this resulted in a blast result object.  
> When I
> use obj->next_result and obj->next_hit methods to list the hit name
> (hit->name), I found that they are not returned in an order that is  
> similar
> to a standard blast result. In a standard blast report, we are  
> familiar with
> the fact that hits are ordered by score bit values. With bioperl,  
> how can I
> list the hits by score bits? Shall I manually extract all the hits'  
> score
> bit and then do a hash sorting? Or, they are a better way to  
> achieve it.
> Andrew
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at portal.open-bio.org
> http://portal.open-bio.org/mailman/listinfo/bioperl-l

Jason Stajich
Duke University

More information about the Bioperl-l mailing list