728x90
๋ฌธ์ ์ค๋ช
๋จ๋ฐฑ์ง์ ๊ธฐ๋ฅ์ ๋จ์์ธ ๋จ๋ฐฑ์ง ๋๋ฉ์ธ(protein domain)์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ๋๋ฉ์ธ๋ง๋ค ํ๋์ ๊ธฐ๋ฅ์ด ์๋ ค์ ธ ์๊ณ , ์ผ๋ฐ์ ์ผ๋ก ๋จ๋ฐฑ์ง์ ์ฌ๋ฌ ์ญํ ์ํ๊ธฐ ๋๋ฌธ์ 1๊ฐ ์ด์์ ๋๋ฉ์ธ์ ๊ฐ์ง๊ณ ์๋ค. ์ด๋ ๊ฒ ๊ฐ์ ๋๋ฉ์ธ์ ๊ฐ์ง๊ณ ์๋ ๋จ๋ฐฑ์ง๋ค์ ๋ฌถ์ด์ ์ ์ ์๊ตฐ(gene/protein family)๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๋จ๋ฐฑ์ง ๋๋ฉ์ธ์ ๊ธฐ๋ฅ์ ์ ์ํ๋ ๋ ์์ ๋จ์๋ก ๋ชจํฐํ(motif)๊ฐ ์กด์ฌํ๋ค. ๋ชจํฐํ๋ ์งํ์ ์ธก๋ฉด์ผ๋ก ๋ดค์ ๋๋ ์ ๋ณด์กด๋์ด ์๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ์ข ๊ฐ์์๋ ์ ์ฌํ ๋ชจํฐํ์ ํ์ธ์ด ๊ฐ๋ฅํ๋ค.
๋จ๋ฐฑ์ง ์์ด์ ์ธ๊ณ์ ์ผ๋ก ๋ค์ํ ์ฐ๊ตฌ์ค์์ ๋ฐ๊ฒฌ๋๊ณ ์จ๋ผ์ธ ์์์๋ UniProt์ ๋จ๋ฐฑ์ง ๋ฐ์ดํฐ๊ฐ ์์ด๊ณ ์๋ค. ์ฌ๊ธฐ์ ๋จ๋ฐฑ์ง์ ๊ตฌ์ฒด์ ์ธ ์์ด, ๊ธฐ๋ฅ, ๋๋ฉ์ธ ๊ตฌ์กฐ, ๋จ๋ฐฑ์ง ๋ฒ์ญ ํ ๋ณํ(post-translational modification)๊ณผ ๊ฐ์ ๋ค์ํ ์ ๋ณด๊ฐ ์ ๊ณต๋๋ค. ์ด ์ ๋ณด๋ฅผ ์ด์ฉํ์ฌ ์ฐ๊ตฌ์๋ค์ ๋จ๋ฐฑ์ง ์ ์ฌ์ฑ ๊ฒ์, ์ข ๋ถ๋ฅ ๋ถ์, ์ธ์ฉ๋ ๋ฌธํ ๋ฑ์ ์ฐพ์๋ณผ ์ ์๋ค.
๋ฌธ์ (Finding a Protein Motif)
๋จ๋ฐฑ์ง ๋ชจํฐํ๋ ํํ ์ด๋ ๊ฒ ํ๊ธฐํ๋ค:
[XY] = X ๋๋ Y ์๋ฏธ๋ ธ์ฐ
{X} = X๋ฅผ ์ ์ธํ ๋ชจ๋ ์๋ฏธ๋ ธ์ฐ
N-glycosylation ๋ชจํฐํ๋ ์ด๋ ๊ฒ ํ๊ธฐ๋๋ค:
N{P}[ST]{P}
Uniprot ์์ด๋๊ฐ ์ฌ๋ฌ๊ฐ ์ฃผ์ด์ก์ ๋, ํด๋น ๋จ๋ฐฑ์ง ์์ด์ ํฌํจ๋ N-glycosylation ๋ชจํฐํ์ ์์น๋ฅผ ๋ชจ๋ ์ถ๋ ฅํ์์ค.
์์
A2Z669
B5ZC00
P07204_TRBM_HUMAN
P20840_SAG1_YEAST
์์ ๊ฒฐ๊ณผ
B5ZC00
85 118 142 306 395
P07204_TRBM_HUMAN
47 115 116 382 409
P20840_SAG1_YEAST
79 109 135 248 306 348 364 402 485 501 614
ํด๊ฒฐ
from urllib.request import urlopen
import re
with open("rosalind_mprt.txt", "r") as f:
ids = f.readlines()
# N-glycosylation motif = N{P}[ST]{P}
for id in ids:
id = id.strip()
uniprot_id = id.split('_')[0]
url = f"http://www.uniprot.org/uniprot/{uniprot_id}.fasta"
response = urlopen(url)
seq = ''.join(map(lambda x: x.decode('utf-8', 'ignore').replace('\n', ''), response.readlines()[1:]))
res = re.search('N[^P][ST][^P]', seq)
matches = [0]
while res:
start = matches[-1] + res.span()[0] + 1
matches.append(start)
res = re.search('N[^P][ST][^P]', seq[start:])
if len(matches) > 1:
print(id)
print(' '.join(map(str, matches[1:])))
'๐งฌ Biology > ๋ฐ์ด์ค ์ฝ๋ฉ ๋ฌธ์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ROSALIND] ๋จ๋ฐฑ์ง ์ง๋ ๊ตฌํ๊ธฐ (0) | 2023.05.26 |
---|---|
[ROSALIND] DNA๊ฐ ๊ณต์ ํ๋ motif ์ฐพ๊ธฐ (0) | 2023.05.25 |
์ ๊ทํํ์ Regular Expression (0) | 2023.05.23 |
URL๋ก FASTA ์์ด ๊ฐ์ ธ์ค๊ธฐ (0) | 2023.05.22 |
[ROSALIND] ๋จ๋ฐฑ์ง ์์ด๋ก ๋ฒ์ญํ๊ธฐ (2) | 2023.05.14 |
๋๊ธ