我正在处理 DNA 序列文件(FASTQ 文件)。
@Read1- 好
NAAAGTGAGATTCGAAATAAATACATCTGTGGCTTCACTTTGAACGGAACGATGTTCTCGTAT
+
1D=DDADEHHHHHIGIJJJJGGFGHIHIJJIJJJJJIIIIGG99BDGHHHEGHJJIHHJJGIH
@Read2- 有 2 个不好的地方
NTTCGTAAAGCAGTGAACGAAATACATCTGTGGCTTCACTATGTTCTCGTATGCCGGAACGTC
+
2#1=DFFFFHHHGHGHIJHJIJJJJJJJJJJJJJJJJJGIIHJJJJIIIGGHIIJJIHIIIIJG
@Read3 :一个好,一个早
NCAGGATCTGCATCGTGAACGATACATCTGTGGCTTCACTAGAACGTGTTCTCGTATGCCGTC
+
B#1:BDDDDFFHDH@AHIGCHIIIIIIIIIIIIIIIIIIIIGIIFHBGGGFGIIIIGGHIIIIG
@Read4 :一个好,一个后
NGCCCTTGACCGCAGGTTAGTGCTAAATACATCTGTGTACTGAACGTCACTATGTTCTCGTAT
+
E#1:A?==@@B>AC<7,2A@ABBBBCBCBCCBCCBBBBBBBB<<?AA?AA)8>ABBAAABABBA
我想在一个序列中查找一个 6 个字符长的模式 (GAACG)(以 @ 开头的行下面的行)。
重要的是我希望在字符串中的第 42 位找到我的模式。
如果在该位置找到模式,我将序列连同它之前的行和它之后的 2 行一起复制到一个新文件中。使用 awk 尝试此操作时,它不起作用,因为所有的 index()、match() 函数只查看第一次出现并且不进一步查看,所以如果它在位置 41 之前找到我的模式,那么它不会将我的数据复制到新文件。
基本上我的脚本应该返回读取 1、3 和 4...
如何筛选我的 FASTQ 文件中的模式,评估找到它的所有位置,并仅考虑在位置 42 具有它的序列,无论该模式是否也存在于其他位置?