assign_taxonomy.py using BLAST+

57 views
Skip to first unread message

Julien Chamberland

unread,
Aug 21, 2016, 11:13:13 AM8/21/16
to Qiime 1 Forum
Hello, 

My question is related to the following post : https://groups.google.com/forum/#!topic/qiime-forum/da-MjBKUqTk 

I'm trying to run assign_taxonomy.py with Blas, but I get this error message :

Traceback (most recent call last):
  File "/home/julcham1/qiime/bin/assign_taxonomy.py", line 417, in <module>
    main()
  File "/home/julcham1/qiime/bin/assign_taxonomy.py", line 394, in main
    log_path=log_path)
  File "/home/julcham1/qiime/lib/python2.7/site-packages/qiime/assign_taxonomy.py", line 500, in __call__
    abspath(reference_seqs_path), output_dir=blast_db_dir)
  File "/home/julcham1/qiime/lib/python2.7/site-packages/bfillings/formatdb.py", line 116, in build_blast_db_from_fasta_path
    fdb = FormatDb(WorkingDir=output_dir, HALT_EXEC=HALT_EXEC)
  File "/home/julcham1/qiime/lib/python2.7/site-packages/burrito/util.py", line 201, in __init__
    self._error_on_missing_application(params)
  File "/home/julcham1/qiime/lib/python2.7/site-packages/burrito/util.py", line 468, in _error_on_missing_application
    "Is it in your path?" % command)
burrito.util.ApplicationNotFoundError: Cannot find formatdb. Is it installed? Is it in your path?

I think my problem is that I'm using BLAST+ instead of blast. In BLAST+, the commands blastall and formatdb have been replaced by blastn and makeblastdb. 

Is there a way to tell to Qiime to use blastn and makeblastdb instead of blastall and formatdb ? Is it possible to work with BLAST+ with Qiime ?

Thanks,

Julien

Colin Brislawn

unread,
Aug 21, 2016, 1:13:47 PM8/21/16
to Qiime 1 Forum
Hello Julien,

I think my problem is that I'm using BLAST+ instead of blast. In BLAST+, the commands blastall and formatdb have been replaced by blastn and makeblastdb. 
Yep, that would cause this problem. Great diagnosis! The fact the qiime uses an old version of blast is a known problem.

Is there a way to tell to Qiime to use blastn and makeblastdb instead of blastall and formatdb ?
For the time being, the best workaround is to install legacy-blast, which comes with blastall and formatdb. You can get legacy-blast from the NCBI site, or as a conda package on bioconda: 

Let me know if you are able to install legacy-blast. 
Colin


PS You probably already know this, but Qiime is an open source software package, and the devs accept pull requests from members of the community. In this situation, this is cool because if you get the BLAST+ package working with qiime, you could contribute your code back to the qiime community for everyone could use BLAST+ too: 

Julien Chamberland

unread,
Aug 22, 2016, 1:09:35 PM8/22/16
to Qiime 1 Forum
Thank you Colin for your reply. 

Now it works perfectly using an old version of Blast.

If I had the skills I would definitely contribute to improve Qiime with a package enabling the use of Blast+ ! ;-)

Julien

Colin Brislawn

unread,
Aug 22, 2016, 2:55:11 PM8/22/16
to Qiime 1 Forum
Glad you got it working! 

Colin

Reply all
Reply to author
Forward
0 new messages