728x90
๋ฌธ์ ์ค๋ช
DNA์ ์ ์ฌ ๊ณผ์ (transcription)์ DNA์ ์ผ๋ถ๋ฅผ RNA๋ก ๋ง๋๋ ๊ณผ์ ์ด๋ค. ์ธํฌ์ ํต ๋ด์์ RNA polymerase (RNAP)๋ผ๋ RNA ์คํฉํจ์๊ฐ DNA์ ๋ ๊ฐ๋ฅ ์ค ํ ๊ฐ๋ฅ์ ํ ํ๋ฆฟ(template strand)์ผ๋ก ์ฌ์ฉํด ์๋ณด์ ์ธ ์์ด์ ๋ง๋ ๋ค. ์ด ๋ A์ ์ผ๊ธฐ์์ผ๋ก T ๋์ U๋ฅผ ์ฌ์ฉํ๊ณ , ์ด๋ ๊ฒ ์์ฑ๋ ์์ด์ precursor mRNA (pre-mRNA)๋ผ๊ณ ๋ถ๋ฅธ๋ค.
Pre-mRNA๋ intron๊ณผ exon์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋๋ฐ ๋จ๋ฐฑ์ง๋ก ๋ฒ์ญ๋๊ธฐ ์ ์ intron ์์ญ์ ์ ๊ฑฐ๋๊ณ exon ์์ญ๋ผ๋ฆฌ ์ด์ด ๋ถ์ ์์ด์ mRNA๋ผ ๋ถ๋ฅธ๋ค. ์ด๋ฌํ intron ์ ๊ฑฐ ๊ณผ์ ์ spliceosome์ด๋ผ ๋ถ๋ฆฌ๋ ๋ค์ํ RNA์ ๋จ๋ฐฑ์ง ๊ตฌ์ฑ์ด ์คํ์ํค๋ฉฐ ์ด ๊ณผ์ ์ splicing์ด๋ผ ํ๋ค. Spliceosome์ ํฌํจ๋ RNA์ ๋จ๋ฐฑ์ง๋ splicing ๊ณผ์ ์ ๊ฑฐ์ณ์ผ ํ์ํ ๋ฐ ๊ทธ๋ ๋ค๋ฉด ๊ฐ์ฅ ์ฒซ spliceosome์ ํฌํจ๋ RNA์ ๋จ๋ฐฑ์ง์ ์ด๋ป๊ฒ splicing ๋์๋์ง๊ฐ ์์ง๋ ์๋ฌธ์ด๋ค.
์ฉ์ด ์ ๋ฆฌ๋ฅผ ์ข ํ์๋ฉด, DNA๋ 2๊ฐ์ ๊ฐ๋ฅ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋๋ฐ ๊ฐ๊ฐ template strand (= non-coding strand)์ coding strand (= non-template strand)์ด๋ผ ๋ถ๋ฆฐ๋ค. ์ด๊ฑด ์ฒ์๋ถํฐ ๋ฑ๋ฑ ์ ํด์ ธ ์๋๊ฒ ์๋๋ผ template strand๋ RNAP๊ฐ RNA๋ฅผ ๋ง๋ค ๋ ํ ํ๋ฆฟ์ผ๋ก ์ฌ์ฉํ๋ ๊ฐ๋ฅ์ด๋ฏ๋ก ์์ฐ์ค๋ฝ๊ฒ ๋ฐ๋์ชฝ DNA ๊ฐ๋ฅ์ด coding strand๊ฐ ๋๋ค. ์ฆ, DNA์ coding strand๋ T๋ฅผ U๋ก ๋ฐ๊พผ๊ฑฐ ์ด์ธ์ ๋ง๋ค์ด์ง RNA์ ์์ด์ด ๊ฐ๋ค(์ ๊ทธ๋ฆผ์ฒ๋ผ)! ๊ทธ๋ฆฌ๊ณ exon์ด ์ค์ง์ ์ผ๋ก ๋จ๋ฐฑ์ง์ด ๋์ด ๊ธฐ๋ฅ์ ํ๋ ๋ถ๋ถ์ด๊ธฐ ๋๋ฌธ์ DNA์ ์ ์ ์ ์์ญ์์ exon ๋ถ๋ถ์ ์ ์ ์์ coding region์ด๋ผ ๋ถ๋ฅธ๋ค.
๋ฌธ์ (RNA Splicing)
DNA ์์ด๊ณผ ์ด ์์ด์ intron ์์ญ๋ค์ด ์ฃผ์ด์ก์ ๋, exon๋ง ์ด์ด ๋ถ์ฌ์ ๋จ๋ฐฑ์ง ์์ด๋ก ๋ฒ์ญํ์์ค. ์ฃผ์ด์ง DNA ์์ด์ coding strand๋ผ ์๊ฐํ๋ฉด ๋๋ค.
์์
>Rosalind_10
ATGGTCTACATAGCTGACAAACAGCACGTAGCAATCGGTCGAATCTCGAGAGGCATATGGTCACATGATCGGTCGAGCGTGTTTCAAAGTTTGCGCCTAG
>Rosalind_12
ATCGGTCGAA
>Rosalind_15
ATCGGTCGAGCGTGT
์์ ๊ฒฐ๊ณผ
MVYIADKQHVASREAYGHMFKVCA
ํด๊ฒฐ
codon = {}
# codon์ ํด๋นํ๋ ์๋ฏธ๋
ธ์ฐ ๋์
๋๋ฆฌ์ ์ ์ฅํ๊ธฐ
with open("aa_codon.txt", "r") as f:
for line in f.readlines():
aa = line.split()
for i in range(0, len(aa), 2):
codon[aa[i]] = aa[i+1]
# rna๋ฅผ protein์ผ๋ก ๋ฒ์ญํด์ฃผ๋ ํจ์
def translation(rna):
protein = ''
for i in range(0, len(rna), 3):
protein += codon[rna[i:i+3]]
return protein.replace('Stop', '')
# ํ
์คํธ์ผ์ด์ค ๊ฐ์ ธ์ค๊ธฐ
with open("rosalind_splc.txt") as f:
seqs = []
seq = ''
for line in f.readlines():
if line.startswith('>'):
if seq: # ์์ฑ๋ dna ์์ด ์ ์ฅํ๊ธฐ
seqs.append(seq)
seq = ''
else:
seq += line.strip()
if seq: # ์์ฑ๋ dna ์์ด ์ ์ฅํ๊ธฐ
seqs.append(seq)
dna = seqs[0] # ์ฒซ๋ฒ์งธ ์์ด์ด dna ์์ด์
for i in range(1, len(seqs)): # ๋๋จธ์ง ์์ด์ด intron์
dna = ''.join(dna.split(seqs[i])) # intron ์์ด ๋นผ์ฃผ๊ธฐ ์์ชฝ์ exon ์ด์ด ๋ถ์ฌ์ฃผ๊ธฐ
rna = dna.upper().replace('T', 'U') # T๋ฅผ U๋ก ๋ฐ๊ฟ์ผ๋ก์ dna -> rna
print(translation(rna)) # rna ์์ด ๋จ๋ฐฑ์ง๋ก ๋ฒ์ญํ๊ธฐ
'๐งฌ Biology > ๋ฐ์ด์ค ์ฝ๋ฉ ๋ฌธ์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ROSALIND] ๋จ๋ฐฑ์ง ์์ด์์ mRNA ์์ด ์์ธกํด๋ณด๊ธฐ (0) | 2023.05.29 |
---|---|
[ROSALIND] DNA ์์ด์์ motif ์ฐพ๊ธฐ (0) | 2023.05.28 |
[ROSALIND] ๋จ๋ฐฑ์ง ์ง๋ ๊ตฌํ๊ธฐ (0) | 2023.05.26 |
[ROSALIND] DNA๊ฐ ๊ณต์ ํ๋ motif ์ฐพ๊ธฐ (0) | 2023.05.25 |
[ROSALIND] ๋จ๋ฐฑ์ง motif ์ฐพ๊ธฐ (0) | 2023.05.23 |
๋๊ธ