Biopython local BLAST database error
biopython, blast, database, path, python
Solution
Your `nr` variable ends in `nr.pal`. `nr` (without `.pal`) should be fine. If removing `pal` doesn't work. You can try setting up an `.ncbirc` file in your home directory which has this:
[BLAST]
BLASTDB=/directory/path/to/blast/databases
It basically sets up an environment variable for blast database lookups. Afterwards, you can simply use `nr` (no path required) in your `nr` variable.
By the way, you can check the command line constructed by `NcbiblastxCommandline` using `print blastx_cline`. My guess is it's not the same as the one you typed manually.
EDIT: Check out http://www.biostars.org/ for bioinformatics-specific questions similar to StackExchange's format.
Problem
I am trying to run blastx locally with the "nr" database using Biopython's NcbiblastxCommandline tool but I always get the following error regarding the protein database search path: ``` >>> from Bio.Blast.Applications import NcbiblastxCommandline >>> nr = "/Users/Priya/Documents/Python/ncbi-blast-2.2.26+/bin/nr.pal" >>> infile = "/Users/Priya/Documents/Python/Tutorials/opuntia.txt" >>> blastx = "/Users/Priya/Documents/Python/ncbi-blast-2.2.26+/bin/blastx" >>> outfile = "/Users/Priya/Documents/Python/Tutorials/opuntia_python_local.xml" >>> blastx_cline = NcbiblastxCommandline(blastx, query = infile, db = nr, evalue = 0.001, out = outfile) >>> stdout, stderr = blastx_cline() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Bio/Application/__init__.py", line 443, in __call__ stdout_str, stderr_str) Bio.Application.ApplicationError: Command '/Users/Priya/Documents/Python/ncbi-blast-2.2.26+/bin/blastx -out /Users/Priya/Documents/Python/Tutorials/opuntia_python_local.xml -query /Users/Priya/Documents/Python/Tutorials/opuntia.txt -db /Users/Priya/Documents/Python/ncbi-blast-2.2.26+/bin/nr.pal -evalue 0.001' returned non-zero exit status 2, 'BLAST Database error: No alias or index file found for protein database [/Users/Priya/Documents/Python/ncbi-blast-2.2.26+/bin/nr.pal] in search path [/Users/Priya::]' ``` I am not sure how to change the path to point to the nr database that I downloaded, but I thought I pointed to it correctly since I can run this code from the command line without any problems: ``` Priyas-iMac:~ Priya$ /Users/priya/Documents/Python/ncbi-blast-2.2.26+/bin/blastx -query /Users/priya/Documents/Python/Tutorials/opuntia.txt -db /Users/priya/Documents/Python/ncbi-blast-2.2.26+/bin/nr -out /Users/priya/Documents/Python/Tutorials/opuntia_local.xml -evalue 0.001 -outfmt 5 ``` The above command line code creates an xml file of the blast results as I would expect. Any help solving this problem with the Biopython NCBI command line tools would be greatly appreciated!