[Bioperl-l] Filehandle interface in Bio::AlignIO: broken in 1.4?
Lincoln Stein
lstein at cshl.edu
Mon Feb 2 04:07:10 EST 2004
So sorry about breaking the newFh method. You can restore the
previous behavior by passing \*ARGV to the -fh argument when you
create the SeqIO object.
Unfortunately the earlier behavior made it impossible to create a
seqIO object that was write only, and as a result some higher-level
modules were gobbling the STDIN inappropriately.
Lincoln
On Saturday 31 January 2004 05:07 pm, Jason Stajich wrote:
> Dave -
>
> This is due to a change lincoln made to not default to the magic <>
> operator when no filename is provided. It broke a lot of my
> scripts too.
>
> [This is basically part of similar question that Peter was asking
> wrt SeqIO]
>
> I would like to see it come back somehow but I am not sure how as
> it causes certain things to block during the tests.
>
> it has nothing to do with the newFh method but with Bio::Root::IO
> in the _readline method.
>
> < my $fh = $self->_fh || \*ARGV;
> ---
>
> > my $fh = $self->_fh or return;
>
> If you want the old functionality just change that line back in
> your code for the time being.
>
>
> --jason
>
> On Sat, 31 Jan 2004, Dave NO SPAM Ardell wrote:
> > Hi,
> >
> > I searched for this in docs and the mailing list but didn't find
> > anything. Also
> > looked quickly in bugzilla and the Changelist with no result.
> > So sorry if I am rehashing something known.
> >
> > Was surprised after installing 1.4 that filehandle functionality
> > documented
> > as part of the interface in AlignIO seems broken. That is to say,
> >
> > 1: $stream = Bio::AlignIO->newFh('-format' => "$opt_i"); # read
> > from standard input
> > 2: while ( my $aln = <$stream> ) {
> >
> > doesn't work anymore. It doesn't die, but the diamond operator
> > returns null regardless of input. During debugging,
> >
> > gdb> x $stream
> >
> > after line 1 above, executing with sequence input on STDIN
> > gives:
> >
> > ------ BEGIN DEBUGGER OUTPUT
> > 0 GLOB(0xbbd178)
> > -> *Symbol::GEN0
> > Can't locate object method "FILENO" via package
> > "Bio::AlignIO::fasta" at /System/Library/Perl/5.8.1/dumpvar.pl
> > line 238.
> > dumpvar::unwrap('GLOB(0xbbd178)',3,-2) called at
> > /System/Library/Perl/5.8.1/dumpvar.pl line 118
> > dumpvar::DumpElem('GLOB(0xbbd178)',3,-2) called at
> > /System/Library/Perl/5.8.1/dumpvar.pl line 223
> > dumpvar::unwrap('ARRAY(0xbbd0e8)',0,-1) called at
> > /System/Library/Perl/5.8.1/dumpvar.pl line 33
> > main::dumpValue('ARRAY(0xbbd0e8)',-1) called at
> > /System/Library/Perl/5.8.1/perl5db.pl line 5270
> > DB::dumpit('GLOB(0x143988)','ARRAY(0xbbd0e8)') called at
> > /System/Library/Perl/5.8.1/perl5db.pl line 647
> > DB::eval called at /System/Library/Perl/5.8.1/perl5db.pl
> > line 3314
> > DB::DB called at /Users/dave/Data/mybin/pi line 44
> >
> > ----- END DEBUGGER OUTPUT -----
> >
> > I see from recent scripts, for instance, bp_sreformat.pl, and
> > from documentation
> > that stdin/stdout functionality can be had through AlignIO::new
> >
> > But for my quickfix, I reinstalled bioperl 1.2.3
> >
> > Maybe the change is intentional.
> > Although I guess I would miss the filehandle interface,
> > I could get over it =)
> > Maybe the change should be documented though.
> >
> > Apologies if it is and I missed it.
> >
> > Dave
> >
> >
> > --+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--
> >+--+-- +--
> > David Ardell, Asst. Professor. tel : 46 (0) 18 471 6694
> > Linnaeus Centre for Bioinformatics fax : 46 (0) 18 471 6698
> > Uppsala University Biomedical Center
> > http://www.lcb.uu.se/~dave Husargatan 3, Box 598,
> > SE 751 24 Uppsala SWEDEN.
> >
> > _______________________________________________
> > Bioperl-l mailing list
> > Bioperl-l at portal.open-bio.org
> > http://portal.open-bio.org/mailman/listinfo/bioperl-l
>
> --
> Jason Stajich
> Duke University
> jason at cgt.mc.duke.edu
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at portal.open-bio.org
> http://portal.open-bio.org/mailman/listinfo/bioperl-l
--
Lincoln D. Stein
Cold Spring Harbor Laboratory
1 Bungtown Road
Cold Spring Harbor, NY 11724
More information about the Bioperl-l
mailing list