Using different primer sets to amplify two different hypervariable regions on one illumina run


I'm hoping someone may be able to help me with a question I have regarding my data! We have carried out Illumina amplicon sequencing of two different hypervariable regions by using two different primer sets on the same sequencing run. As a result of this I have both sets of amplicons in the same files and will need to analyse them as two separate data sets essentially in order to assess which gives better taxonomic resolution. Is there a method of doing this within QIIME2? If so at what stage should this be done? I'm using QIIME2 via a conda environment on a Mac.

Thank you for any help!

Hi @Laura1 ,

The RESCRIPt plugin could be used to accomplish this comparison qualitatively. See the example (including an example visualization) using the evaluate-taxonomy action here:

The result will give you an interactive lineplot for comparing different metrics at different taxonomic levels. For example, you can look at the number of unique taxonomic labels found at genus or species level for each primer set (with one separate taxonomy file for each primer set).

If you have a mock community included in your dataset (i.e., a sample containing known species mixed at known proportions) you can also do a quantitative comparison using the q2-quality-control plugin to see which primer set achieves higher accuracy. See an example in this tutorial:

Good luck!


Hi @Nicholas_Bokulich thank you so much for your response!

Sorry for the delay and thank you for getting back to me! I think I would like to assess the two different regions independently but a currently trying to split the data into two data sets essentially dempultiplexing them based on the primer pairs. Is the the best option for performing this task?

Thanks again!

Hi @Laura1 ,

No — that's a qiime 1 command!

You should see the latest QIIME 2 documentation for how to do this with QIIME 2... there are several ways depending on the data inputs that you have. This gives a rough overview:

and here is a more concrete example for multiplexed sequences that use an EMP-type protocol (i.e., barcodes in a separate read):

Hi @Nicholas_Bokulich

Thanks again for getting back to me! I have followed your advice and narrowed it down to what I believe will be the correct method which will be using the demux-paired command in cutadapt as my data are paired-end. In order to do this I will need to create a metadata file which contains the primers as barcodes I believe. My question is how do I create this metadata file so that I am able to demultiplex the reads based on the primer pair while keeping the F&R reads of each primer together. I hope I have made sense.

Thank you so much for your help!

Hi @Laura1 ,

Check out this tutorial, which also has example files... you can follow that same format and usage to use q2-cutadapt for demultiplexing.

I am not totally sure that that is the right tool for the job, though, if you are using this to split out hypervariable regions independently of demultiplexing. The q2-quality-control plugin also has a "filter-reads" action that can be used to filter based on alignment to a sequence (including a primer sequence), so that might be a better choice in your case.

Good luck!

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