[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 12:04:41 EDT 2011

Issue #3264 has been updated by Chris Fields.

Kai Blin wrote:
> Ok, there's something funny going on still with _pushback, breaking the hmmer3 parser at the moment. I'm still working on this. hmmer2 is working fine with input streams now.

Just to note (in case this is the problem), using @_pushback($foo)@/@_readline()@ assumes the lines end with @$/@.  Any other use is not supported; this is noted in the documentation and also mentioned in Issue #843.  I had a warning in the code to deal with this but (1) a lot of modules broke, so aren't observing the API, and (2) it slowed things down even more, so it wasn't deemed worth it from a performance perspective.
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