[Bioperl-l] Bio::Search::XXX::GenericXXX vs. Bio::Search::XXX::BlastXXX

Jason Stajich jason at cgt.mc.duke.edu
Thu Mar 27 09:30:13 EST 2003


On Thu, 27 Mar 2003 Luc.Gauthier at aventis.com wrote:

> Hi everyone,
>
> I work with Bioperl v1.0 and am currently learning to use the
> Bio::SearchIO system. For this reason, I am reading the Bio::SearchIO
> HOWTO written by Jason Stajich.
>
> My question comes as I read about the different Bio::Search objects.
> After reading the online documentation at
> http://doc.bioperl.org/releases/bioperl-1.0/, it appeared to me that
> Bio::Search::XXX::BlastXXX (where XXX is Result, Hit and HSP) objects
> would be of greater interest to me than the Bio::Search::XXX::GenericXXX
> ones (I am working with NCBI Blast output reports).
>
> The fact that BlastXXX objects are richer (thus better to use) than the
> GenericXXX ones is mentionned in the Bio::SearchIO HOWTO (page 3):
>
>      "The important take home message is that you cannot assume that
> methods in the BlastXXX objects are in fact implemented by the
GenericXXX objects."
>
> However, the use of those richer objects is discouraged in the next
> sentence:

Most of the functionaly has been ported over.  Rather than assuming they
are not rich enough for your needs, can you describe what you want to do
that you currently cannot do with the GenericXXX objects.  This helps
prioritize the list of things.

>      "More likely than not the BlastXXX objects will be deprecated and
> dismantled as their functionality is ported to the GenericXXX objects."

I'm not lying here.  I'm waiting for Steve to finish his porting of
psiblast parsing in (which means all of the functionality will be
available in the GenericXX objects).  This didn't happen before 1.2 branch
so they are still there.  It ought to happen before 1.4 release in the
fall.

> This was indirectly confirmed to me as a call to the "blastall" method of a
> Bio::Tools::Run::StandAloneBlast factory (with '_READMETHOD' set to 'Blast')
> hands me back a reference to a Bio::SearchIO::blast object on which the
> "next_result" method call returns a reference to a
> Bio::Search::Result::GenericResult object.
>
That's because the parser is set to the SearchIO(-format => 'blast')

If you want to use them (at your own risk) you'll need to produce a flat
blast file and then use the psiblast parser.

> Then I took a look at the Bioperl v1.2 online documentation available at
> http://doc.bioperl.org/releases/bioperl-1.2/ and found out that not only the
> Bio::Search::XXX::BlastXXX is still available but that new implementations
> were added (HMMERXXX, WABAXXX). This does not at all confirm what
> is said in the Bio::SearchIO HOWTO.
>

HMMERXX is for hmmer parsing, WABA for waba parsing.  These are extensions
of the GenericXX parser to deal with data that is not in a BLAST/FASTA
report.  The basic core of information that is in a BLAST/FASTA report is
what I consider the basis of the Generic implementation when this was
designed.

Eventually a second round of design and implementation will occur to make
Search objects more robust for incomplete data and fit into a more
sophisticated event-based parsing scheme.  But that is slated for a later
bioperl release and needs more discussion and dev time.

> Am I understanding something wrong ?
> Should I stick to GenericXXX objects ?

> Thanks a lot for your help !
> Luc Gauthier
>
>
>
>
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at bioperl.org
> http://bioperl.org/mailman/listinfo/bioperl-l
>

--
Jason Stajich
Duke University
jason at cgt.mc.duke.edu


More information about the Bioperl-l mailing list