2012-04-17 132 views
0

我正在研究DNA序列文件(FASTQ文件)。查找字符串中所有出现的模式的位置

@ Read1- GOOD

NAAAGTGAGATTCGAAATAAATACATCTGTGGCTTCACTTTGAACGGAACGATGTTCTCGTAT 

+ 

1D=DDADEHHHHHIGIJJJJGGFGHIHIJJIJJJJJIIIIGG99BDGHHHEGHJJIHHJJGIH 

@ Read2-有2个不好的地方

NTTCGTAAAGCAGTGAACGAAATACATCTGTGGCTTCACTATGTTCTCGTATGCCGGAACGTC 

+ 

2#1=DFFFFHHHGHGHIJHJIJJJJJJJJJJJJJJJJJGIIHJJJJIIIGGHIIJJIHIIIIJG 

@读3:

一个好,一个早期
NCAGGATCTGCATCGTGAACGATACATCTGTGGCTTCACTAGAACGTGTTCTCGTATGCCGTC 

+ 

B#1:[email protected] 

@ Read4:一个好的,其中之一

NGCCCTTGACCGCAGGTTAGTGCTAAATACATCTGTGTACTGAACGTCACTATGTTCTCGTAT 

+ 

E#1:[email protected]@B>AC<7,[email protected]<<?AA?AA)8>ABBAAABABBA 

我想在一个序列内找到一个长度为6个字符的模式(GAACG)(下面一行以@开头的行)。

重要的是,我希望我的模式在字符串中的位置42找到。

如果在该位置找到该模式,我将该序列与其之前的行及其之后的两行一起复制到一个新文件中。 当试图用awk时,它没有工作,因为所有的索引(),匹配()函数只查看第一次出现,并不看得更远,所以如果它发现我的模式位置41之前,那么它不会复制我的数据新文件。

基本上我的脚本应该返回为1,3和4 ...

我如何筛选的模式我的FASTQ文件,评估所有在找到它的位置,而只考虑有它的序列在第42位,无论其他位置是否还存在该图案?

回答

0

听起来像一个正则表达式问题。

许多语言和脚本语言支持正则表达式,但是这似乎是在JavaScript的一个很好的例子:

how-to-find-all-occurrences-of-one-string-in-another-in-javascript

+0

感谢您的答复。我在Linux环境下工作,我必须通读一个有数百万个序列的序列文件。此外,从第二行开始,序列只有每4行(如我的原始消息所示)。所以我不认为JavaScript可以真正适用于我的情况,不幸的是...但非常感谢! – user1339677 2012-04-17 20:44:16

+0

其实它很简单... substr(seq,42,6)== pattern应该是true ..就是这样! – user1339677 2012-04-18 15:10:50

相关问题