This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Restricting database by taxa in local blast searches

Hello, i am trying to do a blastx search locally but only for plants. How do i restrict it only searching plants? -taxids ? but how do find i all taxids for plants? or for whatever someone needs to do a search ? thanks

rna-seq

which version of blast are you using? (== can you already make use of the new dbv5 format of blast DBs?)

the version is 2.8.1+ (no idea)

Hi,

I run the Blastx aginst nr using this commend line " blastx -db blastdb_Nr/Blast_Nr -query Query -taxidlist 33090.txids -evalue 1.0e-5 -num_threads 23 -word_size 3 -max_target_seqs 1 -max_hsps 1 -outfmt 6 -out res_blastx I got this error that " Taxonomy ID(s) not found. This could be because the ID(s) provided are not at or below the species level ". Actually, I got the Taxonomy ID(s) using " get_species_taxids.sh -t 33090 > 33090.txids ".

I am so thankful if you could help me to solve this problem.

Mina

Hi m.s_tabatabaei, try to avoid cross-posting.

1 answer

I got the following answer from NCBI for how to do this with new v5 blast indexes. You may need to upgrade to latest blast+ if v.2.8.1 is not compatible with v5 indexes.

BLAST+ package includes a script that allows you to extract taxid of interest (e.g. for bacteria below, use taxID you are interested in).

$ sh get_species_taxids.sh -t 2 > bacterial.ids

This dumps all the taxids under taxid 2 into the file bacterial.ids. You can then run blast to limit the search to those id's:

$ blastn -db nt_v5 -query test.txt -out out.put -taxidlist bacterial.ids

thanks a lot for your input. Just wanted to ask, because there are these taxid available: Archaea, Bacteria, Eukaryota, Viruses, Other, Unclassified. How can i specify plants ?

Viridiplantae (green plants, taxid 33090) is the top of the hierarchy. Narrow down further as needed.

so i do this ?

sh get_species_taxids.sh -t 33090 ?

Yes. Embryophyta (taxid: 3193) are land plants (if you want to narrow down further).

thank you for your input! Much appreciated

-db database_name = the folder i downloaded from ncbi database ( which i downloaded from here = update_blastdb.pl --decompress nr [*] ) ?

-db should point to the basename (nr) of the database you are going to search against.

i did

-db '../ncbi_blast_database/nr'

and

-taxidlist '.../ncbi-blast-2.10.0+/bin/plant.ids'

hope this works

i got nr00 up to nr38, all files about ~200gb. I need all right? i mean when i use -db ../ncbi_blast_database/nr , it searches all? but with -taxidlist it searches only this taxa within all nr files?

Correct. You need all nr files. With -taxidlist blast should report only the hits you are interested in.

using as database the uniprot_sprot.fasta, can i use the -taxidlist plants.ids ( sh get_species_taxids.sh -t 33090 > plants.ids ) ? or it doesnt make any sense? And if i cant, how can i do that with the uniprot_sprot database?

Yes that should work. You mean with swissprot DB correct? That is all NCBI has.

Log in to answer this question.