[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