$ awk '{ if (NR%4!=1) { print $0; } else { n=split($0, a, ":"); match(a[n], /([ACGT]*)\+([ACGT]*)/, m); a[n] = m[1]m[2]; for (i=1; i<n; i++) { printf("%s:", a[i]); } printf("%s\n", a[n]); } }' in.fq > out.fq
From your example:
$ cat test.fq
@M04574:62:000000000-BMHJ4:1:1101:20437:3142 2:N:0:GCTCATGA+ACTGCAAA
TNGTTTAAAGCCAGTACGTCAACATCCTAAGCGCAGATAAGGAGAAACAACCGACTGAAAGGGAACGGAGATAATCGAACGGAAGCTACGGGCACAAGAACAACATAAAGGGCAGAGAGGGGAACCGGAAAAGCTAACCGTAAAAAGAGACAAGAACGGGAAGCAGAAGCACCGGCGAGTAAAAAACGTAAGGAGGAGAAAGAGGCGACCACGACGGAACCAGCGGAAGAAAAACAAGATGGGTGCAAAAAGCAAACAGGGGGGAGAACAGTAAGAAGGCAAGAGGAGGCAGGGAGCGCGC
+
-#8---9;<@,,6,;@CC;EFBFGFGGGFG<FB@@@+,,6;,,;F,C,<@AFCC@+8C9<F8:D,C,,87@,,66CB,,,+,666B,:,,,4+48B,,,,:9,,9,:5A,,++++A=4+4B++8++++++3A8,,,3,3>8++8DF7+,,,6=,,,,3@+@B*@,54,,,@53*******,,511=3*2*//5=*/18=5C**)/*)07)/*)))))8)))))())01()((.7().(2*)).,-.))6.:((4(,(.,4((((073<04(.)))..,((.310((,41(-31(-1(((-(
@M04574:62:000000000-BMHJ4:1:1101:23391:4717 2:N:0:GCGCATGA+ACTGCAAA
TNGTTTAAAGCCATTATGCCAAGAGCGTAAGCATGTTACGTGGGCGAAACGCGACCAAAAAGACATAGTGAGTACATCGAGGGCAATGGCCGCATACGATAAAAGGATAAAACACACACGAAGAGGCCACAGACCTCAAAGCCTGAACCGACGGTCAAAATCGATGGTGAACCGGCAAAACAGGAAATGAAACAAGCAGAAGCAAGGCGGAAGACCAGAAGAGGCGAATGACTGCAAGCGGTGCACAGTCAACAAGGTAACGTACTGGTGGACGGTAGGTGCAAAGATAGTTTCATCGTGA
+
8#88-66@@A,,666;,;=,CC,C,,+78;C6666C,C,,,6,+,6+6++,8C7C@C,C<CF,:6:,,<C<E,,,,,6BE,++,:?:,4B,@+:8B9BF+CF,C54,,:,9A<A,AC++@FFEE,=43=+D,,,83AFFE,8>,,6,6>BECEC6*>:=;,,436@*37><7:;*1:CE,4ACCCCF,<,=+,4:C4C00;98ACC7)11/7))0)770<9<)4)57)(0--*1:77)(0(((()9*(-)..)58,()-))-(.)--,61:3(((,((-.).4).4()--)).)6))4(((
@M04574:62:000000000-BMHJ4:1:1101:18653:4992 2:N:0:GCTCATGA+ACTGCATA
TNGTTTAAAGCCATTACGTCATGGAGGATAACATGATTCATTGAAATTTCCCTCCTCGTTGAATCGGTTCCTACCCGCTTTGCCAGCCACACCGGCAGAGCCACCGGGCCATGGGAACAACTTTCAGCAACCAGCAGCCGCAACAGGGGCAATGCCTGGTCCATACGTGCCTGCTGCCACGAGCAATGCATCCGCCTGGCGTCCCCACGGAATGTCTCATCAGCCGTTGGCCATAGAATACCACTTCCGAGCACCCCTGGTCCTCAAGAACCGCTGTGAGCCTAAAACGGGAAAGGACAAA
+
-#86-9C<<E9C@;@,CC;EBEE<C<,6;C<FFG<@E,6CD,C<DE,6C@FEEC@F,BC,@@<6@F@8@@CCFG86@@CF7@@,BF?FFF@,6C:=FFDEG,BFGDC@FGGBF,DE49AEF8,9EE,CEDF<C=FEGG:C74BFGEDCE7+@,@8D,383@@EC=C:@D:87@@,@C:DFC>*@5D8,@<==C*1*3;D*8*)01;*:CCDGFF6C+13:A=63A>ADFFF@F)7ACE)@<>FF7=?7BF>F(3((--3:(:))9.).48(441((4(6<7((),.8848(4(,82(380:
The result from running awk on this:
$ awk '{ if (NR%4!=1) { print $0; } else { n=split($0, a, ":"); match(a[n], /([ACGT]*)\+([ACGT]*)/, m); a[n] = m[1]m[2]; for (i=1; i<n; i++) { printf("%s:", a[i]); } printf("%s\n", a[n]); } }' test.fq
@M04574:62:000000000-BMHJ4:1:1101:20437:3142 2:N:0:GCTCATGAACTGCAAA
TNGTTTAAAGCCAGTACGTCAACATCCTAAGCGCAGATAAGGAGAAACAACCGACTGAAAGGGAACGGAGATAATCGAACGGAAGCTACGGGCACAAGAACAACATAAAGGGCAGAGAGGGGAACCGGAAAAGCTAACCGTAAAAAGAGACAAGAACGGGAAGCAGAAGCACCGGCGAGTAAAAAACGTAAGGAGGAGAAAGAGGCGACCACGACGGAACCAGCGGAAGAAAAACAAGATGGGTGCAAAAAGCAAACAGGGGGGAGAACAGTAAGAAGGCAAGAGGAGGCAGGGAGCGCGC
+
-#8---9;<@,,6,;@CC;EFBFGFGGGFG<FB@@@+,,6;,,;F,C,<@AFCC@+8C9<F8:D,C,,87@,,66CB,,,+,666B,:,,,4+48B,,,,:9,,9,:5A,,++++A=4+4B++8++++++3A8,,,3,3>8++8DF7+,,,6=,,,,3@+@B*@,54,,,@53*******,,511=3*2*//5=*/18=5C**)/*)07)/*)))))8)))))())01()((.7().(2*)).,-.))6.:((4(,(.,4((((073<04(.)))..,((.310((,41(-31(-1(((-(
@M04574:62:000000000-BMHJ4:1:1101:23391:4717 2:N:0:GCGCATGAACTGCAAA
TNGTTTAAAGCCATTATGCCAAGAGCGTAAGCATGTTACGTGGGCGAAACGCGACCAAAAAGACATAGTGAGTACATCGAGGGCAATGGCCGCATACGATAAAAGGATAAAACACACACGAAGAGGCCACAGACCTCAAAGCCTGAACCGACGGTCAAAATCGATGGTGAACCGGCAAAACAGGAAATGAAACAAGCAGAAGCAAGGCGGAAGACCAGAAGAGGCGAATGACTGCAAGCGGTGCACAGTCAACAAGGTAACGTACTGGTGGACGGTAGGTGCAAAGATAGTTTCATCGTGA
+
8#88-66@@A,,666;,;=,CC,C,,+78;C6666C,C,,,6,+,6+6++,8C7C@C,C<CF,:6:,,<C<E,,,,,6BE,++,:?:,4B,@+:8B9BF+CF,C54,,:,9A<A,AC++@FFEE,=43=+D,,,83AFFE,8>,,6,6>BECEC6*>:=;,,436@*37><7:;*1:CE,4ACCCCF,<,=+,4:C4C00;98ACC7)11/7))0)770<9<)4)57)(0--*1:77)(0(((()9*(-)..)58,()-))-(.)--,61:3(((,((-.).4).4()--)).)6))4(((
@M04574:62:000000000-BMHJ4:1:1101:18653:4992 2:N:0:GCTCATGAACTGCATA
TNGTTTAAAGCCATTACGTCATGGAGGATAACATGATTCATTGAAATTTCCCTCCTCGTTGAATCGGTTCCTACCCGCTTTGCCAGCCACACCGGCAGAGCCACCGGGCCATGGGAACAACTTTCAGCAACCAGCAGCCGCAACAGGGGCAATGCCTGGTCCATACGTGCCTGCTGCCACGAGCAATGCATCCGCCTGGCGTCCCCACGGAATGTCTCATCAGCCGTTGGCCATAGAATACCACTTCCGAGCACCCCTGGTCCTCAAGAACCGCTGTGAGCCTAAAACGGGAAAGGACAAA
+
-#86-9C<<E9C@;@,CC;EBEE<C<,6;C<FFG<@E,6CD,C<DE,6C@FEEC@F,BC,@@<6@F@8@@CCFG86@@CF7@@,BF?FFF@,6C:=FFDEG,BFGDC@FGGBF,DE49AEF8,9EE,CEDF<C=FEGG:C74BFGEDCE7+@,@8D,383@@EC=C:@D:87@@,@C:DFC>*@5D8,@<==C*1*3;D*8*)01;*:CCDGFF6C+13:A=63A>ADFFF@F)7ACE)@<>FF7=?7BF>F(3((--3:(:))9.).48(441((4(6<7((),.8848(4(,82(380:
If you just need to remove the part after
2:xxxxdoInstead of image, could you please post text / link to few example records? IMO, awk can address this much easier way (replacing the highlighted characters, in the example image, for every record in fastq file).
Here are the first 100 lines of one such document. I need to change the 2:N:0: AAAAAAAA+GGGGGGGG section in all instances, in all files with the above code. I don't think the code will work with the + in the middle of them. I can't do a find and replace since some of these have nearly 100,000 reads which takes too long for my text editor to do (upwards of 8 hours), plus that 2:N:0 line isn't the same per read, so it's not 100%. The + sign between lines signals a new read, which should stay.
Please edit your original post and add this content in there, then delete this answer. Only add an answer if you're answering your own question.
Select All->Copy)Editon your original post (or, use this: edit original post (link opens in a new tab)Submitbuttonmoderateback in your answer here: A: Replacing nth character in all lines helpDelete PostSubmitbutton.Can you comment on why you are doing this? That plus sign indicates the two indexes that were originally used to tag that sample.
GCTCATGA (index 1) + ACTGCAAA (index2).