[Bioperl-guts-l] [BioPerl - Bug #3264] Bio::SearchIO::hmmer2 fails with Bio::Tools::Run::Hmmer, with diagnosis

redmine at redmine.open-bio.org redmine at redmine.open-bio.org
Mon Aug 1 08:51:34 EDT 2011

Issue #3264 has been updated by Kai Blin.

Ok, so I tried using Bio::Root::IO, but I'm running into the following issue:

When I instantiate Bio::Root::IO in Bio/SearchIO/hmmer.pm:new(), I can _readline() and _pushback() there just fine.
However, the readbuffer is not available to the Bio::SearchIO::hmmer2 object I instantiate afterwards. The first two lines are then missing from the file handle and the parser chokes on the input.

Apparently I'm not the right "someone" to fix this. At least not without a substantial rewrite to the way SearchIO::hmmer offloads the parsing work to SearchIO::hmmer2 and SearchIO::hmmer3.
Bug #3264: Bio::SearchIO::hmmer2 fails with Bio::Tools::Run::Hmmer, with diagnosis

Author: George Hartzell
Status: New
Priority: Normal
Assignee: Bioperl Guts
Target version: 

I'm working with clones of the git repository from this morning.

I can't get bioperl-run/t/Hmmer.t to pass.

Digging into it I believe that the root of the problem is that Bio::SearchIO:hmmer::new reads a couple of lines off of the filehandle in order to figure out the hmmer version and then assumes that it can use seek to rewind the input stream back to the beginning.

Unfortunately Bio::Tools::Run::Hmmer ends up passing in a filehandle that's reading off of a pipe.

Line 132 of Bio/SearchIO/hmmer.pm should become something like this:

            @seek($fh, 0, 0) or die "Unable to seek to start of input.";@

and then "someone" needs to figure out how to make the format guesser Do The Right Thing when it's input is a pipe.

You have received this notification because you have either subscribed to it, or are involved in it.
To change your notification preferences, please click here and login: http://redmine.open-bio.org

More information about the Bioperl-guts-l mailing list