के लिए जावा रेगेक्स मुझे एटीजीसीटीसीटीटीजीएटीटीटीटीटीटीएटीएटीजीटीजीएसीसीटीटीटीसीएटीएसीएसीएसीएटीएजीएएए जैसे ए, सी, जी, या टी अक्षरों की एक स्ट्रिंग दी गई थी, जब मुझे जीन खोजने में समस्या थी। एटीजी के साथ एक जीन शुरू किया जाता है, और टीएए, टैग, या टीजीए के साथ समाप्त होता है (जीन दोनों अंतराल को छोड़ देता है)। जीन में अक्षरों के तीन गुना होते हैं, इसलिए इसकी लंबाई तीन में से एक है, और उनमें से कोई भी तीनों ऊपर सूचीबद्ध स्टार्ट/एंड ट्रिपलेट नहीं हो सकता है। इसलिए, इसमें जीन के ऊपर की स्ट्रिंग के लिए सीटीसीटीसीटी और सीएसीएसीएसीसीएसीएसीए हैं। और वास्तव में मेरा regex उस विशेष स्ट्रिंग के लिए काम करता है। यहाँ मैं अब तक राशि है (और मैं अपने आप को साथ बहुत खुश मैं अब तक यह मिल गया है कि कर रहा हूँ):जीनोम पहेली
(?<=ATG)(([ACGT]{3}(?<!ATG))+?)(?=TAG|TAA|TGA)
हालांकि, अगर वहाँ एक ATG और अंत त्रिक एक और परिणाम के भीतर है, और तीनो के साथ गठबंधन नहीं उस परिणाम के, यह विफल रहता है। उदाहरण के लिए:
Results for TCGAATGTTGCTTATTGTTTTGAATGGGGTAGGATGACCTGCTAATTGGGGGGGGGG :
TTGCTTATTGTTTTGAATGGGGTAGGA
ACCTGC
यह भी एक GGG खोजना चाहिए लेकिन नहीं करता है: TTGCTTATTGTTTTGA (ATG | GGG | टीएजी) जीए
मैं सामान्य और एक छोटे से अटक में regex के लिए नया हूँ ... बस थोड़ा संकेत अद्भुत होगा!
क्या करना चाहिए 'ATGATGTAG' के साथ होता है? मैच या कोई मैच नहीं? –
+1 - मेरे पास अभी इस बारे में सोचने का समय नहीं है, और मुझे नहीं पता कि यह रेगेक्स का उचित उपयोग है, लेकिन मुझे इस तथ्य से प्यार है कि आप जीवविज्ञान में एक दिलचस्प समस्या के लिए आवेदन कर रहे हैं। अच्छी सामग्री। – duffymo
'ATGATGTAG' मेल नहीं खाएगा क्योंकि एटीजी शामिल ट्रिपलेट में से एक नहीं हो सकता है। – Swordbeard