[Bioperl-l] SearchIO speed up
Chris Fields
cjfields at uiuc.edu
Thu Aug 10 16:25:59 UTC 2006
On Aug 10, 2006, at 11:04 AM, Sendu Bala wrote:
>> Just curious, but is there a possibility of making "lazy"
>> instantiation of
>> objects like HSP and HIT objects? Things like parsing and output
>> could be
>> accomplished without these objects?
>
> That's what I've done actually, which is why performance varies
> between
> 5x and 1.5x (lower performance when the instantiation is forced).
>
> But, things like 'parsing and output' do need to force the
> instantiation
> unless, say, an output module knew about the hash structure of the
> thing
> stored inside a Result object. Which is too horrible a situation to
> comprehend. :O
>
> Or is it? What specifically did you have in mind?
The nice thing about SearchIO is the ability to attach a Handler to
return specific objects. For instance, if you didn't want HSP's then
they could be 'junked' by using SearchIO::FastResultEventBuilder,
which just returns hits. I don't know how the other SearchIO modules
(hmmer, etc) deal with this though, but it works for blast and (I
think) blastxml.
You might use this same strategy have the handler return simple
hashes instead of objects, or create a new set of simpler Result/Hit/
HSP classes to deal with the data.
Alternatively, create a new SearchIO class (call it fastblast; okay,
terrible name) that doesn't use a handler and just returns hashes. I
think Jason pointed out previously that the handler isn't required.
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