當給定一行字母A,C,G或T的所有字符串時,如ATGCTCTCTTGATTTTTTTATGTGTAGCCATGCACACACACACATAAGA,我被分配了一個問題來查找基因。基因從ATG開始,以TAA,TAG或TGA結束(該基因不包括兩個端點)。該基因由三個字母組成,所以它的長度是三的倍數,並且這些三元組都不能是上面列出的開始/結束三元組。所以,對於上面的基因字符串是CTCTCT和CACACACACACA。事實上,我的正則表達式適用於特定的字符串。這裏是我到目前爲止(和我很高興自己,我能走到今天):Java正則表達式用於基因組拼圖
(?<=ATG)(([ACGT]{3}(?<!ATG))+?)(?=TAG|TAA|TGA)
但是,如果有另一個結果內的ATG和最終三重,而不是與三胞胎對齊的結果,它失敗了。例如:
Results for TCGAATGTTGCTTATTGTTTTGAATGGGGTAGGATGACCTGCTAATTGGGGGGGGGG :
TTGCTTATTGTTTTGAATGGGGTAGGA
ACCTGC
應該也找到了GGG但不會:TTGCTTATTGTTTTGA(ATG | GGG | TAG)GA
我新的一般和一點點陷進去正則表達式...只是有一點提示會很棒!
什麼都要碰巧'ATGATGTAG'?是否匹配? – 2010-09-10 13:22:40
+1 - 我現在沒有時間思考這個問題,我不知道這是否適合使用正則表達式,但我喜歡你將它應用於生物學中一個有趣的問題。好東西。 – duffymo 2010-09-10 13:23:21
'ATGATGTAG'不匹配,因爲ATG不能是包含的三元組之一。 – Swordbeard 2010-09-10 13:29:56