[Bioperl-l] SeqIO STDOUT changed?

Jason Stajich jason at bioperl.org
Tue Apr 12 17:02:02 EDT 2011


Ok I'll check in this fix and we can see if we can bump this up to 
Root::IO where I imagine it would be better to have this generic type of 
code.  I think the only issue in SeqIO is the GuessFormat aspects but I 
think that is separate from opening the IO enough that it shouldn't be a 
problem.

jason

Chris Fields wrote:
> Jason,
>
> That would be unintentional.  I'm wondering (from a consistency standpoint) whether we should be doing this check within Bio::SeqIO or in Bio::Root::IO, though; the latter would at least be consistent between all the various *IO implementations, just not sure how easy it would be to implement.
>
> chris
>
> On Apr 11, 2011, at 8:15 PM, Jason Stajich wrote:
>
>> I noticed I am now getting errors with this code:
>>   my $out = Bio::SeqIO->new(-format =>  'fasta');
>> that previously would have defaulted to STDOUT when write_seq was used. This causes errors in existing scripts (e.g. bp_sreformat and others).
>>
>> $ bp_sreformat.pl -if fasta -of genbank -i multifa.seq
>> Unknown sequence format to bioperl genbank:
>> ------------- EXCEPTION: Bio::Root::Exception -------------
>> MSG: No file, fh, or string argument provided
>> STACK: Error::throw
>> STACK: Bio::Root::Root::throw /usr/local/lib/perl5/Bio/Root/Root.pm:472
>> STACK: Bio::SeqIO::new /usr/local/lib/perl5/Bio/SeqIO.pm:369
>> STACK: /usr/local/bin/bp_sreformat.pl:124
>> -----------------------------------------------------------
>>
>> Was this an intentional API change or something else gone wrong? This would be my proposed fix back --
>> core (master)]$ git diff
>> diff --git a/Bio/SeqIO.pm b/Bio/SeqIO.pm
>> index 83bab58..9b2ba02 100644
>> --- a/Bio/SeqIO.pm
>> +++ b/Bio/SeqIO.pm
>> @@ -363,11 +363,14 @@ sub new {
>>                 my %param = @args;
>>                 @param{ map { lc $_ } keys %param } = values %param; # lowercase keys
>>
>>
>> -        $class->throw("file argument provided, but with an undefined value") if exists($param{'-file'});
>> -        $class->throw("fh argument provided, but with an undefined value") if (exists($param{'-fh'}));
>> -        $class->throw("No file, fh, or string argument provided");  # neither defined
>> -       }
>> +                   $class->throw("file argument provided, but with an undefined value") if exists($param{'-file'});
>> +                   $class->throw("fh argument provided, but with an undefined value") if (exists($param{'-fh'}));
>> +                   $class->throw("string argument provided, but with an undefined value") if (exists($param{'-string'}));
>> +                   # $class->throw("No file, fh, or string argument provided"); # neither defined
>> +               }
>>
>>         my $format = $param{'-format'} ||
>>             $class->_guess_format( $param{-file} || $ARGV[0] );
>>
>> -jason
>> --
>> Jason Stajich
>> jason at bioperl.org
>> http://bioperl.org
>>
>> _______________________________________________
>> Bioperl-l mailing list
>> Bioperl-l at lists.open-bio.org
>> http://lists.open-bio.org/mailman/listinfo/bioperl-l
>

-- 
Jason Stajich
jason at bioperl.org
http://bioperl.org/wiki



More information about the Bioperl-l mailing list