๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿงฌ Biology/๋ฐ”์ด์˜ค ์ฝ”๋”ฉ ๋ฌธ์ œ

[ROSALIND] ํŒจํ„ด์„ ์ˆซ์ž๋กœ

by HelloRabbit 2023. 7. 1.
728x90

๋ฌธ์ œ (ํ’€์–ด๋ณด๊ธฐ)

DNA ์„œ์—ด์ด ์ฃผ์–ด์กŒ์„ ๋•Œ ๊ฐ™์€ ๊ธธ์ด์˜ ์„œ์—ด๋“ค์ด ์•ŒํŒŒ๋ฒณ ์ˆœ์œผ๋กœ ์ •๋ ฌ๋œ๋‹ค๋ฉด ์ฃผ์–ด์ง„ ์„œ์—ด์€ ๋ช‡ ๋ฒˆ์งธ ์ž๋ฆฌ์— ์žˆ๋Š”์ง€ ์ถœ๋ ฅํ•˜์‹œ์˜ค.

์˜ˆ์‹œ

AGT

์˜ˆ์ƒ ๊ฒฐ๊ณผ

11

 

ํ•ด๊ฒฐ

def pattern_index(pattern):
    nuc_number = {'A':0, 'C':1, 'G':2, 'T':3}
    if len(pattern) == 1:
        return nuc_number[pattern]
    
    return 4 * pattern_index(pattern[:-1]) + nuc_number[pattern[-1]]

print(pattern_index('CCGAAAACATCCAAGTCTCCAA'))

 

์•„๋ž˜ ๊ทธ๋ฆผ์—์„œ ์ฒ˜๋Ÿผ DNA ์„œ์—ด์—๋Š” A, C, G, T ๋กœ ์ด 4๊ฐ€์ง€ ์—ผ๊ธฐ์„œ์—ด๋งŒ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•ญ์ƒ 4๊ฐœ์”ฉ ๊ธธ์ด๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ฒŒ ๋œ๋‹ค. ์ด ์›๋ฆฌ๋ฅผ ์ด์šฉํ•ด์„œ ์•ž ๋ถ€๋ถ„(๋นจ๊ฐ„์ƒ‰ ํ‘œ์‹œ)์˜ ์•ŒํŒŒ๋ฒณ ์ˆœ์„œ๋งŒ ์ฐจ๋ก€๋Œ€๋กœ ๊ณ„์‚ฐํ•˜๋‹ค ๋ณด๋ฉด ์ฃผ์–ด์ง„ DNA ์„œ์—ด์˜ ์ตœ์ข… ์œ„์น˜๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค.  

 

 

๋Œ“๊ธ€