For cutadapt option

Hi, I am new here.

What I think about qiime2 is that I can do further analysis with asv or otu. So I will do both and choose one that gives best result for my project.

For asv, we do [cutadapt - dada2] and get [FeatureTable], [FeatureData] as an output.

For otu, we do [cutadapt - joinpairs(vsearch) - qualityfilter - dereplicate(vsearch)] and get [FeatureTable], [FeatureData].

So questions I have is

  1. For the asv, in the dada2, there are options like trim and trunc. So if I do dada2, do I need to run cutadapt? or should I just pass cutadapt?

  2. For the otu clustering, I think I should get rid of adaptor sequences(right?). And those are the adaptor seqs I got.
    (W: A or T, R: A or G, Y: C or T)

So I run cutadapt as below
$qiime cutadapt trim-paired --i-demultiplexed-sequences demux.qza --p-adapter-f ‘GGWACWGGWTGAACWGTWTAYCCYCC’ --p-adapter-r ‘TAIACYTCIGGRTGICCRAARAAYCA’ --p-error-rate 0.1 --o-trimmed-sequences cutadapt-demux.qza --verbose

and got this error.
cutadapt: error: Character ‘I’ in adapter sequence ‘TAIACYTCIGGRTGICCRAARAAYCA^’ is not a valid IUPAC code. Use only characters XACGTURYSWKMBDHVN.
Traceback (most recent call last):
File “/home/creo9447/miniconda3/envs/qiime/lib/python3.6/site-packages/q2cli/”, line 329, in call
results = action(**arguments)
File “”, line 2, in trim_paired
File “/home/creo9447/miniconda3/envs/qiime/lib/python3.6/site-packages/qiime2/sdk/”, line 245, in bound_callable
output_types, provenance)
File “/home/creo9447/miniconda3/envs/qiime/lib/python3.6/site-packages/qiime2/sdk/”, line 390, in callable_executor
output_views = self._callable(**view_args)
File “/home/creo9447/miniconda3/envs/qiime/lib/python3.6/site-packages/q2_cutadapt/”, line 189, in trim_paired
File “/home/creo9447/miniconda3/envs/qiime/lib/python3.6/site-packages/q2_cutadapt/”, line 30, in run_commands, check=True)
File “/home/creo9447/miniconda3/envs/qiime/lib/python3.6/”, line 438, in run
output=stdout, stderr=stderr)

I really need some help.
Thank you.

Hi @yogurt,

  1. If your sequencing protocol does not make use of primers with frameshifting nucleotides, e.g. Lundberg et al. 2013, then you can simply use the trim and truncation options to remove the primers. I personally, like to use cutadapt (with the --p-discard-untrimmed and --p-match-adapter-wild-cards) regardless of how the sequencing was performed, as it serves as a form of quality control. That is, if you can not detect the primers in the sequences, chances are that the rest of the read is not very good, or is spurious. So, you discard them.

  2. See this: