में एक खुले पठन फ्रेम को कैसे ढूंढें I ORF
(खुली पठन फ्रेम) खोजने के लिए पाइथन और नियमित अभिव्यक्ति का उपयोग कर रहा हूं।पायथन
एक उप-स्ट्रिंग एक स्ट्रिंग है केवल अक्षर ATGC
(कोई रिक्तियों या नई रेखाओं) कि से बना है खोजें:
शुरू होता है ATG
साथ, TAG
या TAA
या TGA
साथ समाप्त होता है और से अनुक्रम पर विचार करना चाहिए पहला वर्ण, तो दूसरा और फिर तीसरे:
Seq= "CCTCAGCGAGGACAGCAAGGGACTAGCCAGGAGGGAGAACAGAAACTCCAGAACATCTTGGAAATAGCTCCCAGAAAAGC
AAGCAGCCAACCAGGCAGGTTCTGTCCCTTTCACTCACTGGCCCAAGGCGCCACATCTCCCTCCAGAAAAGACACCATGA
GCACAGAAAGCATGATCCGCGACGTGGAACTGGCAGAAGAGGCACTCCCCCAAAAGATGGGGGGCTTCCAGAACTCCAGG
CGGTGCCTATGTCTCAGCCTCTTCTCATTCCTGCTTGTGGCAGGGGCCACCACGCTCTTCTGTCTACTGAACTTCGGGGT
GATCGGTCCCCAAAGGGATGAGAAGTTCCCAAATGGCCTCCCTCTCATCAGTTCTATGGCCCAGACCCTCACACTCAGAT
CATCTTCTCAAAATTCGAGTGACAAGCCTGTAGCCCACGTCGTAGCAAACCACCAAGTGGAGGAGCAGCTGGAGTGGCTG
AGCCAGCGCGCCAACGCCCTCCTGGCCAACGGCATGGATCTCAAAGACAACCAACTAGTGGTGCCAGCCGATGGGTTGTA
CCTTGTCTACTCCCAGGTTCTCTTCAAGGGACAAGGCTGCCCCGACTACGTGCTCCTCACCCACACCGTCAGCCGATTTG
CTATCTCATACCAGGAGAAAGTCAACCTCCTCTCTGCCGTCAAGAGCCCCTGCCCCAAGGACACCCCTGAGGGGGCTGAG
CTCAAACCCTGGTATGAGCCCATATACCTGGGAGGAGTCTTCCAGCTGGAGAAGGGGGACCAACTCAGCGCTGAGGTCAA
TCTGCCCAAGTACTTAGACTTTGCGGAGTCCGGGCAGGTCTACTTTGGAGTCATTGCTCTGTGAAGGGAATGGGTGTTCA
TCCATTCTCTACCCAGCCCCCACTCTGACCCCTTTACTCTGACCCCTTTATTGTCTACTCCTCAGAGCCCCCAGTCTGTA
TCCTTCTAACTTAGAAAGGGGATTATGGCTCAGGGTCCAACTCTGTGCTCAGAGCTTTCAACAACTACTCAGAAACACAA
GATGCTGGGACAGTGACCTGGACTGTGGGCCTCTCATGCACCACCATCAAGGACTCAAATGGGCTTTCCGAATTCACTGG
AGCCTCGAATGTCCATTCCTGAGTTCTGCAAAGGGAGAGTGGTCAGGTTGCCTCTGTCTCAGAATGAGGCTGGATAAGAT
CTCAGGCCTTCCTACCTTCAGACCTTTCCAGATTCTTCCCTGAGGTGCAATGCACAGCCTTCCTCACAGAGCCAGCCCCC
CTCTATTTATATTTGCACTTATTATTTATTATTTATTTATTATTTATTTATTTGCTTATGAATGTATTTATTTGGAAGGC
CGGGGTGTCCTGGAGGACCCAGTGTGGGAAGCTGTCTTCAGACAGACATGTTTTCTGTGAAAACGGAGCTGAGCTGTCCC
CACCTGGCCTCTCTACCTTGTTGCCTCCTCTTTTGCTTATGTTTAAAACAAAATATTTATCTAACCCAATTGTCTTAATA
ACGCTGATTTGGTGACCAGGCTGTCGCTACATCACTGAACCTCTGCTCCCCACGGGAGCCGTGACTGTAATCGCCCTACG
GGTCATTGAGAGAAATAA"
मैं क्या कोशिश की है:
# finding the stop codon here
def stop_codon(seq_0):
for i in range(0,len(seq_0),3):
if (seq_0[i:i+3]== "TAA" and i%3==0) or (seq_0[i:i+3]== "TAG" and i%3==0) or (seq_0[i:i+3]== "TGA" and i%3==0) :
a =i+3
break
else:
a = None
# finding the start codon here
startcodon_find =[m.start() for m in re.finditer('ATG', seq_0)]
मैं प्रारंभ कोडन को जांचने का तरीका कैसे ढूंढ सकता हूं और फिर पहला स्टॉप कोडन ढूंढ सकता हूं। इसके बाद अगली स्टार्ट कोडन और अगली स्टॉप कोडन पाएं।
मैं इसे तीन फ्रेम के लिए चलाने की इच्छा करता हूं। जैसा कि पहले बताया गया है कि तीन फ्रेम अनुक्रम के पहले, दूसरे और तीसरे पात्रों को शुरुआत के रूप में विचार करेंगे।
ATG TTT AAA ACA AAA TAT TTA TCT AAC CCA ATT GTC TTA ATA ACG CTG ATT TGA
किसी भी मदद की सराहना की जाएगी:
इसके अलावा अनुक्रम 3. वहाँ के छोटे भागों में विभाजित किया जा करने के लिए यह इस तरह की कुछ बात होना चाहिए के लिए की जरूरत है।
मेरे अंतिम जवाब:
def orf_find(st0):
seq_0=""
for i in range(0,len(st0),3):
if len(st0[i:i+3])==3:
seq_0 = seq_0 + st0[i:i+3]+ " "
ms_1 =[m.start() for m in re.finditer('ATG', seq_0)]
ms_2 =[m.start() for m in re.finditer('(TAA)|(TAG)|(TGA)', seq_0)]
def get_next(arr,value):
for a in arr:
if a > value:
return a
return -1
codons = []
start_codon=ms_1[0]
while (True):
stop_codon = get_next(ms_2,start_codon)
if stop_codon == -1:
break
codons.append((start_codon,stop_codon))
start_codon = get_next(ms_1,stop_codon)
if start_codon==-1:
break
max_val = 0
selected_tupple =()
for i in codons:
k=i[1]-i[0]
if k > max_val:
max_val = k
selected_tupple = i
print "selected tupple is ", selected_tupple
final_seq=seq_0[selected_tupple[0]:selected_tupple[1]+3]
print final_seq
print "The longest orf length is " + str(max_val)
output_file = open('Longorf.txt','w')
output_file.write(str(orf_find(st0)))
output_file.close()
ऊपर लिखने समारोह किसी पाठ फ़ाइल में पर सामग्री लिखने में मेरी मदद नहीं करता है। मैं सब कुछ नहीं मिला .. यह त्रुटि क्यों .. क्या कोई मदद कर सकता है?
आप समारोह से उत्पादन वापस लौटाना होगा। मैंने अभी अपना जवाब संपादित किया है। – MoRe