[Bioperl-l] Trouble in executing StandAloneBlast on Win2000

Takeshi Sasayama sasayama at lmi.hitachi-sk.co.jp
Thu Feb 20 09:44:09 EST 2003


Hi, all


I'm a newbie in Bioperl and I have a problem in executing Blast search on
Windows 2000 using StandAloneBlast. During about 30,000 Blast search, the
search had slowed down gradually as the search went on.

What I am doing is to execute blastn search for about 30,000 times in a
loop. The query file is one file of FASTA format (including about 30,000
sequences of all 50mer length) and the database contains 27,000 entries.
Each search result is saved in a directory as a file named with its sequence
name.

At first I ran the program on Linux machine (Red Hat Linux 7.2, PenIII
500MHz, 128MB RAM, perl v5.6.0, Bioperl-1.0.2, NCBI-Blast2.2.5(linux
binary)) and finished successfully in 6 hours. After that I modified the
same program (only PATH handling) and ran on Windows machine (Windows 2000
professional(SP3), Pentium4 2.53GHz, 1024MB RAM, ActivePerl v5.6.1(build
628), Bioperl-1.0.2, NCBI-Blast2.2.5(windows binary)). This was reproducible
on the same PC and on another Win 2000 PC. I thought that some kind of
resource was exhausted but the memory was left free enough(800MB). I don't
know what causes this trouble .

Does anyone have similar experience?
Any comments, suggestions, ideas are very much welcome. The script that I
wrote is essentially below.

Thanks in advance!
Takeshi Sasayama

###### Code starts here ######
BEGIN {
$ENV{BLASTDIR} = 'C:\\blast';
$ENV{BLASTDATADIR} = 'C:\\db\\Ensembl\\10.30';
}

use Bio::Tools::Run::StandAloneBlast;
use Bio::Seq;
use Bio::SeqIO;
use strict;

my $database_file = 'Homo_sapiens.cdna.fa';
my $queryfile = queryfile.fa';

# parameters
my $expect_value = 1;
my $filter_query_sequence = 'F';
my $one_line_description = 100;
my $alignments = 100;
my $strands = 1;
my @params = ('program' => 'blastn', 'database' => $database_file);
my $progress_interval = 100;

# create factory object and set parameters
my $factory = Bio::Tools::Run::StandAloneBlast->new(@params);
$factory->e($expect_value);
$factory->F($filter_query_sequence);
$factory->v($one_line_description);
$factory->b($alignments);
$factory->S($strands);

# get query
my ($in, $queryseq, $blast_report, $outfile);
$in = Bio::SeqIO->new( -file => $queryfile, -format => 'Fasta');
while ($queryseq = $in->next_seq()) {
 $outfile = 'outfiledir'."\\".$queryseq->id;
 $factory->outfile($outfile);
 $blast_report = $factory->blastall($queryseq);
}
###### Code ends here ######



More information about the Bioperl-l mailing list