This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Blast On A Custom Galaxy Server Is Unable To Find Database

Hello,

I am currently trying to use megablast on a Galaxy server. I use a custom db that I prepared with makeblastdb -in some_sequences.fasta -dbtype nucl -out some_sequences. I put the path to my database in galaxy-dist/tool-data/blastdb.loc, I restarted my Galaxy server, but when I want to perform a megablast, the following error is raised ;

Cannot execute megaablast. BLAST Database error: No alias or index file found for nucleotide database [/home/john/databases/database_name/some_sequences] in search path [/home/john/galaxy-dist/database/job_working_directory/000/119::]

what have I done wrong?

thanks

galaxy blast+

This is odd. For some reason BLAST is not recognizing "/home/john/databases/database_name/some_sequences" as a full path to a database, but instead as a database string name. Could you dump here the line in your blastdb.loc? Could you check if you are correctly using TABs in that file?

here is the content of my blastdb.loc ;

SSUref_111_tax_silva SSUred_11_tax_silva /home/john/databases/SSUref_111_tax_silva/SSURef_111_tax_silva.fasta

I checked that the fields are tab-delimited in my blastdb.loc

the same error is raised even if I try blast from command-line

OK, If this is a nucleotide database do you have these files in the same directory?: SSURef_111_tax_silva.fasta.nhr SSURef_111_tax_silva.fasta.nin SSURef_111_tax_silva.fasta.nsq

And, what error do you get when you run blast manually? Could share here the error and the command line invocation you are using.

In the directory of my database, I have files with the following extensions : .nhr, .nin, .nsd, .nsi, .nsq

In blastdb.loc, the file name I provided is the root of all these files.

When I run blastn -db databases/SSUref_111_tax_silva/SSURef_111_tax_silva.fasta -query some_random_sequences.fasta the output is ok (I mean, the blastn command obviously works)

I though you said above the same error is raised in your environment if you tried to run blast from the command-line.

Sorry I can't be of much help.

In blastdb.loc you used an absolute path (which is sensible), /home/john/databases/SSUref_111_tax_silva/SSURef_111_tax_silva.fasta

Here you used a relative path, -db databases/SSUref_111_tax_silva/SSURef_111_tax_silva.fasta so presumably you were in the directory /home/john/ when you did this? Try using the exact full absolute path copied from blastdb.loc instead?

1 answer

Tools are run in temporary directories. So you will need to specify a full path to your database.

Alternatively make sure the wrapper copies/links that database to the temporary location that contains the intermediary run files.

The paths I provided to Galaxy are full paths. I checked the location of the temporary files ; Galaxy looks for an index file in the directory /home/john/galaxy-dist/database/job_working_directory/000:: This directory is empty after the execution of the workflow (but I guess this is normal since it store temporary files)

I guess the problem is there, but I don't know how to fix it.

Yes, give absolute (full) paths to the database location in blastedb.loc

Log in to answer this question.