2012-04-17 81 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

相關問題