[Bioperl-l] Finding all human paralogues

Yuval Itan y.itan at ucl.ac.uk
Fri Mar 17 15:41:04 UTC 2006


Dear Torsten,

Many thanks for your good help. I have followed your advice, and updated the 
path to the fasta file, both in BLASTDB, BLASTDATADIR and in the code. But 
even now it doesn't work. The directory of my fasta file 
is: /home/Yuval/FastaDBs and the one of the Blast binaries 
is: /home/Yuval/Applications/blast/bin

And I keep getting the same error message:

[blastall] WARNING: test: Unable to open Homo_sapiens.NCBI354.feb.pep.fa.pin

------------- EXCEPTION  -------------
MSG: blastall call crashed: 256 /home/Yuval/Applications/blast/bin/blastall 
-pblastp  -d  /home/Yuval/FastaDBs/Homo_sapiens.NCBI354.feb.pep.fa  
-i  /tmp/98fwqIYOMi  -o  /tmp/vlRcHscPcH

STACK 
Bio::Tools::Run::StandAloneBlast::_runblast /home/Yuval/bioperl-live/Bio/Tools/Run/StandAloneBlast.pm:633
STACK 
Bio::Tools::Run::StandAloneBlast::_generic_local_blast /home/Yuval/bioperl-live/Bio/Tools/Run/StandAloneBlast.pm:602
STACK 
Bio::Tools::Run::StandAloneBlast::blastall /home/Yuval/bioperl-live/Bio/Tools/Run/StandAloneBlast.pm:489
STACK toplevel test6:74

--------------------------------------

The programme runs well until the last line (the 4th here) which causes the 
crash:

my @params = (program  => 'blastp', database => 
'/home/Yuval/FastaDBs/Homo_sapiens.NCBI354.feb.pep.fa');
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;

Many thanks for any clue. I truly appreciate your time and effort.

Yuval

On Thursday 16 March 2006 20:37, you wrote:
> Yuval,
>
> > 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'
> program.
>
> > ------------- 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.



More information about the Bioperl-l mailing list