qiime quality-filter q-score-joined parameters

Hi everyone I have several questions about how to filter by quality scores. I am analyzing paired-end reads (Illumina) and I want to use qiime quality-filter q-score-joined.

1-I’m using the parameters with the default values but according to this post from illumina (https://www.illumina.com/documents/products/technotes/technote_Q-Scores.pdf)
“Q30 is considered a
benchmark for quality in next-generation sequencing”. Then should I continue with the default parameters or I better change --p-min-quality to 30 ?.

2- In this post from qiime https://docs.qiime2.org/2020.6/tutorials/qiime2-for-experienced-microbiome-researchers/ it says that “If for some reason your raw reads are not already all the same length, you’ll need to trim them to the same length before doing OTU clustering”.

But using quality-filter q-score-joined some reads will be truncated and these will be of different length, how can I solve that problem ?

3-If I use quality-filter q-score-joined is it necessary to use another type of filtering tool before as trimmomatic (apart from removing the primers) ?


Hi @Marmur!

  1. Yes, changing that parameter to 20 or 30 makes sense if you're performing OTU clustering (as you suggest in question 2). Please see Alternative methods of read-joining in QIIME 2 — QIIME 2 2020.8.0 documentation for some light discussion.
  2. If you read the next sentences from the passage above, you'll see this:

There isn’t currently a QIIME 2 function to trim reads to the same length without doing anything else, though you may be able to use functions from the cutadapt plugin to do something like that. (The reason for this is that the QIIME 2 workflow recommends first denoising reads - which involves a length trimming step - and then optionally passing the ASVs through a clustering algorithm.)

So, you will need to export your reads, trim outside of QIIME 2, and then re-import. Or, you can use deblur or DADA2 to denoise (which includes a trimming step), and then if you still want to perform OTU clustering, you can use the denoised table and rep-seqs.

  1. It depends on what you're trying to do, and what your reads look like (do they have adapters? etc) - there is no "right answer" here, there are many protocols out there (that are all QIIME 2 -agnostic).

Hope that helps! :qiime2:

1 Like

Thank you very much for the detailed answer.

Then I could do the following:

1- First use qiime quality-filter q-score-joined by adding the parameter –p-min-quality 30.

2- Then use qiime deblur denoise-16S adding the –p-trim-length parameter specifying the length I want to cut the reads so all have the same length ? If so, shouldn’t I filter the reads by length first, as there might be reads with a short length after the previous filter? How do I decide what length to cut the reads to? Should I do the dereplicating step before or after this step?

Thank your for your reply !

Hi @Marmur!

  1. Yes, you could do that, although please note, if you are using QIIME 2 2020.8, you will need to use qiime quality-filter q-score - the q-score-joined method was merged into q-score (q-score can still handle joined reads, we just got rid of a redundant method).

  2. Yes! For guidance on picking a trim length, please see this section of the Moving Pictures tutorial: “Moving Pictures” tutorial — QIIME 2 2020.8.0 documentation

Keep us posted!



This topic was automatically closed 31 days after the last reply. New replies are no longer allowed.