Please explain "No blast hit"

714 views
Skip to first unread message

Gaddy Bergmann

unread,
Jul 31, 2012, 8:01:41 PM7/31/12
to qiime...@googlegroups.com
Hello, I was hoping you could explain exactly what "No blast hit" means. I realize what a BLAST match is, but I am a bit confused about what "No blast means" in the context of an OTU table.

When I generate an OTU table, the first column has the heading "#OTU ID", and the first cell in each row is an OTU number. In my case, each of these OTU numbers is the same as a Sample ID number for a plant from a reference database.

For most rows, the name of the plant appears in the "ConsensusLineage" column. However, a few of these rows are labeled "No blast hit". Now, I could understand having no match, and assigning a new OTU number. However, some of these "No blast hit" rows have been assigned the same OTU numbers as real samples from the reference database. Does this mean that, what is called "No blast hit" is in fact a plant with that OTU number? Or is it something else? If it actually is that plant, then why doesn't QIIME just give it that name? Could it be a glitch in QIIME, or a real assignment I don't understand? Please explain if you would.

Thank you,
Gaddy

Greg Caporaso

unread,
Aug 1, 2012, 8:22:49 AM8/1/12
to qiime...@googlegroups.com
Hey Gaddy,
This means that when BLAST was run to perform taxonomy assignment,
there was no hit in the database that met the minimum length, e-value,
and percent id requirements. In other words, QIIME isn't able to make
a taxonomic assignment using BLAST for the OTU.

Greg
> --
>
>
>

Gaddy Bergmann

unread,
Aug 1, 2012, 10:11:45 AM8/1/12
to qiime...@googlegroups.com
Hi Greg,

Ah ... so you mean, it was assigned that OTU number because it is indeed the plant with that Sample ID, but because the sequence does not meet the minimum requirements for quality, QIIME refrains from labeling it with the taxonomic name, and simply calls it "No blast hit" instead. Do I have that right?

Thanks,
Gaddy


On Wednesday, August 1, 2012 6:22:49 AM UTC-6, Greg Caporaso wrote:
Hey Gaddy,
This means that when BLAST was run to perform taxonomy assignment,
there was no hit in the database that met the minimum length, e-value,
and percent id requirements. In other words, QIIME isn't able to make
a taxonomic assignment using BLAST for the OTU.

Greg

Greg Caporaso

unread,
Aug 1, 2012, 11:16:39 AM8/1/12
to qiime...@googlegroups.com
Not exactly. The OTU assignment is independent of the taxonomy
assignment, unless you're doing closed reference OTU picking. Which
workflow did you use to generate this OTU table? Knowing that will
help me explain.

Greg
> --
>
>
>

Gaddy Bergmann

unread,
Aug 1, 2012, 9:22:17 PM8/1/12
to qiime...@googlegroups.com
Hmm ... I'm not entirely sure what closed-reference OTU picking is. Sequences came from 454. The plant reference library was created in QIIME. Then, all fecal sample sequences were blasted against that reference library, in which each OTU number was the same as the sample ID number (e.g. Sample #106 was manually assigned OTU # 106, and so on). This was so that we could confirm that QIIME indeed referred to these sequences (and it did). The assigned taxonomy came from these plants as well, with each plant having its own sample ID number and consensus lineage.

Workflow for fecal sequences:
1) pick_otus.py - With plant library as reference sequences
2) pick_rep_set.py - Method of "most_abundant"; same reference library
3) assign_taxonomy.py - Plant ref seqs and taxonomy mapping file
4) make_otu_table.py - Used same taxonomy as above
5) convert_biom.py - Generate tab-delimited table

Does that help?

-Gaddy

Daniel McDonald

unread,
Aug 2, 2012, 11:58:56 AM8/2/12
to qiime...@googlegroups.com
Closed-reference OTU picking is strictly reference based without
picking OTUs on the failures.
-Daniel
> --
>
>
>

Gaddy Bergmann

