[Bioperl-l] SearchIO and result of StandAloneBlast

Catherine Letondal letondal@pasteur.fr
Wed, 27 Mar 2002 20:06:20 +0100


Steve Chervitz wrote:
> 
> --- Jason Stajich <jason@cgt.mc.duke.edu> wrote:
> > On Mon, 25 Mar 2002, Catherine Letondal wrote:
> > 
> > >
> > > Hi,
> > >
> > > I have tried the 1.0 blast and search modules, and I have some questions:
> > >
> > > 1) When running a Bio::Tools::Run::StandAloneBlast, I get a
> > > Bio::Tools::BPlite object. Is it going to change to a
> > > Bio::Search::Result::ResultI compliant object?
> > >
> > I thought I fixed this - perhaps it still defaults to BPlite but you can
> > request a SearchIO object by specifying
> > _READMETHOD => "Blast"  (which now uses SearchIO instead of Tools::Blast)
> > 
> > 
> > > 2) When creating a result with the Bio::SearchIO modules from a blast
> > > report, I get a Bio::Search::Result::GenericResult, and not a
> > > Bio::Search::Result::BlastResult. What is the
> > > Bio::Search::Result::BlastResult for then? Only for psiblast?
> > 
> > Yes, only for psiblast. Steve and I have to figure out how to best merge
> > our two solutions to blast parsing. His BlastResult object uses lazy
> > parsing, I use GenericResult which is just a simple data structure.
> > 
> > I'm really not sure how we plan to reconcile this because it really means
> > 2 different types of parsers.  I prefer to keep all the parsing methods in
> > the SearchIO space but I can understand Steve's desire to push things into
> > specialized objects.
> 
> The lazy parsing is done only in Bio::Search::HSP::BlastHSP. My aim is to
> remove the lazy parsing, most likely into Bio::Factory::BlastHitFactory, where
> BlastHSPs are created.
> 
> The point of using factories was to permit a SearchIO parser to generate
> different types of  Result/Hit/HSP objects depending on what factory is hooked
> up to it. This will allow Jason's Generic objects and my Blast objects to
> co-exist. Users can plug in the desired factory, including one that they might
> write themselves. 
> 
> We still need to formalize how SearchIO objects interact with these factories
> (e.g., what data is required when telling a factory to create an HSP), so this
> factory business is largely at the vision stage.
> 
> Steve
> 

Thanks for the explanations!

We are upgrading our bioperl course to bioperl 1.0, and we are trying to figure out how 
all the classes work together. The 1st result is a big headache :-), and the 2nd one is a 
diagram, for which I would be very happy to get a little feedback:
http://www.pasteur.fr/recherche/unites/sis/formation/bioperl/figures/searchio-class.png
Is it correct?
("old" Bio::Tools::Blast and BPlite are not included)

This is of course not going to be the 1st diagram to show to students in order to
use the new Blast parsers! It's just intended to show the architecture.
BTW, what do you think about adding some information about classes in the documentation?
(eventhough the ISA statement is more precise)

Thanks a lot for all this work,

--
Catherine Letondal -- Pasteur Institute Computing Center