bioperl/bioperl-run

DB can't be found

Opened this issue · 1 comments

I have a problem with providing psiblast wrapper with local database. Am I doing anything wrong here?

When trying to execute:

my $factory = Bio::Tools::Run::StandAloneBlastPlus->new(-db_name => '/db/SEQRES/pdb90.fa');
return $blast_report = $factory->psiblast(
-query => $[0],
-outfile => $
[1],
-num_iterations => $setup{'it'},
-evalue => $setup{'evalue'},
-show_gis => 1,
-num_threads => $setup{'processors'},
-num_alignments => 100000,
-out_pssm => $[0]->display_id().'.chk',
-out => $
[1]
);

I get:

MSG: DB 'pdb90' can't be found. To create, set -create => 1.
STACK: Error::throw
STACK: Bio::Root::Root::throw /usr/local/share/perl/5.18.2/Bio/Root/Root.pm:449
STACK: Bio::Tools::Run::StandAloneBlastPlus::new /usr/share/perl5/Bio/Tools/Run/StandAloneBlastPlus.pm:587
STACK: main::blastMe /home/users/seq2+.pl:298
STACK: /home/users/seq2+.pl:93

line 298 in my script is the first cited above.

Thanks for any suggestions!
Kamil

OK, I digged a little bit into the code.

The db_name cannot have extensions - my dbase had one, so I had to modify the StandAloneBlastPlus.pm file to make it work by commenting-out the line removing extension from the path. Worked.

The second problem, that occurs is that the bioperl tries to write temporaty file to the db_dir - that fails for the lab infrastuctures storing the databases in central, read-only directories. Changed in BlastMethods.pm DIR from $self->db_dir to '.'