์๋ฌผ์ ๋ณดํ์ ์ํ ํ์ด์ฌ์ ์ฌ์ฉํ DNA ์์ด ๋ถ์์ ๋ํ ์ข ํฉ ๊ฐ์ด๋๋ก, ์ ์ธ๊ณ ์ฐ๊ตฌ์ ๋ฐ ๋ฐ์ดํฐ ๊ณผํ์๋ฅผ ์ํ ๊ธฐ๋ณธ ๊ฐ๋ , ์ค์ ์ ์ฉ ๋ฐ ๊ณ ๊ธ ๊ธฐ์ ์ ๋ค๋ฃน๋๋ค.
ํ์ด์ฌ ์๋ฌผ์ ๋ณดํ: DNA ์์ด ๋ถ์ ๋ง์คํฐํ๊ธฐ
์๋ฌผ์ ๋ณดํ์ ํต์ฌ์ ์ผ๋ก ์๋ฌผํ์ ๋ฐ์ดํฐ๋ฅผ ์ดํดํ๊ธฐ ์ํ ๋ฐฉ๋ฒ๊ณผ ์ํํธ์จ์ด ๋๊ตฌ๋ฅผ ๊ฐ๋ฐํ๋ ํ์ ๊ฐ ๋ถ์ผ์ ๋๋ค. ๋ง์ ์์ฉ ๋ถ์ผ ์ค์์๋ DNA ์์ด ๋ถ์์ DNA ๋ถ์ ๋ด์ ์ํธํ๋ ์ ์ ์ ๋ณด๋ฅผ ํด๋ ํ ์ ์๋๋ก ์ฐ๊ตฌ์์๊ฒ ๊ถํ์ ๋ถ์ฌํ๋ ์ค์ํ ์์ญ์ผ๋ก ๋๋๋ฌ์ง๋๋ค. ์ด ์ข ํฉ ๊ฐ์ด๋๋ ์๋ฌผ์ ๋ณดํ์์ ํ์ด์ฌ์ ํ์ ํ๊ตฌํ๊ณ , ํนํ DNA ์์ด ๋ถ์์ ์ค์ ์ ๋์ด ์ ์ธ๊ณ ์ฐ๊ตฌ์๊ณผ ๋ฐ์ดํฐ ๊ณผํ์์๊ฒ ์ ์ฉํ ์ ์๋ ์ค์ ์์ ์ ํต์ฐฐ๋ ฅ์ ์ ๊ณตํฉ๋๋ค.
DNA ์์ด ๋ถ์์ ํ์ด์ฌ์ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ฌด์์ผ๊น์?
ํ์ด์ฌ์ ๋ค์๊ณผ ๊ฐ์ ์ด์ ๋ก ์๋ฌผ์ ๋ณดํ์์ ์ ๋์ ์ธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ๋ถ์ํ์ต๋๋ค.
- ๊ฐ๋ ์ฑ ๋ฐ ์ฌ์ฉ ํธ์์ฑ: ํ์ด์ฌ์ ๋ช ํํ ๊ตฌ๋ฌธ์ ํ๋ก๊ทธ๋๋ฐ ๊ฒฝํ์ด ์ ํ์ ์ธ ์ฌ๋๋ ์ฝ๊ฒ ๋ฐฐ์ฐ๊ณ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ๊ด๋ฒ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ: Biopython๊ณผ ๊ฐ์ ๊ฐ๋ ฅํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ณต์กํ ์๋ฌผ์ ๋ณดํ ์์ ์ ํฌ๊ฒ ๋จ์ํํ ์ ์์ต๋๋ค.
- ๋๊ท๋ชจ ์ปค๋ฎค๋ํฐ ์ง์: ํ๋ฐํ๊ณ ํ๋์ ์ธ ์ปค๋ฎค๋ํฐ๋ ์๋ฌผ์ ๋ณดํ์์ ํ์ด์ฌ ์ฌ์ฉ์์๊ฒ ํ๋ถํ ๋ฆฌ์์ค, ํํ ๋ฆฌ์ผ ๋ฐ ์ง์์ ์ ๊ณตํฉ๋๋ค.
- ํ๋ซํผ ๊ฐ ํธํ์ฑ: ํ์ด์ฌ์ ๋ค์ํ ์ด์ ์ฒด์ (Windows, macOS, Linux)์์ ์ํํ๊ฒ ์คํ๋๋ฏ๋ก ์ฌ๋ฌ ๊ธฐ๊ด ๋ฐ ๊ตญ๊ฐ ๊ฐ์ ๊ณต๋ ์ฐ๊ตฌ ํ๋ก์ ํธ์ ์ด์์ ์ ๋๋ค.
DNA ์์ด ๋ถ์์ ๊ธฐ๋ณธ ๊ฐ๋
ํ์ด์ฌ ์ฝ๋๋ฅผ ์ดํด๋ณด๊ธฐ ์ ์ DNA ์์ด ๋ถ์๊ณผ ๊ด๋ จ๋ ํต์ฌ ๊ฐ๋ ์ ์ดํดํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
- DNA ๊ตฌ์กฐ: ๋ฐ์ฅ์๋ฆฌ๋ณดํต์ฐ(DNA)์ ๋ชจ๋ ์๋ ค์ง ์๋ช ์ฒด์ ๋ง์ ๋ฐ์ด๋ฌ์ค์ ๋ํ ์ ์ ์ง์นจ์ ์ ๋ฌํ๋ ์ด์ค ๋์ ์ ํ์ฑํ๊ธฐ ์ํด ์๋ก ๊ฐ๊ธฐ๋ ๋ ๊ฐ์ ์ฌ์ฌ๋ก ๊ตฌ์ฑ๋ ๋ถ์์ ๋๋ค. ๋ DNA ๊ฐ๋ฅ์ ์๋ณด์ ์ด๋ฉฐ ์ญํํํฉ๋๋ค.
- ๋ดํด๋ ์คํฐ๋: ๋น(๋ฐ์ฅ์๋ฆฌ๋ณด์ค์ค), ์ธ์ฐ๊ธฐ ๋ฐ ์ง์ ์ผ๊ธฐ(์๋ฐ๋(A), ๊ตฌ์๋(G), ์ํ ์ (C) ๋๋ ํฐ๋ฏผ(T))๋ก ๊ตฌ์ฑ๋ DNA์ ๊ตฌ์ฑ ์์์ ๋๋ค.
- ์์ด ๋ถ์: DNA ๋ถ์ ๋ด์์ ๋ดํด๋ ์คํฐ๋์ ์์๋ฅผ ๊ฒฐ์ ํ๋ ํ๋ก์ธ์ค์ ๋๋ค. ์ฐจ์ธ๋ ์์ด ๋ถ์(NGS) ๊ธฐ์ ์ ๊ธฐ์กด์ Sanger ์์ด ๋ถ์์ ๋นํด ํจ์ฌ ์ ์ ๋น์ฉ๊ณผ ์๊ฐ์ผ๋ก ๊ณ ์ฒ๋ฆฌ๋ ์์ด ๋ถ์์ ๊ฐ๋ฅํ๊ฒ ํ์ฌ ์ ์ ์ฒดํ์ ํ๋ช ์ ์ผ์ผ์ผฐ์ต๋๋ค.
- ์์ด ์ ๋ ฌ: ๊ธฐ๋ฅ์ , ๊ตฌ์กฐ์ ๋๋ ์งํ์ ๊ด๊ณ์ ๊ฒฐ๊ณผ์ผ ์ ์๋ ์ ์ฌ์ฑ ์์ญ์ ์๋ณํ๊ธฐ ์ํด ๋ ์ด์์ ์์ด์ ๋ฐฐ์ดํ๋ ํ๋ก์ธ์ค์ ๋๋ค.
- ์์ด ์กฐ๋ฆฝ: ์์ด ๋ถ์ ์ค์ ์ป์ ๋ง์ ์งง์ ํ๋ ๊ฐ์์ ๊ธด DNA ์์ด์ ์ฌ๊ตฌ์ฑํ๋ ํ๋ก์ธ์ค์ ๋๋ค. ์ด๊ฒ์ ๋จํธํ๋ DNA ๋๋ ์ ์ฒด ๊ฒ๋ ์์ด ๋ถ์ ํ๋ก์ ํธ๋ก ์์ ํ ๋ ํนํ ๊ด๋ จ์ด ์์ต๋๋ค.
ํ์ ๋๊ตฌ ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ: Biopython
Biopython์ ์๋ฌผ์ ๋ณดํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํด ํน๋ณํ ์ค๊ณ๋ ๊ฐ๋ ฅํ ํ์ด์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ๋ค์์ ์ํ ๋ชจ๋์ ์ ๊ณตํฉ๋๋ค.
- ์์ด ์กฐ์: DNA, RNA ๋ฐ ๋จ๋ฐฑ์ง ์์ด์ ์ฝ๊ณ ์ฐ๊ณ ์กฐ์ํฉ๋๋ค.
- ์์ด ์ ๋ ฌ: ๋ก์ปฌ ๋ฐ ๊ธ๋ก๋ฒ ์์ด ์ ๋ ฌ์ ์ํํฉ๋๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ก์ธ์ค: GenBank ๋ฐ UniProt๊ณผ ๊ฐ์ ์๋ฌผํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ก์ธ์คํ๊ณ ์ฟผ๋ฆฌํฉ๋๋ค.
- ๊ณํต ๋ฐ์ ๋ถ์: ๊ณํต ๋ฐ์ ํธ๋ฆฌ๋ฅผ ๊ตฌ์ถํ๊ณ ๋ถ์ํฉ๋๋ค.
- ๊ตฌ์กฐ ๋ถ์: ๋จ๋ฐฑ์ง ๊ตฌ์กฐ ์์ .
Biopython ์ค์น
Biopython์ ์ค์นํ๋ ค๋ฉด pip๋ฅผ ์ฌ์ฉํ์ญ์์ค.
pip install biopython
์ค์ ์์ : ํ์ด์ฌ์ ์ฌ์ฉํ DNA ์์ด ๋ถ์
ํ์ด์ฌ๊ณผ Biopython์ ์ฌ์ฉํ์ฌ DNA ์์ด ๋ถ์์ ์ฌ์ฉํ ์ ์๋ ๋ช ๊ฐ์ง ์ค์ ์์ ๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์์ 1: FASTA ํ์ผ์์ DNA ์์ด ์ฝ๊ธฐ
FASTA๋ ๋ดํด๋ ์คํฐ๋ ๋ฐ ๋จ๋ฐฑ์ง ์์ด์ ์ ์ฅํ๊ธฐ ์ํ ์ผ๋ฐ์ ์ธ ํ์ผ ํ์์ ๋๋ค. FASTA ํ์ผ์์ DNA ์์ด์ ์ฝ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
from Bio import SeqIO
for record in SeqIO.parse("example.fasta", "fasta"):
print("ID:", record.id)
print("Description:", record.description)
print("Sequence:", record.seq)
์ค๋ช :
- Biopython์์
SeqIO๋ชจ๋์ ๊ฐ์ ธ์ต๋๋ค. SeqIO.parse()๋ FASTA ํ์ผ์ ์ฝ๊ณ ํ์ผ์ ๊ฐ ์์ด์ ๋ํ ์์ด ๋ ์ฝ๋๋ฅผ ๋ฐํํฉ๋๋ค.- ๋ ์ฝ๋๋ฅผ ๋ฐ๋ณตํ๊ณ ID, ์ค๋ช ๋ฐ ์์ด์ ์ธ์ํฉ๋๋ค.
์์ `example.fasta` ํ์ผ ๋ด์ฉ:
>sequence1 Example DNA sequence
ATGCGTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGC
์์ 2: DNA๋ฅผ RNA๋ก ์ ์ฌ
์ ์ฌ๋ DNA ํ ํ๋ฆฟ์์ RNA ๋ถ์๋ฅผ ์์ฑํ๋ ํ๋ก์ธ์ค์ ๋๋ค. RNA์์ ์ผ๊ธฐ ํฐ๋ฏผ(T)์ ์ฐ๋ผ์ค(U)๋ก ๋์ฒด๋ฉ๋๋ค.
from Bio.Seq import Seq
dna_sequence = Seq("ATGCGTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGC")
rna_sequence = dna_sequence.transcribe()
print("DNA Sequence:", dna_sequence)
print("RNA Sequence:", rna_sequence)
์ค๋ช :
- DNA ์์ด์์
Seq๊ฐ์ฒด๋ฅผ ๋ง๋ญ๋๋ค. transcribe()๋ฉ์๋๋ T์ ๋ชจ๋ ํญ๋ชฉ์ U๋ก ๋ฐ๊ฟ๋๋ค.
์์ 3: RNA๋ฅผ ๋จ๋ฐฑ์ง๋ก ๋ฒ์ญ
๋ฒ์ญ์ RNA ์์ด์์ ๋จ๋ฐฑ์ง์ ์์ฑํ๋ ํ๋ก์ธ์ค์ ๋๋ค. ์ฌ๊ธฐ์๋ ์ฝ๋(3๊ฐ์ ๋ดํด๋ ์คํฐ๋ ๊ทธ๋ฃน)์ผ๋ก RNA ์์ด์ ์ฝ๊ณ ๊ฐ ์ฝ๋์ ํด๋น ์๋ฏธ๋ ธ์ฐ๊ณผ ์ผ์น์ํค๋ ๊ฒ์ด ํฌํจ๋ฉ๋๋ค.
from Bio.Seq import Seq
rna_sequence = Seq("AUGCGUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGC")
protein_sequence = rna_sequence.translate()
print("RNA Sequence:", rna_sequence)
print("Protein Sequence:", protein_sequence)
์ค๋ช :
- RNA ์์ด์์
Seq๊ฐ์ฒด๋ฅผ ๋ง๋ญ๋๋ค. translate()๋ฉ์๋๋ ํ์ค ์ ์ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ RNA ์์ด์ ๋จ๋ฐฑ์ง ์์ด๋ก ๋ฒ์ญํฉ๋๋ค.
์์ 4: DNA ์์ด์ GC ํจ๋ ๊ณ์ฐ
GC ํจ๋์ DNA ๋๋ RNA ์์ด์์ ๊ตฌ์๋(G) ๋ฐ ์ํ ์ (C) ์ผ๊ธฐ์ ๋ฐฑ๋ถ์จ์ ๋๋ค. ์ด๊ฒ์ ๊ฒ๋ DNA์ ์ค์ํ ํน์ฑ์ด๋ฉฐ DNA ์์ ์ฑ ๋ฐ ์ ์ ์ ๋ฐํ์ ์ํฅ์ ์ค ์ ์์ต๋๋ค.
from Bio.Seq import Seq
def calculate_gc_content(sequence):
sequence = sequence.upper()
gc_count = sequence.count("G") + sequence.count("C")
return (gc_count / len(sequence)) * 100
dna_sequence = Seq("ATGCGTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGC")
gc_content = calculate_gc_content(str(dna_sequence))
print("DNA Sequence:", dna_sequence)
print("GC Content:", gc_content, "%")
์ค๋ช :
- ์
๋ ฅ์ผ๋ก ์์ด์ ์ฌ์ฉํ๋ ํจ์
calculate_gc_content()๋ฅผ ์ ์ํฉ๋๋ค. - ๊ฐ์๊ฐ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์๋๋ก ์์ด์ ๋๋ฌธ์๋ก ๋ณํํฉ๋๋ค.
- ์์ด์์ G ๋ฐ C ์ผ๊ธฐ์ ์๋ฅผ ์ ๋๋ค.
- ์์ด์์ G ๋ฐ C ์ผ๊ธฐ์ ๋ฐฑ๋ถ์จ๋ก GC ํจ๋์ ๊ณ์ฐํฉ๋๋ค.
์์ 5: Biopython์ ์ฌ์ฉํ์ฌ ๋ก์ปฌ ์์ด ์ ๋ ฌ ์ํ
์์ด ์ ๋ ฌ์ ๋ง์ ์๋ฌผ์ ๋ณดํ ๋ถ์์์ ์ค์ํ ๋จ๊ณ์ ๋๋ค. ๋ก์ปฌ ์ ๋ ฌ์ ์์ด์ด ์ ์ฒด์ ์ผ๋ก ์ ์ฌํ์ง ์๋๋ผ๋ ๋ ์์ด ๋ด์์ ๊ฐ์ฅ ์ ์ฌํ ์์ญ์ ์ฐพ์ต๋๋ค. Biopython์ Needleman-Wunsch ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ๋ก์ปฌ ์์ด ์ ๋ ฌ์ ์ํํ๋ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
from Bio import pairwise2
from Bio.Seq import Seq
sequence1 = Seq("ATGCGTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGC")
sequence2 = Seq("TGCTAGCTAGCTAGCTAGC")
alignments = pairwise2.align.localms(sequence1, sequence2, 2, -1, -0.5, -0.1)
for alignment in alignments[:5]: # Print top 5 alignments
print(pairwise2.format_alignment(*alignment))
์ค๋ช :
- ์์ด ์ ๋ ฌ์ ์ํด Biopython์์
pairwise2๋ชจ๋์ ๊ฐ์ ธ์ต๋๋ค. - ์ ๋ ฌํ ๋ ์์ด์ ์ ์ํฉ๋๋ค.
pairwise2.align.localms()ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ง์ ๋ ์ค์ฝ์ด๋ง ๋งค๊ฐ๋ณ์(์ผ์น ์ค์ฝ์ด, ๋ถ์ผ์น ํ๋ํฐ, ๊ฐญ ์คํ๋ ํ๋ํฐ, ๊ฐญ ํ์ฅ ํ๋ํฐ)๋ก ๋ก์ปฌ ์ ๋ ฌ์ ์ํํฉ๋๋ค.pairwise2.format_alignment()๋ฅผ ์ฌ์ฉํ์ฌ ์์ 5๊ฐ ์ ๋ ฌ์ ์ธ์ํฉ๋๋ค.
DNA ์์ด ๋ถ์์ ๊ณ ๊ธ ๊ธฐ์
๊ธฐ๋ณธ ์ฌํญ ์ธ์๋ DNA ์์ด ๋ถ์์๋ ๋ค์๊ณผ ๊ฐ์ ์ฌ๋ฌ ๊ณ ๊ธ ๊ธฐ์ ์ด ํฌํจ๋ฉ๋๋ค.
- ๊ณํต ๋ฐ์ ๋ถ์: DNA ์์ด ์ ์ฌ์ฑ์ ๊ธฐ๋ฐ์ผ๋ก ์ ๊ธฐ์ฒด ๊ฐ์ ์งํ์ ๊ด๊ณ๋ฅผ ์ถ๋ก ํฉ๋๋ค. ์ด๊ฒ์ ๊ฐ์ผ์ฑ ์ง๋ณ์ ํ์ฐ์ ์ถ์ ํ๊ณ , ์ฝ๋ฌผ ๋ด์ฑ์ ์งํ๋ฅผ ์ดํดํ๊ณ , ์ง๊ตฌ์์ ์๋ช ์ ์ญ์ฌ๋ฅผ ์ฌ๊ตฌ์ฑํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ๊ฒ๋ ์กฐ๋ฆฝ: ๊ณ ์ฒ๋ฆฌ๋ ์์ด ๋ถ์์ ํตํด ์ป์ ๋จํธํ๋ DNA ์์ด์์ ์์ ํ ๊ฒ๋์ ์ฌ๊ตฌ์ฑํฉ๋๋ค. ์ด๊ฒ์ ์ ๋ฌธ ์๊ณ ๋ฆฌ์ฆ๊ณผ ์ํํธ์จ์ด๊ฐ ํ์ํ ๊ณ์ฐ ์ง์ฝ์ ์ธ ์์ ์ ๋๋ค.
- ๋ณ์ด ํธ์ถ: ์ง๋จ ๋ด์์ ์ ์ ์ ๋ณ์ด(์: ๋จ์ผ ๋ดํด๋ ์คํฐ๋ ๋คํ์ฑ(SNP), ์ฝ์ , ์ญ์ )๋ฅผ ์๋ณํฉ๋๋ค. ์ด๊ฒ์ ์ง๋ณ์ ์ ์ ์ ๊ธฐ์ด๋ฅผ ์ดํดํ๊ณ ๊ฐ์ธ ๋ง์ถคํ ์ํ์ ๋งค์ฐ ์ค์ํฉ๋๋ค.
- ๋ฉํ๊ฒ๋ํ: ํ๊ฒฝ ์ํ์์ ์ง์ ํ์๋ ์ ์ ๋ฌผ์ง์ ๋ถ์ํ์ฌ ๋ฏธ์๋ฌผ ๊ตฐ์ง์ ๋ค์์ฑ๊ณผ ๊ธฐ๋ฅ์ ๋ํ ํต์ฐฐ๋ ฅ์ ์ ๊ณตํฉ๋๋ค. ์ด๊ฒ์ ํ๊ฒฝ ๋ชจ๋ํฐ๋ง, ๋์ ๋ฐ ์ฝ๋ฌผ ๋ฐ๊ฒฌ์ ์ ์ฉ๋ฉ๋๋ค.
ํ์ด์ฌ ์๋ฌผ์ ๋ณดํ์ ๊ธ๋ก๋ฒ ์์ฉ ๋ถ์ผ
ํ์ด์ฌ ์๋ฌผ์ ๋ณดํ์ ์ ์ธ๊ณ์ ์ธ ๋ฌธ์ ํด๊ฒฐ์ ์ค์ํ ์ญํ ์ ํฉ๋๋ค.
- ๊ตญ์ ๋ณด๊ฑด: COVID-19, HIV ๋ฐ ๋ง๋ผ๋ฆฌ์์ ๊ฐ์ ๊ฐ์ผ์ฑ ์ง๋ณ์ ํ์ฐ ๋ฐ ์งํ๋ฅผ ์ถ์ ํฉ๋๋ค. ๋ฐ์ด๋ฌ์ค ๊ฒ๋์ ๋ถ์ํจ์ผ๋ก์จ ์ฐ๊ตฌ์๋ค์ ์๋ก์ด ๋ณ์ด์ฒด๋ฅผ ์๋ณํ๊ณ , ์ ํ ์ญํ์ ์ดํดํ๊ณ , ํจ๊ณผ์ ์ธ ๋ฐฑ์ ๋ฐ ์น๋ฃ๋ฒ์ ๊ฐ๋ฐํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด GISAID(๋ชจ๋ ์ธํ๋ฃจ์์ ๋ฐ์ดํฐ ๊ณต์ ๋ฅผ ์ํ ๊ธ๋ก๋ฒ ์ด๋์ ํฐ๋ธ)๋ ์ธํ๋ฃจ์์ ๋ฐ SARS-CoV-2 ์์ด ๋ถ์์ ์ํด ์๋ฌผ์ ๋ณดํ ๋๊ตฌ์ ํฌ๊ฒ ์์กดํฉ๋๋ค.
- ๋์ : ์๋ฌผ ์ํ๋๊ณผ ํด์ถฉ ๋ฐ ์ง๋ณ์ ๋ํ ์ ํญ์ฑ์ ํฅ์์ํต๋๋ค. ํ์ด์ฌ์ ์ฌ์ฉํ ๊ฒ๋ ์ ์ฒด ์ฐ๊ด ์ฐ๊ตฌ(GWAS)๋ ๋ฐ๋์งํ ํน์ฑ๊ณผ ๊ด๋ จ๋ ์ ์ ์๋ฅผ ์๋ณํ์ฌ ์ก์ข ๊ฐ๊ฐ ํฅ์๋ ์๋ฌผ ํ์ข ์ ๊ฐ๋ฐํ ์ ์๋๋ก ํฉ๋๋ค.
- ํ๊ฒฝ ๋ณด์กด: ์๋ฌผ ๋ค์์ฑ์ ๋ชจ๋ํฐ๋งํ๊ณ ๋ฉธ์ข ์๊ธฐ์ ์ฒํ ์ข ์ ๋ณดํธํฉ๋๋ค. DNA ๋ฐ์ฝ๋์ ๋ฉํ๊ฒ๋ํ์ ๋ค์ํ ์ํ๊ณ์์ ์ข ๋ค์์ฑ์ ํ๊ฐํ๊ณ ์๋ฌผ ๋ค์์ฑ์ ๋ํ ์ํ์ ์๋ณํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. iBOL(International Barcode of Life)๊ณผ ๊ฐ์ ์กฐ์ง์ ์ด๋ฌํ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ์๋ ค์ง ๋ชจ๋ ์ข ์ ๋ํ ํฌ๊ด์ ์ธ DNA ๋ฐ์ฝ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ง๋ค๊ณ ์์ต๋๋ค.
- ๊ฐ์ธ ๋ง์ถคํ ์ํ: ์ ์ ์ ๊ตฌ์ฑ์ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ๋ณ ํ์์๊ฒ ์๋ฃ ์น๋ฃ๋ฅผ ๋ง์ถคํํฉ๋๋ค. ํ์์ ๊ฒ๋์ ๋ถ์ํ๋ฉด ํน์ ์ง๋ณ์ ๋ํ ์ ์ ์ ์์ธ์ ์๋ณํ๊ณ ๋ค์ํ ์ฝ๋ฌผ์ ๋ํ ๋ฐ์์ ์์ธกํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
ํ์ด์ฌ ์๋ฌผ์ ๋ณดํ ํ๋ก์ ํธ๋ฅผ ์ํ ๋ชจ๋ฒ ์ฌ๋ก
ํ์ด์ฌ ์๋ฌผ์ ๋ณดํ ํ๋ก์ ํธ์ ์ฑ๊ณต์ ๋ณด์ฅํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๋ฅด์ญ์์ค.
- ๋ฒ์ ์ ์ด ์ฌ์ฉ: Git ๋ฐ GitHub ๋๋ GitLab๊ณผ ๊ฐ์ ํ๋ซํผ์ ์ฌ์ฉํ์ฌ ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ์ ํ๊ณ , ๋ค๋ฅธ ์ฌ๋๊ณผ ํ์ ํ๊ณ , ํ์ํ ๊ฒฝ์ฐ ์ด์ ๋ฒ์ ์ผ๋ก ๋๋๋ฆฝ๋๋ค.
- ๋ช ํํ๊ณ ๊ฐ๊ฒฐํ ์ฝ๋ ์์ฑ: ์๋ฏธ ์๋ ๋ณ์ ์ด๋ฆ ์ฌ์ฉ, ์ฝ๋ ์ค๋ช ์ ์ํ ์ฃผ์ ์์ฑ, ๋ณต์กํ ์์ ์ ๋ ์๊ณ ๊ด๋ฆฌํ๊ธฐ ์ฌ์ด ํจ์๋ก ๋ถํด๋ฅผ ํฌํจํ์ฌ ํด๋ฆฐ ์ฝ๋์ ์์น์ ๋ฐ๋ฅด์ญ์์ค.
- ์ฝ๋ ํ ์คํธ: ์ฝ๋๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋์ง ํ์ธํ๊ธฐ ์ํด ๋จ์ ํ ์คํธ๋ฅผ ์์ฑํ์ญ์์ค. ์ด๊ฒ์ ์ค๋ฅ๋ฅผ ์กฐ๊ธฐ์ ํฌ์ฐฉํ๊ณ ๋ถ์์ ํตํด ์ ํ๋๋ ๊ฒ์ ๋ฐฉ์งํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
- ์ฝ๋ ๋ฌธ์ํ: docstring์ ์ฌ์ฉํ์ฌ ํจ์ ๋ฐ ํด๋์ค๋ฅผ ๋ฌธ์ํํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ค๋ฅธ ์ฌ๋์ด ์ฝ๋๋ฅผ ์ดํดํ๊ณ ์์ ์ ํ๋ก์ ํธ์์ ์ฌ์ฉํ๊ธฐ๊ฐ ๋ ์ฌ์์ง๋๋ค.
- ๊ฐ์ ํ๊ฒฝ ์ฌ์ฉ: ํ๋ก์ ํธ์ ์ข ์์ฑ์ ๋ค๋ฅธ ํ๋ก์ ํธ์ ๊ฒฉ๋ฆฌํ๊ธฐ ์ํด ๊ฐ์ ํ๊ฒฝ์ ๋ง๋ญ๋๋ค. ์ด๊ฒ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ค๋ฅธ ๋ฒ์ ๊ฐ์ ์ถฉ๋์ ๋ฐฉ์งํฉ๋๋ค. `venv` ๋ฐ `conda`์ ๊ฐ์ ๋๊ตฌ๋ ๊ฐ์ ํ๊ฒฝ์ ๊ด๋ฆฌํ๋ ๋ฐ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
- ์ฌํ ๊ฐ๋ฅํ ์ฐ๊ตฌ: ์ฌ์ฉ๋ ๋ฐ์ดํฐ, ์ฝ๋ ๋ฐ ์ํํธ์จ์ด ๋ฒ์ ์ ํฌํจํ์ฌ ์ ์ฒด ์ํฌํ๋ก๋ฅผ ๋ฌธ์ํํ์ฌ ์ฌํ ๊ฐ๋ฅํ ์ฐ๊ตฌ๋ฅผ ์ํด ๋ ธ๋ ฅํ์ญ์์ค. Docker ๋ฐ Snakemake์ ๊ฐ์ ๋๊ตฌ๋ ์ฌํ ๊ฐ๋ฅํ ์๋ฌผ์ ๋ณดํ ํ์ดํ๋ผ์ธ์ ๋ง๋๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
์๋ฌผ์ ๋ณดํ์์ ํ์ด์ฌ์ ๋ฏธ๋
์๋ฌผ์ ๋ณดํ์์ ํ์ด์ฌ์ ๋ฏธ๋๋ ๋ฐ์ต๋๋ค. ์์ด ๋ถ์ ๊ธฐ์ ์ด ๊ณ์ ๋ฐ์ ํ๊ณ ๋ง๋ํ ์์ ๋ฐ์ดํฐ๋ฅผ ์์ฑํจ์ ๋ฐ๋ผ ์ด ๋ฐ์ดํฐ๋ฅผ ๋ถ์ํ๊ณ ํด์ํ ์ ์๋ ์๋ จ๋ ์๋ฌผ์ ๋ณดํ์์ ๋ํ ์์๊ฐ ์ฆ๊ฐํ ๊ฒ์ ๋๋ค. ํ์ด์ฌ์ ์ฌ์ฉ ํธ์์ฑ, ๊ด๋ฒ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ๋๊ท๋ชจ ์ปค๋ฎค๋ํฐ ์ง์์ ํตํด ์ด ๋ถ์ผ์์ ์ ๋์ ์ธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ๊ณ์ ์๋ฆฌ๋งค๊นํ ๊ฒ์ ๋๋ค. ์ ์ ๋ ๋ณต์กํด์ง๋ ์๋ฌผํ์ ๋ฐ์ดํฐ ๋ถ์์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์๋ก์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๊ตฌ๊ฐ ์ง์์ ์ผ๋ก ๊ฐ๋ฐ๋๊ณ ์์ต๋๋ค. ๋ํ ๊ธฐ๊ณ ํ์ต ๋ฐ ์ธ๊ณต ์ง๋ฅ์ ์๋ฌผ์ ๋ณดํ์ ํตํฉํ๋ฉด ์๋ฌผํ์ ์์คํ ์ ์ดํดํ๊ณ ์๋ก์ด ์ง๋จ ๋ฐ ์น๋ฃ๋ฒ์ ๊ฐ๋ฐํ ์ ์๋ ์๋ก์ด ๊ฐ๋ฅ์ฑ์ด ์ด๋ฆฌ๊ณ ์์ต๋๋ค.
๊ฒฐ๋ก
ํ์ด์ฌ์ ์๋ฌผ์ ๋ณดํ์์ DNA ์์ด ๋ถ์์ ์ํ ์์ด์๋ ์ ๋ ๋๊ตฌ๊ฐ ๋์์ต๋๋ค. Biopython๊ณผ ๊ฐ์ ๊ฐ๋ ฅํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ฒฐํฉ๋ ๋ค์ฌ๋ค๋ฅํจ์ ์ฐ๊ตฌ์์ด ๋ฐ์ด๋ฌ์ค ์งํ ์ดํด์์ ๊ฐ์ธ ๋ง์ถคํ ์ํ ๊ฐ๋ฐ์ ์ด๋ฅด๊ธฐ๊น์ง ๋ณต์กํ ์๋ฌผํ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋๋ก ํฉ๋๋ค. ์ด ๊ฐ์ด๋์ ์ค๋ช ๋ ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ ๊ธฐ์ ์ ๋ง์คํฐํจ์ผ๋ก์จ ์ ์ธ๊ณ์ ์ฐ๊ตฌ์๊ณผ ๋ฐ์ดํฐ ๊ณผํ์๋ ์ธ๊ฐ์ ๊ฑด๊ฐ์ ๊ฐ์ ํ๊ณ ์ ์ธ๊ณ์ ์ธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ํ๊ธฐ์ ์ธ ๋ฐ๊ฒฌ์ ๊ธฐ์ฌํ ์ ์์ต๋๋ค.
ํ์ด์ฌ์ ํ์ ๋ฐ์๋ค์ด๊ณ DNA ์์ ์จ๊ฒจ์ง ๋น๋ฐ์ ํ์ด๋ณด์ธ์!