Following should work. Give it a try and let me know.
bbduk.sh -Xmx2g in1=test_R1.fq in2=test_R2.fq out1=R1_trim.fq out2=R2_trim.fq literal=ATCCAGCAGCCGCGGTAATT,ATATCCCCTAACTTTCGT ktrim=l restrictleft=20 k=5
Since your reads are long I am going to post the example by converting them to fasta format. Fastq format should work as indicated above.
$ head -4 test_*.fa
==> test_R1.fa <==
>R1_1
ATCCAGCAGCCGCGGTAATTCCAGCTCCAATAGCTTATATTATAGTTGTTGCAGTTAAAAAGCTCGTAGTTGGATTTCTGGGAGGGTGCCGCCGTCCGGCGTGTCCGTGTGCAGTGGCGCCCTTCCATCCTTCTGTTACCGTCTCTTGGCATTCATTTGCTGGTTGCGGGCTCAGATATTTTACCTTGCGAACATTATAGTGTTTCAGGCAGCCTAGGCCGGAATACATTAGCATGGAATAATGGACTAGGACTACGGTCTCTTTGTTGGTTTGCTGGACTGCAGTAATGATTACTAGGGT
>R2_1
ATCCAGCAGCCGCGGTAATTCCAGCTCCAATAGCGTATATTAAAGTTGTTGCAGTTAAAAAGCTCGTAGTTGGATTTCTGGGAGGGTGGCGATGTCCGCTTAACGTGTGTGCAGCGGCGCCCTTCCATCCTTCTGTTAGCGTCTCTTGGCATTCATTTGCTGGTGGCGGGCTCAGATATTTTACCTTGAGAAAATTAGAGTGTTTCAGGCAGGCTAGGCCGGAATACATTAGCATGGAATAATGGAATAGGACTACGGTCTCTTTGTTGGTTTGAGGGACTGCAGTAATGATTAATAGGGG
==> test_R2.fa <==
>R1_2
ATATCCCCTAACTTTCGTTCTTGATTAATGAAAACATCCTTGGTAAATGCTTTCGCCTAAGTTCATCTTTCATAAATCCAAGAATTTCACCTCTGACAATTAAATATGAATACCCCCAACTATCCCTATTAATCATTACCTCGATCCGCAAACCAACAAAATAATGACCCAAGTCTTATCTTATTATTCCATGCTAATGTATTCAACGGCCTAAGCCTGCTTTAAACACTCTAATTTTTTCACAGTAAACGATGTGTTCCCAAACCCCATCCAACTAAGGACCGAGCATTTCCCACAAGGA
>R2_2
ATATCCCCTAACTTTCGTTCTTGATGTGCGGAATTACCGCGGCTGCTGGATCTGTCTCTTATACACATCTGACGCTGCCGACGAATAGAGAGGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAACCATTCACTATAAATTCGTTTCCCTAATTTCATCTCCACTCCACCTACCATCACCTTCCTTCTCCCTCACTCCACCTCACTCATTCCCTCCTCTCGTCTCATGCCCTTTTCCCTTCTCTCCACTTTACTCTTCTACCTATTCTCCACATCCATATCCACACTATCGCC
# We now do actual trimming. I am sending output to STDOUT for this example.
$ bbduk.sh -Xmx2g in1=test_R1.fa in2=test_R2.fa out=stdout.fa literal=ATCCAGCAGCCGCGGTAATT,ATATCCCCTAACTTTCGT ktrim=l restrictleft=20 k=5
# output you get
Input is being processed as paired
Started output streams: 0.013 seconds.
>R1_1
CCAGCTCCAATAGCTTATATTATAGTTGTTGCAGTTAAAAAGCTCGTAGTTGGATTTCTGGGAGGGTGCC
GCCGTCCGGCGTGTCCGTGTGCAGTGGCGCCCTTCCATCCTTCTGTTACCGTCTCTTGGCATTCATTTGC
TGGTTGCGGGCTCAGATATTTTACCTTGCGAACATTATAGTGTTTCAGGCAGCCTAGGCCGGAATACATT
AGCATGGAATAATGGACTAGGACTACGGTCTCTTTGTTGGTTTGCTGGACTGCAGTAATGATTACTAGGG
T
>R1_2
TCTTGATTAATGAAAACATCCTTGGTAAATGCTTTCGCCTAAGTTCATCTTTCATAAATCCAAGAATTTC
ACCTCTGACAATTAAATATGAATACCCCCAACTATCCCTATTAATCATTACCTCGATCCGCAAACCAACA
AAATAATGACCCAAGTCTTATCTTATTATTCCATGCTAATGTATTCAACGGCCTAAGCCTGCTTTAAACA
CTCTAATTTTTTCACAGTAAACGATGTGTTCCCAAACCCCATCCAACTAAGGACCGAGCATTTCCCACAA
GGA
>R2_1
CCAGCTCCAATAGCGTATATTAAAGTTGTTGCAGTTAAAAAGCTCGTAGTTGGATTTCTGGGAGGGTGGC
GATGTCCGCTTAACGTGTGTGCAGCGGCGCCCTTCCATCCTTCTGTTAGCGTCTCTTGGCATTCATTTGC
TGGTGGCGGGCTCAGATATTTTACCTTGAGAAAATTAGAGTGTTTCAGGCAGGCTAGGCCGGAATACATT
AGCATGGAATAATGGAATAGGACTACGGTCTCTTTGTTGGTTTGAGGGACTGCAGTAATGATTAATAGGG
G
>R2_2
TCTTGATGTGCGGAATTACCGCGGCTGCTGGATCTGTCTCTTATACACATCTGACGCTGCCGACGAATAG
AGAGGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAACCATTCACTATAAATTCGTTTCCCT
AATTTCATCTCCACTCCACCTACCATCACCTTCCTTCTCCCTCACTCCACCTCACTCATTCCCTCCTCTC
GTCTCATGCCCTTTTCCCTTCTCTCCACTTTACTCTTCTACCTATTCTCCACATCCATATCCACACTATC
GCC
Is your protocol directional i.e. certain sequence would always show up at 5'-end then you could set up your trimming to be specific for forward/reverse reads. You could then use
restrictright=if rev-comp sequence will be showing up in other file.BBDuk is automatically going to look for reverse complement matches (you can provide the sequence using
literal=), if your sequencing is not directional.You may want to do this as a two-pass operation.
If you can post a couple of example sequences I can help with right command line.
Thank you very much! Yes it is directional. Based on the
PCRproperties i will always find primers at the 5'-end of the forward and reverse reads (please look at the examples below). So i have to remove just one certain primer sequence from R1 and one another certain sequence from R2. In your example i have to clip seq1 in plus orientation from R1 and seq2 in plus orientation from the R2. In addition to my understanding it should berestrictleftboth for the R1 and R2, but the value for this parameter has to be different for the R1 and R2 because of their different length.R1
ATCCAGCAGCCGCGGTAATTCCAGCTCCAATAGCTTATATTATAGTTGTTGCAGTTAAAAAGCTCGTAGTTGGATTTCTGGGAGGGTGCCGCCGTCCGGCGTGTCCGTGTGCAGTGGCGCCCTTCCATCCTTCTGTTACCGTCTCTTGGCATTCATTTGCTGGTTGCGGGCTCAGATATTTTACCTTGCGAACATTATAGTGTTTCAGGCAGCCTAGGCCGGAATACATTAGCATGGAATAATGGACTAGGACTACGGTCTCTTTGTTGGTTTGCTGGACTGCAGTAATGATTACTAGGGT
ATCCAGCAGCCGCGGTAATTCCAGCTCCAATAGCGTATATTAAAGTTGTTGCAGTTAAAAAGCTCGTAGTTGGATTTCTGGGAGGGTGGCGATGTCCGCTTAACGTGTGTGCAGCGGCGCCCTTCCATCCTTCTGTTAGCGTCTCTTGGCATTCATTTGCTGGTGGCGGGCTCAGATATTTTACCTTGAGAAAATTAGAGTGTTTCAGGCAGGCTAGGCCGGAATACATTAGCATGGAATAATGGAATAGGACTACGGTCTCTTTGTTGGTTTGAGGGACTGCAGTAATGATTAATAGGGG
ATCCAGCAGCCGCGGTAATTCCAGCTCCAATAGCGTATATTAAAGTTGTTGCAGTTAAAAAGCTCGTAGTTGGATTTCTGGGAGGGTGCCGCCGTCCGGCGTGTCCGTGTGCAGTGGCGCCCTTCCATCCTTCTGTTAGCGTCTCTTGGCATTCATTTGCTGGTGGCGGGCTCAGATATTTTACCTTGAGAAAATTAGAGTGTTTCAGGCAGGCTAGGCCGGAATACATTAGCATGGAATAATGGAATAGGACTACGGTCTCTTTGTTGGTTTGAGGGACTGCAGTAATGATTAATAGGGA
R2
ATATCCCCTAACTTTCGTTCTTGATTAATGAAAACATCCTTGGTAAATGCTTTCGCCTAAGTTCATCTTTCATAAATCCAAGAATTTCACCTCTGACAATTAAATATGAATACCCCCAACTATCCCTATTAATCATTACCTCGATCCGCAAACCAACAAAATAATGACCCAAGTCTTATCTTATTATTCCATGCTAATGTATTCAACGGCCTAAGCCTGCTTTAAACACTCTAATTTTTTCACAGTAAACGATGTGTTCCCAAACCCCATCCAACTAAGGACCGAGCATTTCCCACAAGGA ATATCCCCTAACTTTCGTTCTTGATGTGCGGAATTACCGCGGCTGCTGGATCTGTCTCTTATACACATCTGACGCTGCCGACGAATAGAGAGGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAACCATTCACTATAAATTCGTTTCCCTAATTTCATCTCCACTCCACCTACCATCACCTTCCTTCTCCCTCACTCCACCTCACTCATTCCCTCCTCTCGTCTCATGCCCTTTTCCCTTCTCTCCACTTTACTCTTCTACCTATTCTCCACATCCATATCCACACTATCGCC ATATCCCCTAACTTTCGTTCTTGATTAATGAAAACATCCTTGGCAAATGCTTTCGCATAAGTTAGTCTTTAACAAATCTGAGAATTCCACCTCTGACAATTAAATACTAATGCCCCCAACTATCCCTATTAATCATTACTGCAGTCCCTCAAACCAACAACGAGACCGTAGTCCTATTCCATTATTCCATGCTAATGTATTCCGGCCTAGCCTGCCTGAAACACTCTAATTTTCTCAAGGTAAATTATCTGAGCACACCACCGGCAAGTAAATGCCGAGAGGCGTTAACAGAAGGATGCGG
If you don't expect anything to show up on the 3'-end then you can process the two reads independently as you describe above. If you are only trimming the highlighted sequence then there should be no reason that you will lose an entire read. But just in case that were to happen you will want to re-sync
R1/R2files withrepair.shafter trimming.Thank you for your reply! I'm wondering if i'll merge my R1 and R2 in one
DNAfragment bybbmergebefore primers clipping. May i in that case remove my primers from the5' and3'ends of the resultingDNAfragment just in one step skippingrepair.shexecuting? Something like this:But how can i in that case specify the sequence for right-trimming and corresponding sequence for left-trimming?