[Bioperl-l] Why reading from generic object?
Alexey Morozov
alexeymorozov1991 at gmail.com
Thu Jul 25 05:24:29 UTC 2013
I've made this primitive script for joining seqs that are stored in lots of
files (some of them in a genbank format) into a single fasta:
my $out=Bio::SeqIO->new(-fh=>\*STDOUT, -format=>'fasta');
foreach my $file (@ARGV)
{
my $format=( $file~~m/.*\.gb$/ ?'genbank':'fasta');
my $seqio=Bio::SeqIO->new(-file=>"<$file", -format=>"$format");
my $seq=Bio::SeqIO->next_seq;
$out->write_seq($seq);
}
It correctly tells a format, finds files and they're open for reading.
There seems to be literally no place for the error, yet it throws:
------------- EXCEPTION: Bio::Root::Exception -------------
MSG: Sorry, you cannot read from a generic Bio::SeqIO object.
STACK: Error::throw
STACK: Bio::Root::Root::throw /usr/share/perl5/Bio/Root/Root.pm:472
STACK: Bio::SeqIO::next_seq /usr/share/perl5/Bio/SeqIO.pm:506
STACK: join_fa:13
-----------------------------------------------------------
Can someone please explain me where I messed up?
--
Alexey Morozov,
LIN SB RAS, bioinformatics group.
Irkutsk, Russia.
More information about the Bioperl-l
mailing list