unread,
Aug 3, 2012, 4:33:58 PM8/3/12
to qiime...@googlegroups.com
Well, my OTU picking was reference-based (BLAST). I know that uclust can exclude failures, but I thought BLAST does not. Is that right? In that case, was my method a close-reference method? And if so, does that mean that my "No blast hit" designations were indeed due to low-quality matches?

-Gaddy

Greg Caporaso

unread,
Aug 3, 2012, 10:26:42 PM8/3/12
to qiime...@googlegroups.com
Hi Gaddy,
I'm a little confused, and would need to see the commands with the
parameters to figure out exactly what you're running. Do you have the
full list of commands corresponding to your steps 1-5? In general what
the "No BLAST hit" message means though is that the sequence was high
enough quality to be retained during split_libraries.py and assigned
to an OTU, but it did not get a good enough BLAST hit to a sequence in
your database during assign_taxonomy.py to be assigned to an OTU. If
this doesn't make sense send on the list of commands and we can go
from there.

Greg
> --
>
>
>

Gaddy Bergmann

unread,
Aug 6, 2012, 5:05:17 PM8/6/12
to qiime...@googlegroups.com
Hi Greg,

Sure, here are the commands I gave, broken down into a two-stage process: 1) building a plant reference library, and 2) finding those plant sequences in herbivore dung. (Note: the chloroplast sequence we amplified was the trnL intron, which has a sequence length ranging from 10 to 150 bp).

1) Building plant reference library

split_libraries.py -m PlantMapping.txt -f Plant454Reads.fna -q Plant454Reads.qual -l 10 -z truncate_only

pick_otus.py -i plant_seqs.fna -m uclust -o plant_otus --min_aligned_percent 0.5 -s 1.0 -e 1e-10

pick_rep_set.py -i plant_otus.txt -f plant_seqs.fna -m most_abundant -o  plant_rep_set.fasta

--------------------------------------------------------------

2) Finding plant seqs in fecal samples

split_libraries.py -m FecalMapping.txt -f Fecal454Read.fna -q Fecal454Read.qual -l 10 -z truncate_only

pick_otus.py -i fecal_seqs.fna -m blast -o fecal_otus -r plant_rep_set.fasta --min_aligned_percent 0.5 -s 0.98 -e 1e-10

pick_rep_set.py -i fecal_otus.txt -f fecal_seqs.fna -m most_abundant -o fecal_rep_set.fasta -r plant_rep_set.fasta

assign_taxonomy.py -i fecal_rep_set.fasta -t plant_taxonomy.txt -r plant_rep_set.fasta -m blast -e 0.001 -o fecal_taxonomy

make_otu_table.py -i fecal_otus.txt -o fecal_taxon_98.biom -t plant_taxonomy.txt

convert_biom.py -i fecal_taxon_98.biom -o fecal_taxon_98.txt -b --header_key taxonomy --output_metadata_id "ConsensusLineage"

--------------------------------------------------------------

Well, that's it. Please let me know what went wrong, or at least, what could be improved.

Thanks very much,
Gaddy

Gaddy Bergmann

unread,
Aug 22, 2012, 4:39:31 PM8/22/12
to qiime...@googlegroups.com
Hi Greg,

I reran the analysis using a much higher minimum e-value for picking OTUs (1e-5 instead of only 1e-10), and this does appear to have solved the problem. Now at the 98% OTU level, I am no longer seeing "No blast hit" in the OTU table. Apparently, this more lax criterion for sequences allows QIIME to assign both an OTU number and a taxon name to those sequences.

Thank you,
Gaddy

Greg Caporaso

unread,
Aug 27, 2012, 3:06:36 PM8/27/12
to qiime...@googlegroups.com
Hi Gaddy,
I would recommend being careful with that - you'll get taxonomic
assignments, etc, but you are allowing hits of much lower quality.

Greg
> --
>
>
>
Reply all
Reply to author
Forward
0 new messages