What command/invocation is used to generate NCBI 16SMicrobial blastdb

I'm looking for the exact invocation used to generate the 16SMicrobial database that you can download from here:

https://ftp.ncbi.nlm.nih.gov/blast/db/

I'm hoping to create the same type of blastdb with the same type of metadata with custom sequences.

Platform isn't an issue, but let's say on ubuntu 14.04 or 16.04.

I would like to replicate the creation of the database as closely as possible. The most important feature is the taxonomic information as can be seen here:

The databases on the FTP site contain taxonomic information for each sequence, include the identifier indices for lookups, and can be up to four times smaller than the FASTA. The original FASTA can be generated from the BLAST database using blastdbcmd

Creation of a blastdb using makeblastdb from a set of a fasta sequences is not an issue and can be achieved via:

makeblastdb -in <your_file.fasta> -dbtype nucl -out <database_name>


My question is specifically about the invocation NCBI uses to add the metadata that is present in the NCBI's 16SMicrobial blast database as I am keen to make sure I have replicated the process as closely as possible.

• What properties, specifically? – terdon Jun 19 '17 at 12:14
• Most crucially the taxonomic information, but I would like to replicate this creation of this database as closely as possible. – amblina Jun 19 '17 at 15:34

Running blastdbcmd -db foo -info provides a little information but I haven't seen anything which will report exactly how a blastdb was created.

A blastdb readme suggests that only the parse_seqids option has been added to the standard parameters.

For those from NCBI, the following makeblastdb commands are recommended:

• For nucleotide fasta file: makeblastdb -in input_db -dbtype nucl -parse_seqids
• For protein fasta file: makeblastdb -in input_db -dbtype prot -parse_seqids

The -parse_seqids requires NCBI fasta headers in the correct format (spec can be found here).

I don't know what specific properties you are considering. As far as I know, that's just a normal blast database, like any other. These are produced using the formatdb command which is part of the ncbi-blast software. You haven't specified what system you are using so I can't help you find and install it, but the command will be something like:

formatdb -p F -i yourSeqs.fasta -n yourDBName

• formatdb : the command
• -p F : protein: false. This is needed to make databases of nucleotide sequences.
• -i yourSeqs.fasta : your input file with all your sequences in fasta format.
• -n yourDBName : the name (choose whatever you like) for your database.

You can then use yourDBName as a database to blast against. The above assumes yuou are

• I would recommend using the newest ncbi-blast+ suite instead of the (now deprecated?) legacy-blast. In that cases formatdb would become makeblastdb, with slightly different arguments. – mgalardini Jun 19 '17 at 15:38
• @mgalardini that sounds very reasonable. I'm afraid I'm showing my age. This is the only one I've ever used but I last did so more than 10 years ago now. Please post an answer with this new tool you mention. I'm sure it's the Right Way© to go today. – terdon Jun 19 '17 at 15:43
• @terdon - whatever works I say ;). Thanks for the help, I've updated the question to make it (hopefully) more clear. I am specifically looking to add metadata to a blastdb and looking for a reference or similar for what metadata is added to the 16SMicrobial database. – amblina Jun 19 '17 at 16:10

I am not sure whether you are looking for how to produce taxonomy file or rep_set file (qiime reference file types). But you can produce fasta file (rep_Set) like that:

\$blastdbcmd -db 16SMicrobial/16SMicrobial -outfmt '%f' -entry 'all' > 16SMicrobial.fasta


Then you can create QIIME-compatible id_to_tax maps with this code: https://github.com/mtruglio/QIIME_utilities/blob/master/id_to_tax_mapmaker.sh

Hope this helps.