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

[ROSALIND] ๋‹จ๋ฐฑ์งˆ ์งˆ๋Ÿ‰ ๊ตฌํ•˜๊ธฐ

by HelloRabbit 2023. 5. 26.
728x90

๋ฌธ์ œ ์„ค๋ช…

๋‹จ๋ฐฑ์งˆ์€ ์•„๋ฏธ๋…ธ์‚ฐ(amino acid)์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ์•„๋ฏธ๋…ธ์‚ฐ์ด 2๊ฐœ ํ•ฉ์ณ์งˆ ๋•Œ peptide bond๊ฐ€ ํ˜•์„ฑ ๋˜๋Š”๋ฐ ์ด ๋•Œ ๋ฌผ ๋ถ„์ž(H2O) ํ•˜๋‚˜๊ฐ€ ๋น ์ง€๊ฒŒ ๋œ๋‹ค. ์ด๋ ‡๊ฒŒ ์—ฌ๋Ÿฌ ์•„๋ฏธ๋…ธ์‚ฐ์ด ์—ฐ๊ฒฐ๋œ ๊ฒƒ์„ polypeptide๋ผ ๋ถ€๋ฅด๊ณ , n๊ฐœ ์•„๋ฏธ๋…ธ์‚ฐ์ด ์—ฐ๊ฒฐ๋˜์—ˆ๋‹ค๋ฉด n-1๊ฐœ์˜ ๋ฌผ ๋ถ„์ž๊ฐ€ ๋น ์ง„ ๊ฒƒ์ด๋‹ค. Polypeptide์˜ ์–‘์ชฝ ๋์—๋Š” ๋‹ค๋ฅธ ์•„๋ฏธ๋…ธ์‚ฐ๊ณผ ๊ฒฐํ•ฉ๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•˜๋‚˜์˜ ๋ฌผ ๋ถ„์ž๊ฐ€ ๋‚จ์•„์žˆ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, polypeptide์˜ ์งˆ๋Ÿ‰๋Š” ๊ฐ residue(๋ฌผ ๋ถ„์ž๊ฐ€ ๋น ์ง„ ์•„๋ฏธ๋…ธ์‚ฐ)์˜ ๊ฐœ๋ณ„ ์งˆ๋Ÿ‰์™€ ๋ฌผ ๋ถ„์ž 1๊ฐœ(๋ฌผ ๋ถ„์ž์˜ monoisotopic mass๋Š” 18.01056 Da์ด)์˜ ์งˆ๋Ÿ‰์œผ๋กœ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค.
์•„๋ฏธ๋…ธ์‚ฐ 2๊ฐœ๋ฅผ๊ฒฐํ•ฉํ•œ peptide

์•„๋ฏธ๋…ธ์‚ฐ์˜ ์งˆ๋Ÿ‰์„ ๊ณ„์‚ฐํ•  ๋•Œ monoisotopic mass๋ฅผ ์ด์šฉํ•˜๋Š”๋ฐ ์ด๊ฒƒ์€ ๊ฐ ๋ถ„์ž(molecule)๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์›์ž(atom)๋“ค์˜ ๊ฐ€์žฅ ํ”ํ•œ ๋™์œ„์›์†Œ์˜ ํ‰๊ท  ์งˆ๋Ÿ‰์ด๋‹ค. Monoisotopic mass์˜ ๊ธฐ์ค€ ๋‹จ์œ„๋Š” dalton (Da; carbon-12 ์งˆ๋Ÿ‰์˜ 1/12 ๋˜๋Š” ๋‹จ์œ„)์ด๋‹ค. 

ํ•˜์ง€๋งŒ ์ด๋ฒˆ ๋ฌธ์ œ์™€ ๊ฐ™์ด ROSALIND์—์„œ monoisotopic mass๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฌธ์ œ๋“ค์€ ๋ฌผ ๋ถ„์ž 1๊ฐœ์˜ ์งˆ๋Ÿ‰์„ ๋”ํ•˜๋Š” ๊ฒƒ์€ ๋ฌด์‹œํ•˜๊ณ  ์ง„ํ–‰ํ•œ๋‹ค.

 

๋ฌธ์ œ (Calculating Protein Mass)

๊ฐ ์•„๋ฏธ๋…ธ์‚ฐ์˜ monoisotopic mass๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ ์ฃผ์–ด์ง„ ๋‹จ๋ฐฑ์งˆ ์„œ์—ด์˜ ์งˆ๋Ÿ‰์„ ์ถœ๋ ฅํ•˜์‹œ์˜ค.

aa_mass.txt
0.00MB

์˜ˆ์‹œ

SKADYEK

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

821.392

 

ํ•ด๊ฒฐ

aa_mass = {}
with open("aa_mass.txt", "r") as file:
    lines = file.readlines()

    for line in lines:
        aa, mass = line.strip().split()
        aa_mass[aa] = float(mass)
    
def calc_mass(s):
    total_mass = 0
    for aa in s:
        total_mass += aa_mass[aa]
    
    return total_mass

with open("rosalind_prtm.txt", "r") as f:
    protein = f.readlines()[0].strip()
    print(calc_mass(protein))

 

 

 

 

๋Œ“๊ธ€