728x90
๋ฌธ์ ์ค๋ช
์ฐ๊ตฌ์๋ค์ด ์๋ก์ด ๋จ๋ฐฑ์ง์ ๋ฐ๊ฒฌํ์ ๋ ์ด ๋จ๋ฐฑ์ง์ด ์ด๋ค mRNA ์์ด์์๋ถํฐ ๋ฒ์ญ๋ ๊ฒ์ธ์ง ์์์ผ ์ ์ ์ฒด์์ ์ด ๋จ๋ฐฑ์ง์ ๋ง๋๋ ๊ตฌ๊ฐ์ ์ฐพ์ ์ ์๊ธฐ ๋๋ฌธ์ ๋จ๋ฐฑ์ง ์์ด๋ก mRNA ์์ด์ ์์ธกํ๋ ๊ฒ์ ๋งค์ฐ ์ค์ํ ์ผ์ด๋ค.
ํ์ง๋ง ํ๋์ mRNA๊ฐ ํน์ ํ ๋จ๋ฐฑ์ง๋ก ๋ฒ์ญ๋๋ ๋ฐ๋ฉด์ ๋จ๋ฐฑ์ง์์ mRNA ์์ด์ ์์๋ด๋๊ฑด ๊ฒฝ์ฐ์ ์๊ฐ ๋๋ฌด ๋ง๊ธฐ ๋๋ฌธ์ ์๊ฐ๋ณด๋ค ํ๋ ์ผ์ด๋ค. ์๋์ ๊ทธ๋ฆผ์ ๋ณด์ด๋ ๊ฒ์ฒ๋ผ ํ๋์ ์๋ฏธ๋ ธ์ฐ์ ์ฌ๋ฌ ๊ฐ์ codon์ด ๋ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
๋ฌธ์
์ต๋ ๊ธธ์ด๊ฐ 1000๊ฐ์ ์๋ฏธ๋ ธ์ฐ์ผ๋ก ์ด๋ฃจ์ด์ง ๋จ๋ฐฑ์ง ์์ด์ด ์ฃผ์ด์ก์ ๋ mRNA๊ฐ ๋ ์ ์๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์ถ๋ ฅํด์ผํ๋ค. ์ด ๋, ํ์ด์ฌ์์ int๊ฐ ๊ฐ์ง ์ ์๋ ๊ฐ์ฅ ํฐ ๊ฐ์ 2,147,483,647 (2^31−1)์ด๊ธฐ ๋๋ฌธ์ 1,000,000์ผ๋ก ๋๋ ๋๋จธ์ง ๊ฐ์ ๋์ ์ถ๋ ฅํ์์ค.
์์
MA
์์ ๊ฒฐ๊ณผ
12
ํด๊ฒฐ
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):
if aa[i+1] in codon:
codon[aa[i+1]] += 1
else:
codon[aa[i+1]] = 1
# ๋จ๋ฐฑ์ง ์์ด์ด mRNA ์์ด์ด ๋ ์ ์๋ ๊ฒฝ์ฐ์ ์ ๊ตฌํ๊ธฐ
def rev_translation(protein):
ans = 3
for aa in protein:
ans *= codon[aa]
return ans
# ์
๋ ฅ๊ฐ ๊ฐ์ ธ์ค๊ธฐ
with open('rosalind_mrna.txt', 'r') as f:
print(rev_translation(f.readline().strip()) % 1000000)
'๐งฌ Biology > ๋ฐ์ด์ค ์ฝ๋ฉ ๋ฌธ์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ROSALIND] ๋ถ๋ถ์ ์์ด (0) | 2023.06.15 |
---|---|
[ROSALIND] Open reading frame (6-frame ๋ฒ์ญํ๊ธฐ) (0) | 2023.05.30 |
[ROSALIND] DNA ์์ด์์ motif ์ฐพ๊ธฐ (0) | 2023.05.28 |
[ROSALIND] DNA์ ์ธํธ๋ก (intron) ์์ญ ์ ๊ฑฐ ํ ๋จ๋ฐฑ์ง๋ก ๋ฒ์ญ (0) | 2023.05.27 |
[ROSALIND] ๋จ๋ฐฑ์ง ์ง๋ ๊ตฌํ๊ธฐ (0) | 2023.05.26 |
๋๊ธ