[Bioperl-l] Finding all human paralogues

Torsten Seemann torsten.seemann at infotech.monash.edu.au
Thu Mar 16 15:37:35 EST 2006


> I have followed your suggestions, and would be truly grateful for one more 
> hint.
> I have updated the $PATH to include the directory of my Blast binaries. I have 
> also made a .ncbirc file which includes the path to the fasta file I have 
> downloaded (all human peptides):
> [NCBI]
> Data="/home/Yuval/Applications/blast/data/"

This directory is "is the path to the location of the Standalone BLAST
'data' subdirectory" ie. the one that comes with the Blast binaries and
has the BLOSUMxx and PAMxx files. It is NOT (normallly) the directory to
put your fasta files in. 

> But when I am trying to run one sequence against the human peptides fasta 
> file, I get the following error message:
> linux:/home/Yuval # perl test5
> [blastall] WARNING: test: Unable to open Homo_sapiens.NCBI354.feb.pep.fa.pin

It can't find the blast indices for  Homo_sapiens.NCBI354.feb.pep.fa
The .pin file is one of the index files created by the 'formatdb'

> ------------- EXCEPTION  -------------
> MSG: blastall call crashed: 256 /home/Yuval/Applications/blast/bin/blastall -p  
> blastp  -d  /Homo_sapiens.NCBI354.feb.pep.fa  -i  /tmp/nvkaUCJjDq  
> -o  /tmp/klP53IHZKj

The "-d /Homo_sapiens.NCBI354.feb.pep.fa" means it is looking in your
computer's root directory "/" for the .pin (and other index) files.

> I would be grateful for any hint. These are the relevant lines of the code:
> my $i = 0; #for the first sequence in human database
> my $seq1 = $human_genes->[$i]->get_longest_peptide_Member()->sequence;
> my @params = (program  => 'blastp', database => 
> 'Homo_sapiens.NCBI354.feb.pep.fa', _READMETHOD => 'SearchIO' );

For some reason it is looking in "/" for your index files. Do you have
environmental variable $BLASTDB or $BLASTDATADIR set to "/" ?

Three solutions:
1. Set "database => /full/path/to/Homo.pep.fa"
2. Set BLASTDB to /full/path/to
3. Set BLASTDATADIR to /full/path/to

Options 2. and 3. can be done in your shell/environment or set in a
Perl BEGIN block. ie. BEGIN { $ENV{BLASTDB} = '/......'; }

Also, please remove the _READMETHOD, you don't need it. SearchIO is the
defauly and used by nearly everybody.

> my $blast_obj = Bio::Tools::Run::StandAloneBlast->new(@params);
> my $seq_obj = Bio::Seq->new(-id  =>"test query", -seq =>$seq1);
> my $report_obj = $blast_obj->blastall($seq_obj);
> my $result_obj = $report_obj->next_result;
> print $result_obj->num_hits;

Rest looks ok.

Torsten Seemann <torsten.seemann at infotech.monash.edu.au>
Victorian Bioinformatics Consortium

More information about the Bioperl-l mailing list