728x90
๋ฌธ์ ์ค๋ช
์๋ก ๋ค๋ฅธ ์ข ์ ์ ์ ์ฒด์์ ๊ณตํต์ ์ผ๋ก ๊ฐ์ง DNA ์์ด์ด ๋ฐ๊ฒฌ๋๋ค๋ฉด ์ด ์์ด์ ๋ ์ข ์์ ๋ชจ๋ ๋น์ทํ ๊ธฐ๋ฅ์ ํ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐ ํ ์ ์๋ค. ์ด๋ฌํ ์์ด์ ๋ชจํฐํ(motif)๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๋ถ์์๋ฌผํ ๋ถ์ผ์์๋ ์ด๋ค ์๋ฌผ์ ์ ์ ์ฒด์์ ์ด๋ฐ ๋ชจํฐํ๋ฅผ ์ฐพ๋ ์ผ์ ํํ ํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
๋ชจํฐํ์ฒ๋ผ ์ ์ฌํ ์์ด์ด ์ฌ๋ฌ๋ฒ์ด๋ ํ ์ ์ ์ฒด์์ ๋ฐ๊ฒฌ๋๋ ๊ฒฝ์ฐ๋ ์๋๋ฐ ์ด๋ฌํ ์์ด์ repeat์ด๋ผ ๋ถ๋ฅธ๋ค. Repeat์ ๋๋ค์ผ๋ก ์๊ฒจ๋ ์์ด์ด๋ผ๊ธฐ์๋ ์ ๋ง ์์ฃผ ๋ฐ์ํ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค. ์ธ๊ฐ ์ ์ ์ฒด์์ ๊ฐ์ฅ ํํ repeat์ Alu repeat์ด๋ผ๋ ๊ฑด๋ฐ ์ด๊ฒ์ 300 bp ์ ๋์ ๊ธธ์ด์ ํ ์ฌ๋์๊ฒ์ 100๋ง๋ฒ ์ ๋ ๋ฐ์ํ๋ ๊ฒ์ผ๋ก ์๋ ค์ ธ ์๋ค. ํ์ง๋ง ์ด๋ฌํ Alu repeat์ ์ข์ ์ญํ ๋ณด๋ค๋ ์คํ๋ ค ์ ์ํฅ์ ๋ผ์น๋ ๊ฒ์ผ๋ก ์๋ ค์ ธ ์๋๋ฐ ์๋ก์ด Alu repeat์ด ์ ์ ์ฒด์ ์ฝ์ ๋์์ ๋ ์ ์ ์งํ์ด ๋ฐ์ํ๋๊ฑธ ํํ ๋ณผ ์ ์๋ค.
๋ฌธ์ (Finding a Motif in DNA)
DNA ์์ด s์ s๋ณด๋ค ๊ธธ์ด๊ฐ ์งง์ t ์์ด์ด ์ฃผ์ด์ง๋ค. t๊ฐ s์์ ๋ช๋ฒ์งธ ์์น์ ํฌํจ๋์ด ์๋์ง ๋ชจ๋ ์ถ๋ ฅํ์์ค.
์์
GATATATGCATATACTT
ATAT
์์ ๊ฒฐ๊ณผ
2 4 10
ํด๊ฒฐ
def dna_motif(seq, motif):
ans = []
# seq์์ motif ๊ธธ์ด์ ๊ฐ์ ์์ด์ ๋ชจ๋ ํ์ธํ๊ธฐ
for i in range(len(seq)-len(motif)+1):
if seq[i:i+len(motif)] == motif:
ans.append(str(i+1))
return ' '.join(ans)
with open('rosalind_subs.txt', 'r') as f:
lines = f.readlines()
print(dna_motif(lines[0].strip(), lines[1].strip()))
'๐งฌ Biology > ๋ฐ์ด์ค ์ฝ๋ฉ ๋ฌธ์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ROSALIND] Open reading frame (6-frame ๋ฒ์ญํ๊ธฐ) (0) | 2023.05.30 |
---|---|
[ROSALIND] ๋จ๋ฐฑ์ง ์์ด์์ mRNA ์์ด ์์ธกํด๋ณด๊ธฐ (0) | 2023.05.29 |
[ROSALIND] DNA์ ์ธํธ๋ก (intron) ์์ญ ์ ๊ฑฐ ํ ๋จ๋ฐฑ์ง๋ก ๋ฒ์ญ (0) | 2023.05.27 |
[ROSALIND] ๋จ๋ฐฑ์ง ์ง๋ ๊ตฌํ๊ธฐ (0) | 2023.05.26 |
[ROSALIND] DNA๊ฐ ๊ณต์ ํ๋ motif ์ฐพ๊ธฐ (0) | 2023.05.25 |
๋๊ธ