Cutadapt paired end read through

Hi, I just wanted to ask a question about using the cutadapt plugin for paired end reads. I understand that it will trim off the primers from the 5’ end, but in the case or read though (reads running into the reverse complement of the other primer), will it trim these primers off also?

This is my script:

qiime cutadapt trim-paired --i-demultiplexed-sequences demux-paired-end.qza --p-front-f GTGARTCATCGAATCTTTG --p-front-r TCCTCCGCTTATTGATATGC --p-cores 2 --o-trimmed-sequences trimmed-seqs.qza --p-discard-untrimmed --p-overlap 10 --p-minimum-length 50 --verbose

In cutadapt stand alone we needed to tell it to do this by supplying like this:
-a GTGARTCATCGAATCTTTG…GCATATCAATAAGCGGAGGA
-A TCCTCCGCTTATTGATATGC…CAAAGATTCGATGAYTCAC

Is this not required in trim-paired?

Many thanks!

Hi @SarahH,
The options you are looking for are --p-adapter-f and --p-adapter-r. We have a tutorial demonstrating how to use this, using the example of fungal ITS where read-through is a common issue (looks like that’s what you are working with too!):

Hi Nicholas, thanks for this. I have tried what you suggest but I’m having an issue getting the same results for ITS using the standalone Cutadapt and this though. In the standalone, I’m getting my 5’ Forward primer on R1 found in nearly all reads and the read-through primer at the 3’ end in around half the reads which sounds about right. In q2 it only finds the 5’ Forward primer on R1 in around half the reads (and 3’ in around half). However it still writes nearly all the pairs as processed.

The other strange thing is that from the merged reads i’m getting nearly all back as non-chimeras in the standalone Cutadapt (37641/37652) and only 26394/35267 when I do the cutadapt in q2. I can’t see anything that I’m doing differently other than the Cutadapt. I haven’t pasted any scripts in case this is a quick answer but can if needed.

Many thanks!

Sorry, this is a bit confusing. By standalone I mean the old way of doing it on cutadapt:

I used to use this on cutadapt which was their paired end method:

for i in $(ls | sed 's/_R1_001.fastq.gz//'); do ~/.local/bin/cutadapt -a GTGARTCATCGAATCTTTG...GCATATCAATAAGCGGAGGA -A TCCTCCGCTTATTGATATGC...CAAAGATTCGATGAYTCAC --discard-untrimmed -e 0.13 -O 10 -o trimmed_fastq/${i}\_R1_001.fastq.gz    -p trimmed_fastq/${i}\_R2_001.fastq.gz     ${i}_R1_001.fastq.gz ${i}_R2_001.fastq.gz -m 50  ; done

On q2 I used this:

qiime cutadapt trim-paired --i-demultiplexed-sequences demux-paired-end.qza --p-front-f GTGARTCATCGAATCTTTG --p-front-r TCCTCCGCTTATTGATATGC --p-cores 2 --o-trimmed-sequences trimmed-seqs.qza --p-discard-untrimmed --p-overlap 10 --p-minimum-length 50 --verbose --p-error-rate 0.13 --p-adapter-f GCATATCAATAAGCGGAGGA  --p-adapter-r CAAAGATTCGATGAYTCAC

On new cutadapt I tried this:

for i in $(ls | sed 's/_R1_001.fastq.gz//'); do ~/.local/bin/cutadapt -g GTGARTCATCGAATCTTTG -a GCATATCAATAAGCGGAGGA -G TCCTCCGCTTATTGATATGC -A CAAAGATTCGATGAYTCAC --discard-untrimmed -e 0.13 -O 10 -o trimmed_fastq/${i}\_R1_001.fastq.gz    -p trimmed_fastq/${i}\_R2_001.fastq.gz     ${i}_R1_001.fastq.gz ${i}_R2_001.fastq.gz -m 50  ; done

The bottom two scripts give the exact same result which shows that the new and old way of trimming paired ends on cutadapt seems to end up in a very different number of chimeras being detected. Sorry this is a bit rambly.

Can you see what might be going on?

Thanks!

You can specify this same “linked-adapter” syntax in q2-cutadapt, without it you are essentially comparing apples to oranges. Try updating your q2-cutadapt invocation to something like:

qiime cutadapt trim-paired \
  --i-demultiplexed-sequences demux-paired-end.qza \
  --p-adapter-f 'GTGARTCATCGAATCTTTG...GCATATCAATAAGCGGAGGA' \
  --p-adapter-r 'TCCTCCGCTTATTGATATGC...CAAAGATTCGATGAYTCAC' \
  --p-cores 2 \
  --o-trimmed-sequences trimmed-seqs.qza \
  --p-discard-untrimmed \
  --p-overlap 10 \
  --p-minimum-length 50 \
  --verbose \
  --p-error-rate 0.13 \

Take a close look at the command above, I edited several things, including the parameters used, and also, your adapter pairs didn’t appear to match between your standalone cutadapt and q2-cutadapt invocations.

Anyway, please give that a shot and let us know how it goes! :t_rex:

Thank you so much! This does exactly what I want and doesn’t give me the weird results! When you say ‘your adapter pairs didn’t appear to match between your standalone cutadapt and q2-cutadapt invocations’ do you mean I used the wrong primer with the wrong command? I must admit to finding the notation a little confusing. Could you possibly let me know what I should have used in these? i.e. --p-adapter-f, --p-adapter-r, --p-front-f, --p-front-r and how these relate to the -a -A -g -G on cutadapt? I wonder if this was where I was getting in a muddle?

Much thanks

Hi @SarahH!

Woohoo! :tada:

Yep --- you ran two completely different commands.

q2-cutadapt uses the names defined by cutadapt (we didn't change any of the parameter names), so everything should map 1-to-1 between cutadapt and q2-cutadapt.

Isn't that what I did above? If I am misunderstanding the question please provide more context.

:qiime2:

Yes you did! It works so I’m happy!

1 Like

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