Skip Menu |

This queue is for tickets about the bioperl-run CPAN distribution.

Report information
The Basics
Id: 73061
Status: resolved
Priority: 0/
Queue: bioperl-run

People
Owner: Nobody in particular
Requestors: marek.j.piatek [...] gmail.com
Cc:
AdminCc:

Bug Information
Severity: Critical
Broken in: 1.006900
Fixed in: (no value)



Subject: Bio::Factory::EMBOSS dies on OSX when checking for operating system
BioPerl-Run-1.006900 perl 5.14.2 Mac OS X 10.6.8 Running a simple script using 'water' program from EMBOSS dies when trying to execute the program. -------code--------- #!/usr/bin/perl -w use strict; use Bio::Factory::EMBOSS; $|++; my $f = Bio::Factory::EMBOSS -> new(); my $charge = $f->program('water'); my %input = ( -asequence => 'asis:gatcgatcgatgcat', -bsequence => 'asis:cgatgcatgctactg', ); print "CHECK 1\n"; $charge->run(\%input); print "CHECK 2\n"; Show quoted text
--------end code------------------- Running above script I only see the first CHECK printed and no other messages. I never get the second check printed. After checking with Trace: -------code--------------- perl -d:Trace emboss_water.pl
>> emboss_water.pl:4: $|++; >> emboss_water.pl:6: my $f = Bio::Factory::EMBOSS -> new(); >> /Users/piatekm/src/bioperl-run/lib/Bio/Factory/EMBOSS.pm:116: my($class,@args) = @_; >> /Users/piatekm/src/bioperl-run/lib/Bio/Factory/EMBOSS.pm:117: my $self = $class->SUPER::new(@args); >> /Users/piatekm/src/bioperl-live/Bio/Root/Root.pm:253: my $class = shift; >> /Users/piatekm/src/bioperl-live/Bio/Root/Root.pm:254: my $self = {}; >> /Users/piatekm/src/bioperl-live/Bio/Root/Root.pm:255: bless $self, ref($class) || $class; >> /Users/piatekm/src/bioperl-live/Bio/Root/Root.pm:257: if(@_ > 1) { >> /Users/piatekm/src/bioperl-live/Bio/Root/Root.pm:265: return $self; >> /Users/piatekm/src/bioperl-run/lib/Bio/Factory/EMBOSS.pm:120: my($location) = >> /Users/piatekm/src/bioperl-live/Bio/Root/RootI.pm:405: shift; #discard self >> /Users/piatekm/src/bioperl-live/Bio/Root/RootI.pm:406: my $order = shift; >> /Users/piatekm/src/bioperl-live/Bio/Root/RootI.pm:408: return @_ unless $_[0] && $_[0] =~ /^\-/; >> /Users/piatekm/src/bioperl-run/lib/Bio/Factory/EMBOSS.pm:124: $self->{ '_programs' } = {}; >> /Users/piatekm/src/bioperl-run/lib/Bio/Factory/EMBOSS.pm:125: $self->{ '_programgroup' } = {}; >> /Users/piatekm/src/bioperl-run/lib/Bio/Factory/EMBOSS.pm:126: $self->{ '_groups' } = {}; >> /Users/piatekm/src/bioperl-run/lib/Bio/Factory/EMBOSS.pm:128: $self->location($location) if $location; >> /Users/piatekm/src/bioperl-run/lib/Bio/Factory/EMBOSS.pm:130: $self->_program_list; # retrieve info about available programs >> /Users/piatekm/src/bioperl-run/lib/Bio/Factory/EMBOSS.pm:257: my ($self) = @_; >> /Users/piatekm/src/bioperl-run/lib/Bio/Factory/EMBOSS.pm:258: if( $^O =~ /Mac/i ) { return; } >> /Users/piatekm/src/bioperl-run/lib/Bio/Factory/EMBOSS.pm:260: local * SAVERR; >> /Users/piatekm/src/bioperl-run/lib/Bio/Factory/EMBOSS.pm:260: local * SAVERR; >> /Users/piatekm/src/bioperl-run/lib/Bio/Factory/EMBOSS.pm:261: open SAVERR, ">&STDERR"; >> /Users/piatekm/src/bioperl-run/lib/Bio/Factory/EMBOSS.pm:262: open STDERR, ">/dev/null";
------end code---------- It looks like the last line executed from my code is when the 'factory' gets created. Then it goes into EMBOSS.pm. Looking into EMBOSS.pm at line 258 it looks like it does not return from _program_list subroutine? Marek
I'm not seeing this using the latest bioperl-run CPAN release (1.7.2), EMBOSS 6.6.0 from homebrew, on Mac OS X 10.12.6. Please reopen if this problem persists on your system. On Wed Dec 07 01:30:42 2011, piatekm wrote: Show quoted text
> BioPerl-Run-1.006900 > perl 5.14.2 > Mac OS X 10.6.8 > > Running a simple script using 'water' program from EMBOSS dies when > trying to execute the program. > > -------code--------- > #!/usr/bin/perl -w > use strict; > use Bio::Factory::EMBOSS; > $|++; > > my $f = Bio::Factory::EMBOSS -> new(); > my $charge = $f->program('water'); > > my %input = ( > -asequence => 'asis:gatcgatcgatgcat', > -bsequence => 'asis:cgatgcatgctactg', > ); > > print "CHECK 1\n"; > $charge->run(\%input); > print "CHECK 2\n"; > --------end code------------------- > > Running above script I only see the first CHECK printed and no other > messages. I never get the second check printed. > > After checking with Trace: > -------code--------------- > perl -d:Trace emboss_water.pl >
> >> emboss_water.pl:4: $|++; > >> emboss_water.pl:6: my $f = Bio::Factory::EMBOSS -> new(); > >> /Users/piatekm/src/bioperl-run/lib/Bio/Factory/EMBOSS.pm:116: > >> my($class,@args) = @_; > >> /Users/piatekm/src/bioperl-run/lib/Bio/Factory/EMBOSS.pm:117: my > >> $self = $class->SUPER::new(@args); > >> /Users/piatekm/src/bioperl-live/Bio/Root/Root.pm:253: my $class > >> = shift; > >> /Users/piatekm/src/bioperl-live/Bio/Root/Root.pm:254: my $self = > >> {}; > >> /Users/piatekm/src/bioperl-live/Bio/Root/Root.pm:255: bless > >> $self, ref($class) || $class; > >> /Users/piatekm/src/bioperl-live/Bio/Root/Root.pm:257: if(@_ > 1) > >> { > >> /Users/piatekm/src/bioperl-live/Bio/Root/Root.pm:265: return > >> $self; > >> /Users/piatekm/src/bioperl-run/lib/Bio/Factory/EMBOSS.pm:120: > >> my($location) = > >> /Users/piatekm/src/bioperl-live/Bio/Root/RootI.pm:405: shift; > >> #discard self > >> /Users/piatekm/src/bioperl-live/Bio/Root/RootI.pm:406: my $order > >> = shift; > >> /Users/piatekm/src/bioperl-live/Bio/Root/RootI.pm:408: return @_ > >> unless $_[0] && $_[0] =~ /^\-/; > >> /Users/piatekm/src/bioperl-run/lib/Bio/Factory/EMBOSS.pm:124: > >> $self->{ '_programs' } = {}; > >> /Users/piatekm/src/bioperl-run/lib/Bio/Factory/EMBOSS.pm:125: > >> $self->{ '_programgroup' } = {}; > >> /Users/piatekm/src/bioperl-run/lib/Bio/Factory/EMBOSS.pm:126: > >> $self->{ '_groups' } = {}; > >> /Users/piatekm/src/bioperl-run/lib/Bio/Factory/EMBOSS.pm:128: > >> $self->location($location) if $location; > >> /Users/piatekm/src/bioperl-run/lib/Bio/Factory/EMBOSS.pm:130: > >> $self->_program_list; # retrieve info about available programs > >> /Users/piatekm/src/bioperl-run/lib/Bio/Factory/EMBOSS.pm:257: my > >> ($self) = @_; > >> /Users/piatekm/src/bioperl-run/lib/Bio/Factory/EMBOSS.pm:258: > >> if( $^O =~ /Mac/i ) { return; } > >> /Users/piatekm/src/bioperl-run/lib/Bio/Factory/EMBOSS.pm:260: > >> local * SAVERR; > >> /Users/piatekm/src/bioperl-run/lib/Bio/Factory/EMBOSS.pm:260: > >> local * SAVERR; > >> /Users/piatekm/src/bioperl-run/lib/Bio/Factory/EMBOSS.pm:261: > >> open SAVERR, ">&STDERR"; > >> /Users/piatekm/src/bioperl-run/lib/Bio/Factory/EMBOSS.pm:262: > >> open STDERR, ">/dev/null";
> ------end code---------- > > It looks like the last line executed from my code is when the > 'factory' gets created. Then it goes into EMBOSS.pm. > Looking into EMBOSS.pm at line 258 it looks like it does not return > from _program_list subroutine? > > Marek