[Bioperl-l] Bio::SeqIO initialization randomly failing on Ubuntu 16.04
Adam Sjøgren
adsj at novozymes.com
Fri May 18 14:22:08 UTC 2018
I have some old code that has started failing randomly after moving from
Ubuntu 14.04 to Ubuntu 16.04.
If I run this:
for i in {1..10}; do echo "*** $i"; perl -E 'use Bio::SeqIO; new Bio::SeqIO(-file=>">/tmp/hep.fasta", format=>"fasta"); say "OK"'; done
I get 10xOK on 14.04.
But on 16.04 I randomly get errors like this:
*** 1
OK
*** 2
------------- EXCEPTION: Bio::Root::Exception -------------
MSG: Must provide a valid Bio::Factory::ObjectBuilderI object to Bio::SeqIO::fasta::sequence_builder()
STACK: Error::throw
STACK: Bio::Root::Root::throw /usr/share/perl5/Bio/Root/Root.pm:447
STACK: Bio::SeqIO::sequence_builder /usr/share/perl5/Bio/SeqIO.pm:821
STACK: Bio::SeqIO::_initialize /usr/share/perl5/Bio/SeqIO.pm:502
STACK: Bio::SeqIO::fasta::_initialize /usr/share/perl5/Bio/SeqIO/fasta.pm:87
STACK: Bio::SeqIO::new /usr/share/perl5/Bio/SeqIO.pm:389
STACK: Bio::SeqIO::new /usr/share/perl5/Bio/SeqIO.pm:435
STACK: -e:1
-----------------------------------------------------------
*** 3
OK
*** 4
------------- EXCEPTION: Bio::Root::Exception -------------
MSG: Must provide a valid Bio::Factory::ObjectBuilderI object to Bio::SeqIO::fasta::sequence_builder()
STACK: Error::throw
STACK: Bio::Root::Root::throw /usr/share/perl5/Bio/Root/Root.pm:447
STACK: Bio::SeqIO::sequence_builder /usr/share/perl5/Bio/SeqIO.pm:821
STACK: Bio::SeqIO::_initialize /usr/share/perl5/Bio/SeqIO.pm:502
STACK: Bio::SeqIO::fasta::_initialize /usr/share/perl5/Bio/SeqIO/fasta.pm:87
STACK: Bio::SeqIO::new /usr/share/perl5/Bio/SeqIO.pm:389
STACK: Bio::SeqIO::new /usr/share/perl5/Bio/SeqIO.pm:435
STACK: -e:1
-----------------------------------------------------------
*** 5
------------- EXCEPTION: Bio::Root::Exception -------------
MSG: Must provide a valid Bio::Factory::ObjectBuilderI object to Bio::SeqIO::fasta::sequence_builder()
STACK: Error::throw
STACK: Bio::Root::Root::throw /usr/share/perl5/Bio/Root/Root.pm:447
STACK: Bio::SeqIO::sequence_builder /usr/share/perl5/Bio/SeqIO.pm:821
STACK: Bio::SeqIO::_initialize /usr/share/perl5/Bio/SeqIO.pm:502
STACK: Bio::SeqIO::fasta::_initialize /usr/share/perl5/Bio/SeqIO/fasta.pm:87
STACK: Bio::SeqIO::new /usr/share/perl5/Bio/SeqIO.pm:389
STACK: Bio::SeqIO::new /usr/share/perl5/Bio/SeqIO.pm:435
STACK: -e:1
-----------------------------------------------------------
*** 6
OK
*** 7
OK
*** 8
OK
*** 9
OK
*** 10
------------- EXCEPTION: Bio::Root::Exception -------------
MSG: Must provide a valid Bio::Factory::ObjectBuilderI object to Bio::SeqIO::fasta::sequence_builder()
STACK: Error::throw
STACK: Bio::Root::Root::throw /usr/share/perl5/Bio/Root/Root.pm:447
STACK: Bio::SeqIO::sequence_builder /usr/share/perl5/Bio/SeqIO.pm:821
STACK: Bio::SeqIO::_initialize /usr/share/perl5/Bio/SeqIO.pm:502
STACK: Bio::SeqIO::fasta::_initialize /usr/share/perl5/Bio/SeqIO/fasta.pm:87
STACK: Bio::SeqIO::new /usr/share/perl5/Bio/SeqIO.pm:389
STACK: Bio::SeqIO::new /usr/share/perl5/Bio/SeqIO.pm:435
STACK: -e:1
-----------------------------------------------------------
which is... weird!? Any ideas?
I also get the random behaviour on Debian 9.4 stable
(stretch)/libbio-bio-perl 1.7.1-2 and on Debian unstable/libbio-bio-perl
1.7.2-2.
Hm. Could it be related to the changes in retrieving keys from hashes
being actually unstable, that was introduced in Perl 5.18?
Ubuntu 14.04 has Perl 5.18.2, while 16.04 has 5.22.1, and Debian stable
has 5.24.1, Debian unstable has 5.26.2.
Best regards,
Adam
--
"No more than that, but very powerful all the Adam Sjøgren
same; simple things are good." adsj at novozymes.com
More information about the Bioperl-l
mailing list