我正在处理DNA序列文件(FASTQ文件)。
@ Read1- GOOD
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处的序列,无论模式是否也出现在其他位置?
答案 0 :(得分:0)
听起来像正则表达式问题。
许多语言和脚本语言都支持正则表达式,但这似乎是javascript中的一个很好的例子:
how-to-find-all-occurrences-of-one-string-in-another-in-javascript