[Bioperl-l] Windows BLAST problems under Cygwin

Brian Osborne brian_osborne at cognia.com
Fri Apr 29 10:25:28 EDT 2005


Paul, 

This is from the INSTALL.WIN file:

Directory for temporary files
=============================

Set the environmental variable TMPDIR, programs like BLAST and
clustalw need a place to create temporary files. E.g.:

setenv TMPDIR e:/cygwin/tmp     # csh, tcsh
export TMPDIR=e:/cygwin/tmp     # sh, bash

Note that this is not the syntax that Cygwin understands, which would
be something like "/cygdrive/e/cygwin/tmp", but this is the syntax
that a Perl module expects on Windows.

If this variable is not set correctly you'll see errors like this
when you run Bio::Tools::Run::StandAloneBlast:

------------- EXCEPTION: Bio::Root::Exception -------------
MSG: Could not open /tmp/gXkwEbrL0a: No such file or directory
STACK: Error::throw


Brian O.


-----Original Message-----
From: bioperl-l-bounces at portal.open-bio.org
[mailto:bioperl-l-bounces at portal.open-bio.org]On Behalf Of Jason Stajich
Sent: Friday, April 29, 2005 10:05 AM
To: Paul Cantalupo
Cc: bioperl-l at bioperl.org
Subject: Re: [Bioperl-l] Windows BLAST problems under Cygwin


blast may have crashed because you didn't set the BLASTDIR - notice 
your path to the ecoli db is /ecoli.nt which is probably incorrect.

You can vary which dir it uses for tempfiles by setting TEMPDIR 
environment variable.
--
Jason Stajich
jason.stajich at duke.edu
http://www.duke.edu/~jes12/

On Apr 29, 2005, at 9:25 AM, Paul Cantalupo wrote:

> Hello,
>
> I am running BioPerl 1.4 on Windows 2000 under Cygwin (therefore, I 
> use Perl that comes with Cygwin; not Windows Perl). I am trying to run 
> a standalone blast. I installed the Windows version of BLAST as 
> recommended by the BioPerl installation instructions. My script (see 
> localblast.pl below) takes an input sequence file (see test.fa below) 
> and performs a blastp. By running the script with the following 
> command line, I get the this error:
>
> $ localblast.pl test.fa
> [NULL_Caption] FATAL ERROR: blast: Unable to open input file 
> /tmp/4lkjmTjRio
>
> ------------- EXCEPTION  -------------
> MSG: blastall call crashed: 256 /usr/local/blast/blastall -p  blastp  
> -d  "/ecoli.nt"  -i
> /tmp/4lkjmTjRio  -o  /tmp/llctIvZlC6
>
> STACK Bio::Tools::Run::StandAloneBlast::_runblast 
> /usr/lib/perl5/site_perl/5.8/Bio/Tools/Ru
> n/StandAloneBlast.pm:732
> STACK Bio::Tools::Run::StandAloneBlast::_generic_local_blast 
> /usr/lib/perl5/site_perl/5.8/B
> io/Tools/Run/StandAloneBlast.pm:680
> STACK Bio::Tools::Run::StandAloneBlast::blastall 
> /usr/lib/perl5/site_perl/5.8/Bio/Tools/Run
> /StandAloneBlast.pm:536
> STACK toplevel ./localblast.pl:17
>
> --------------------------------------
>
>
> Notice that blast is unable to open the input file /tmp/4lkjmTjRio 
> (which the library StandAloneBlast created). Next, I tried to run 
> blastall directly from the commandline, with a file in the /tmp 
> directory but it gave me the same error: 'unable to open input file'. 
> But blastall does execute properly I use an input file that is in the 
> current directory (using a relative path name in the -i option). But 
> if I set the -i option to any absolute reference for a file like 
> /home/lupey/fasta.fa, it fails and the error is the same: 'Unable to 
> open input file'.
>
> So, why does BioPerl suggest using the Windows version of Blast if it 
> can't open files using absolute references to files especially when 
> the StandAloneBlast library places the inputfile in the /tmp 
> directory? What solution can I employ to fix this?
>
> Thank you,
>
> Paul
>
>
>
> #localblast.pl
>
> #!/usr/bin/perl
>
> use strict;
> use Bio::SeqIO;
> use Bio::Tools::Run::StandAloneBlast;
>
> my $Seq_in = Bio::SeqIO->new (-file => $ARGV[0], -format => 'fasta');
> my $query = $Seq_in->next_seq();
>
> my $factory = Bio::Tools::Run::StandAloneBlast->new('program'  => 
> 'blastp',
>                                                  'database' => 
> 'ecoli.nt',
>                                                  _READMETHOD => "Blast"
>                                                  );
> my $blast_report = $factory->blastall($query);
> my $result = $blast_report->next_result;
>
> while( my $hit = $result->next_hit()) {
>    print "\thit name: ", $hit->name(), " significance: ", 
> $hit->significance(), "\n";}
>
>
>
> test.fa:
> >Test
> AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC
> TTCTGAACTGGTTACCTGCCGTGAGTAAATTAAAATTTTATTGACTTAGGTCACTAAATACTTTAACCAA
> TATAGGCATAGCGCACAGACAGATAAAAATTACAGAGTACACAACATCCATGAAACGCATTAGCACCACC
> ATTACCACCACCATCACCATTACCACAGGTAACGGTGCGGGCTGACGCGTACAGGAAACACAGAAAAAAG
> CCCGCACCTGACAGTGCGGGCTTTTTTTTTCGACCAAAGGTAACGAGGTAACAACCATGCGAGTGTTGAA
> GTTCGGCGGTACATCAGTGGCAAATGCAGAACGTTTTCTGCGTGTTGCCGATATTCTGGAAAGCAATGCC
> AGGCAGGGGCAGGTGGCCACCGTCCTCTCTGCCCCCGCCAAAATCACCAACCACCTGGTGGCGATGATTG
> AAAAAACCATTAGCGGCCAGGATGCTTTACCCAATATCAGCGATGCCGAACGTATTTTTGCCGAACTTTT
>
>
>
>
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at portal.open-bio.org
> http://portal.open-bio.org/mailman/listinfo/bioperl-l
>

_______________________________________________
Bioperl-l mailing list
Bioperl-l at portal.open-bio.org
http://portal.open-bio.org/mailman/listinfo/bioperl-l





More information about the Bioperl-l mailing list