[Bioperl-l] results problem with StandAloneBlast
Chris Fields
cjfields at uiuc.edu
Sun Jun 4 15:51:53 UTC 2006
On Jun 4, 2006, at 9:08 AM, Jason Stajich wrote:
> right - you don't need rewind if you aren't going to use the
> iterator (next_XXX) -- we provide two different ways to get access
> to the data.
> you can do
> for my $hit ( $result->hits ) {
>
> }
> or
> while( my $hit = $result->next_hit ) {
> }
>
>
> If you want to rewind the parser then (assuming you are using a
> filestream and not a data stream from the web or zcat or something)
> just reset the filehandle
> seek($searchio->_fh, 0);
>
> but then you'll have to re-parse everything and pay that cost twice
> - it makes more sense to me to just save the results and put them
> in list if you are going to deliberately make two passes over all
> the results. You either pay the cost of memory (keeping all the
> objects) or time (reparse the results).
I agree there isn't any really good reason to rewind the parser; I
was mainly just curious how this was accomlished. Your point about a
memory or time hit might be a point we want to make in the HOWTO. I
already added some example code about rewinding the iterator and
hits, so I'll add a bit about this.
I think a good deal of confusion here comes from not knowing how
SearchIO works (i.e. that parsing a report can return several
results, in turn which can return hits, in tur returning HSP's). Of
course that doesn't include iterations in the case of PSI-BLAST.
The HOWTO, I think, explains this all well so it may be a matter of
just RTM (I left the 'F' out to be a bit more polite).
Chris
> -jason
> On Jun 4, 2006, at 1:17 AM, Chris Fields wrote:
>
...
Christopher Fields
Postdoctoral Researcher
Lab of Dr. Robert Switzer
Dept of Biochemistry
University of Illinois Urbana-Champaign
More information about the Bioperl-l
mailing list