/ / Biopython lokalny błąd bazy danych BLAST - python, baza danych, ścieżka, biopython, blast

Błąd bazy danych lokalnego biopythona BLAST - python, baza danych, ścieżka, biopython, blast

Próbuję uruchomić blastx lokalnie z bazą danych "nr" przy użyciu narzędzia NcbiblastxCommandline Biopythona, ale zawsze otrzymuję następujący błąd dotyczący ścieżki wyszukiwania bazy danych białek:

>>> 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::]"

Nie jestem pewien, jak zmienić ścieżkę, aby wskazywała na pobraną bazę danych nr, ale pomyślałem, że wskazałem ją poprawnie, ponieważ mogę uruchomić ten kod z wiersza poleceń bez żadnych problemów:

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

Powyższy kod wiersza polecenia tworzy plik xml wyników wybuchu, tak jak bym się spodziewał.

Jakakolwiek pomoc w rozwiązaniu tego problemu za pomocą narzędzi wiersza poleceń Biopython NCBI byłaby bardzo mile widziana!

Odpowiedzi:

5 dla odpowiedzi № 1

Twój nr zmienna kończy się nr.pal. nr (bez .pal) powinno być dobrze. Jeśli usuwasz pal nie działa. Możesz spróbować skonfigurować .ncbirc plik w katalogu domowym, który ma to:

[BLAST]
BLASTDB=/directory/path/to/blast/databases

W zasadzie ustawia zmienną środowiskową dla wyszukiwania bazy danych blast. Następnie możesz po prostu użyć nr (bez wymaganej ścieżki) w twoim nr zmienna.

Przy okazji, możesz sprawdzić linię poleceń skonstruowaną przez NcbiblastxCommandline za pomocą print blastx_cline. Domyślam się, że to nie to samo, co wpisane ręcznie.

EDYCJA: Sprawdź http://www.biostars.org/ w przypadku pytań specyficznych dla bioinformatyki podobnych do formatu StackExchange.


1 dla odpowiedzi nr 2

Wydaje się, że polecenie, które działa, wyświetla inną bazę danych niż ta, która jest wywoływana z próbki kodu:

# In the code
-db /Users/Priya/Documents/Python/ncbi-blast-2.2.26+/bin/nr.pal

vs.

# From the command line
-db /Users/priya/Documents/Python/ncbi-blast-2.2.26+/bin/nr

Spróbuj zmienić przypisanie tej ścieżki do nr w linii 2, tak aby odzwierciedlała ścieżkę bez „.pal” używaną z linii poleceń.