Goal
1. K-mer๋?
2. K-mer๋ก ์์ด ํจํด ๋น๋ ๊ตฌํ๊ธฐ
K-mer๋?
์๋ฌผ์ ๋ณดํ์์ k-mer๋ผ๋ ๋ง์ ํํ ๋ค์ด ๋ณผ ์ ์๋ค. K-mer๋ ์ฝ๊ฒ ์๊ธฐํด์ k ์ซ์๋งํผ ๊ธธ์ด๋ฅผ ๊ฐ์ง ์์ด์ ์๊ธฐํ๋ค.
์๋ฅผ ๋ค์ด 3-mer๋ผ๋ฉด 3 bp ๊ธธ์ด๋ฅผ ๊ฐ์ง "ATA", "ATT", "GCT", "AGT" ๋ฑ 3๊ฐ์ ์ผ๊ธฐ๋ก ์ด๋ฃจ์ด์ง DNA ์์ด ๊ฐ์๊ฑธ ์๊ธฐํ๋ ๊ฒ์ด๋ค.
K-mer๋ก ํจํด ๋น๋ ๊ตฌํ๊ธฐ ๋ฌธ์
DNA ๋ณต์ ๋ฅผ ์์ํ๋ ์์ ์ origin of replication, ์ฆ ori ๋ผ๊ณ ๋ถ๋ฅธ๋ค. Vibrio cholerae๋ผ๋ ๊ท ์ ori ์์ด์ ์๋์ ๊ฐ๋ค.
atcaatgatcaacgtaagcttctaagcatgatcaaggtgctcacacagtttatccacaacctgagtggatgacatcaagatag
gtcgttgtatctccttcctctcgtactctcatgaccacggaaagatgatcaagagaggatgatttcttggccatatcgcaatgaa
tacttgtgacttgtgcttccaattgacatcttcagcgccatattgcgctggccaaggtgacggagcgggattacgaaagcatg
atcatggctgttgttctgtttatcttgttttgactgagacttgttaggatagacggtttttcatcactgactagccaaagccttactc
tgcctgacatcgaccgtaaattgataatgaatttacatgcttccgcgacgatttacctcttgatcatcgatccgattgaagatctt
caattgttaattctcttgcctcgactcatagccatgatgagctcttgatcatgtttccttaaccctctattttttacggaagaatgat
caagctgctgctcttgatcatcgtttc
์์ ori ์์ด์์ ๋จ๋ฐฑ์ง์ด ๊ฒฐํฉํด ์ค์ํ ์ญํ ์ ํ๋ ์์ด์ด "TGATCA"๋ผ๊ณ ํ์ ๋, "TGATCA"๊ฐ ๋ช ๊ตฐ๋ฐ ์๋์ง ํ์ธํ๊ณ ์ถ๋ค. ์ด๊ฒ์ ์ฝ๋๋ก ๊ตฌํํ ๋ k-mer์ ์๋ฆฌ๋ฅผ ์ด์ฉํ๋ฉด ๋๋๋ฐ k-mer๋ฅผ sliding window ํ์์ผ๋ก ๋ง๋ค์ด ํ์ธํ๋ฉด ๋๋ค.
์๋ฅผ ๋ค์ด, 3-mer sliding window๋ฅผ ๋ง๋ ๋ค๋ฉด ์๋์ ๊ฐ์ด 3 bp ๊ธธ์ด๋ก ํ ์นธ์ฉ ์์ผ๋ก ์์ง์ด๋ฉด์ ํด๋น ์์ด์ ๋ชจ๋ 3-mer ์์ด์ ํ์ธํ ์ ์๋ค. (์๋ ๊ทธ๋ฆผ์ "ATA"๋ผ๋ 3-mer๋ฅผ ์ฐพ๋ ์์์ด๋ค.)
์์ ๊ฐ์ด sliding window๋ฅผ ์ฌ์ฉํ๋ค๋ฉด 3-mer์ ์์์ ์ 0์์๋ถํฐ 11๊น์ง์ธ ๊ฒ์ ๋ณผ ์ ์๋ค. ์ฆ, ์ ์ฒด ๊ธธ์ด์ 3์ ๋บ ํฌ์ง์ ๊น์ง์ 3-mer ์์ด์ ํ์ธํ๋ฉด ๋๋ค.
์ฆ, ์ฐพ๊ณ ์ถ์ ํจํด์ ๊ธธ์ด์ธ k ๋งํผ ์ ์ฒด ๊ธธ์ด์์ ๋บ ํฌ์ง์ ๊น์ง์ k-mer๋ฅผ ํ์ธํ๋ฉด ๋๋ค.
def PatternCount(text, pattern):
count = 0
text, pattern = text.upper(), pattern.upper()
for i in range(0, len(text)-len(pattern)+1):
if text[i:i+len(pattern)] == pattern:
count += 1
return count
์ฐธ๊ณ
https://stepik.org/lesson/23143/step/7?unit=6783
'๐งฌ Biology > ์๋ฌผ์ ๋ณดํ ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋๋ค๋ง-๋ธ๋์ฌ(๋ถ์ฌ) ์๊ณ ๋ฆฌ์ฆ (Needleman-Wunsch) (0) | 2023.06.14 |
---|
๋๊ธ