bioperl / bioperl-run

BioPerl wrappers
http://bioperl.org
Other
35 stars 17 forks source link

DB can't be found #37

Open ksteczk opened 8 years ago

ksteczk commented 8 years ago

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 $blastreport = $factory->psiblast( -query => $[0], -outfile => $_[1], -num_iterations => $setup{'it'}, -evalue => $setup{'evalue'}, -show_gis => 1, -num_threads => $setup{'processors'}, -num_alignments => 100000, -outpssm => $[0]->displayid().'.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

ksteczk commented 8 years ago

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 '.'