[Bioperl-l] bioperl and emboss on windows
Rohit Ghai
Rohit.Ghai at mikrobio.med.uni-giessen.de
Mon Nov 5 11:36:16 UTC 2007
Dear all, thanks for all the different inputs on this topic, I was able
to run emboss applications on windows (vista), but with the following
workaround.
Chris suggested to remove EMBOSSwin and get another version. This I did.
Scott suggested setting all the variables within the program. This I
also tried, but actually these were already available to the program so this was also
not the problem. The following line...
my $fuzznuc = $f->program('fuzznuc')
doesn't return a Bio::Tools::Run::EMBOSSApplication object. but using
Bio::Tools::Run::EMBOSSApplication directly seems to work. It doesn't
have any path issues. What is also curious is that $f->version returns the
correct version of emboss running (no path problems here), and it looks
like it runs the command "embossversion -auto" to get this information. If it
can get at this command, its a bit peculiar why it cannot get the other
programs. Or am I missing something here ?
Please take a look at the code, I have commented within this...
-Rohit
use Bio::Factory::EMBOSS;
use Data::Dumper;
use Bio::Tools::Run::EMBOSSApplication;
my $infile = "test.fasta";
my $motif = "AGGAGG";
my $outfile = "test.out";
my $f = Bio::Factory::EMBOSS->new();
# get an EMBOSS application object from the factory
print Dumper $f;
print "location=",$f->location,"\n"; #returns local
print "version=", $f->version,"\n"; # this returns the correct version 5.0 (uses embossversion -auto internally, and seems to know where it is)
print "info=", $f->program_info('fuzznuc'),"\n"; #returns nothing
print "list=",$f->_program_list,"\n"; #returns nothing
#
# however, my $fuzznuc = $f->program('fuzznuc'); or with path / or \\ or with exe suffix doesn't work
# $fuzznuc->executable('C:/mEMBOSS/fuzznuc'); # doesnt work
# the problem is that it does not return a Bio::Tools::Run::EMBOSSApplication object.
#
#
#
# however, creating a EMBOSSApplication object directly makes it possible to run the program
#
my $application = Bio::Tools::Run::EMBOSSApplication->new();
$application->name('fuzznuc');
print Dumper $application;
$application->run(
{ -sequence => $infile,
-pattern => $motif,
-outfile => $outfile
});
print "Done\n";
exit;
More information about the Bioperl-l
mailing list