제 1장: 유전체학과 생물정보학 입문
1.1 기본 유전체 개념
유전체학은 생물체의 모든 유전자 집합, 그 기능 및 상호작용을 연구하는 학문입니다. 유전체학을 이해하기 위해서는 먼저 몇 가지 기본 개념을 파악해야 합니다:
1.1.1 DNA (Deoxyribonucleic Acid)
DNA는 모든 알려진 생물체의 발달, 기능, 성장, 재생산에 필요한 유전 정보를 담고 있는 분자입니다. DNA는 네 가지 화학 염기로 구성되어 있습니다:
- Adenine (A)
- Guanine (G)
- Cytosine (C)
- Thymine (T)
이 염기들은 서로 쌍을 이루는데, A는 T와, C는 G와 결합하여 염기쌍을 형성합니다. 이 염기들의 순서 또는 서열이 생물체의 구성과 유지에 필요한 정보를 결정합니다.
1.1.2 RNA (Ribonucleic Acid)
RNA는 DNA와 유사하지만 몇 가지 중요한 구조적 차이가 있습니다:
- RNA는 보통 단일 가닥인 반면, DNA는 보통 이중 가닥입니다.
- RNA는 리보오스 당을 포함하고, DNA는 디옥시리보오스를 포함합니다.
- RNA는 thymine (T) 대신 uracil (U)을 사용합니다.
RNA는 유전자 발현에서 중요한 역할을 하며, DNA와 단백질 합성 기구 사이의 메신저 역할을 합니다.
1.1.3 유전자 (Genes)
유전자는 주로 단백질과 같은 기능적 산물을 암호화하는 DNA 서열입니다. 유전자는 유전의 기본적인 물리적, 기능적 단위입니다. 유전자에 대한 몇 가지 주요 사항:
- 유전자의 크기는 몇 백 개의 DNA 염기에서 2백만 개 이상의 염기까지 다양합니다.
- 인간 게놈 프로젝트는 인간이 20,000에서 25,000개의 유전자를 가지고 있다고 추정했습니다.
- 모든 유전자가 단백질을 암호화하는 것은 아닙니다; 일부는 기능적 RNA 분자를 생성합니다.
1.1.4 돌연변이 (Mutations)
돌연변이는 DNA 서열의 변화입니다. 이는 세포 분열 중 DNA 복제 실수, 방사선이나 화학물질 노출, 또는 바이러스 감염으로 인해 발생할 수 있습니다. 돌연변이의 종류는 다음과 같습니다:
- 점 돌연변이 (Point mutations): 단일 염기쌍의 변화
- 삽입 (Insertions): 하나 이상의 염기쌍 추가
- 결실 (Deletions): 하나 이상의 염기쌍 손실
- 염색체 돌연변이 (Chromosomal mutations): 염색체 구조의 대규모 변화
돌연변이는 발생 위치와 필수 단백질의 기능 변화 여부에 따라 무해하거나, 유익하거나, 해로울 수 있습니다.
1.2 생물정보학 도구
생물정보학은 생물학적 데이터를 이해하기 위한 방법과 소프트웨어 도구를 개발하는 학제간 분야입니다. 몇 가지 필수적인 생물정보학 도구는 다음과 같습니다:
1.2.1 BLAST (Basic Local Alignment Search Tool)
BLAST는 가장 널리 사용되는 생물정보학 프로그램 중 하나입니다. 이는 서열 간의 국소적 유사성을 찾아내며, 다음과 같은 용도로 사용됩니다:
- 서열 간의 기능적, 진화적 관계 추론
- 유전자 가족의 구성원 식별
- 새로 서열 분석된 유전자의 기능 예측
1.2.2 다중 서열 정렬 (Multiple Sequence Alignment)
Clustal Omega나 MUSCLE과 같은 다중 서열 정렬 도구는 세 개 이상의 생물학적 서열을 정렬합니다. 이러한 정렬은 다음과 같은 역할을 합니다:
- 단백질 가족 내의 보존된 영역 발견
- 단백질의 구조와 기능 예측 지원
- 계통 발생 트리 구성 보조
1.2.3 기본 전산 생물학 방법
기타 필수적인 전산 생물학 방법에는 다음이 포함됩니다:
- 서열 조립 (Sequence assembly): 단편화된 DNA 서열로부터 유전체 재구성
- 유전자 예측 (Gene prediction): 유전체 서열에서 유전자의 위치 식별
- 단백질 구조 예측 (Protein structure prediction): 아미노산 서열로부터 단백질의 3차원 구조 결정
1.3 전문 용어
유전체학에서 사용되는 전문 용어를 이해하는 것은 데이터를 해석하고 다른 연구자들과 소통하는 데 중요합니다. 주요 용어는 다음과 같습니다:
- Nucleotide: DNA와 RNA의 구성 요소 (A, C, G, T/U)
- Codon: 아미노산 또는 정지 신호를 지정하는 세 개의 뉴클레오티드 서열
- Exon: 성숙한 RNA에 남아있는 유전자의 코딩 부분
- Intron: 성숙한 RNA에서 제거되는 유전자의 비코딩 부분
- SNP (Single Nucleotide Polymorphism): 유전체의 특정 위치에서 발생하는 단일 뉴클레오티드의 변이
이러한 기본 개념, 도구 및 용어를 이해하면 유전체학과 생물정보학 분야를 더 깊이 탐구할 수 있는 탄탄한 기초가 마련됩니다.
제 2장: 유전체학의 데이터 전처리 기술
2.1 유전체학의 텍스트 데이터 처리
유전체 데이터는 종종 텍스트 형태로 표현됩니다. 이러한 데이터를 효과적으로 처리하는 방법을 이해하는 것은 생물정보학 분야에서 매우 중요합니다.
2.1.1 FASTA 형식 이해하기
FASTA는 핵산 서열이나 펩타이드 서열을 표현하는 가장 일반적인 텍스트 기반 형식입니다.
- FASTA 파일의 구조:
- '>' 기호로 시작하는 설명 라인
- 그 뒤에 오는 서열 데이터
예시:
Copy
>gi|186681228|ref|YP_001864424.1| phycoerythrin associated linker protein
MNKSVFTATVILVATALFVGLFVGSNNAFFAIKLVVSTLVVSILAVILLLVVKNRRLNGEARGPNDVSRV
2.1.2 서열 정렬 (Sequence Alignment)
서열 정렬은 DNA, RNA, 또는 단백질 서열 간의 유사성을 찾는 과정입니다.
- 전역 정렬 (Global Alignment): Needleman-Wunsch 알고리즘을 사용하여 전체 서열을 정렬합니다.
- 지역 정렬 (Local Alignment): Smith-Waterman 알고리즘을 사용하여 서열의 일부분을 정렬합니다.
정렬 점수 매트릭스:
- DNA/RNA: 동일 염기 +2, 다른 염기 -1, 갭 -2
- 단백질: BLOSUM62나 PAM250 같은 치환 행렬 사용
2.1.3 서열 변환 (Sequence Transformations)
- Reverse Complement: DNA 서열의 상보적 가닥을 생성합니다. 예: ATGC → GCAT
- Translation: DNA 서열을 아미노산 서열로 변환합니다. 예: ATG (Met), GCA (Ala), TAA (Stop) → MA
- One-hot Encoding: 서열을 이진 벡터로 변환합니다. 예: A [1,0,0,0], T [0,1,0,0], G [0,0,1,0], C [0,0,0,1]
2.1.4 서열 표현 (Sequence Representations)
- k-mer 표현:
- 서열을 k 길이의 중첩 부분 문자열로 분해합니다.
- 예: "ATGCATGCA"의 3-mer → ["ATG", "TGC", "GCA", "CAT", "ATG", "TGC", "GCA"]
- Position-Specific Scoring Matrix (PSSM):
- 각 위치에서 각 아미노산이나 뉴클레오티드의 발생 빈도를 나타내는 행렬입니다.
- 서열 로고 (Sequence Logo):
- PSSM을 시각적으로 표현한 것으로, 각 위치의 보존도를 나타냅니다.
2.2 특성 공학 (Feature Engineering)
특성 공학은 기계 학습 모델의 성능을 향상시키기 위해 원시 데이터에서 유용한 특성을 추출하거나 생성하는 과정입니다.
2.2.1 k-mer 기반 특성
- k-mer 빈도:
- 각 k-mer의 발생 빈도를 계산합니다.
- 예: 3-mer 빈도 벡터 [AAA, AAC, AAG, ..., TTT]
- k-mer 스펙트럼 커널:
- 두 서열 간의 공통 k-mer 수를 계산합니다.
- K(s,t) = Σ(φk(s) · φk(t)), 여기서 φk는 k-mer 빈도 벡터입니다.
2.2.2 구조 기반 특성
- 이차 구조 예측:
- 단백질 서열에서 α-helix, β-sheet, coil 등의 구조를 예측합니다.
- 소수성 프로필:
- 아미노산 서열의 소수성 패턴을 나타냅니다.
- 표면 접근성:
- 각 아미노산의 용매 노출 정도를 예측합니다.
2.2.3 진화적 특성
- Position-Specific Scoring Matrix (PSSM):
- 다중 서열 정렬에서 각 위치의 아미노산 보존도를 나타냅니다.
- Hidden Markov Model (HMM) 프로필:
- 단백질 가족의 서열 패턴을 확률적으로 모델링합니다.
2.2.4 물리화학적 특성
- 아미노산 조성:
- 서열 내 각 아미노산의 비율을 계산합니다.
- 분자량, 등전점:
- 단백질의 기본적인 물리화학적 특성을 계산합니다.
- Pseudo Amino Acid Composition (PseAAC):
- 아미노산 조성과 서열 순서 정보를 결합한 특성입니다.
2.2.5 텍스트 마이닝 기반 특성
- Word2Vec, Doc2Vec:
- 생물학적 서열이나 문서를 벡터 공간에 매핑합니다.
- TF-IDF (Term Frequency-Inverse Document Frequency):
- 생물학적 문서에서 중요한 용어를 식별합니다.
이러한 데이터 전처리 기술과 특성 공학 방법을 이해하고 적용하면, 유전체 데이터를 효과적으로 분석하고 기계 학습 모델의 성능을 크게 향상시킬 수 있습니다.
제 3장: 유전체학을 위한 딥러닝
3.1 Transformer 모델
Transformer 아키텍처는 자연어 처리 분야에서 큰 성공을 거둔 후, 유전체학 분야에도 적용되어 뛰어난 성능을 보여주고 있습니다.
3.1.1 BERT (Bidirectional Encoder Representations from Transformers)
BERT는 양방향 Transformer를 사용하여 문맥을 고려한 단어 표현을 학습합니다.
- 사전 학습 과정:
- Masked Language Model (MLM): 입력의 일부를 마스킹하고 이를 예측
- Next Sentence Prediction (NSP): 두 문장이 연속적인지 예측
- 아키텍처:
- 여러 층의 Transformer 인코더
- 각 층은 multi-head self-attention과 feed-forward 네트워크로 구성
3.1.2 BioBERT
BioBERT는 생물의학 텍스트에 특화된 BERT의 변형입니다.
- 사전 학습 데이터: PubMed 초록, PMC 전문 기사
- 응용 분야:
- 명명된 개체 인식 (예: 유전자, 질병 이름)
- 관계 추출 (예: 유전자-질병 관계)
- 질문 답변
3.1.3 DNABERT
DNABERT는 DNA 서열에 특화된 BERT 모델입니다.
- 입력: k-mer로 토큰화된 DNA 서열
- 사전 학습 작업:
- Masked k-mer prediction
- Next k-mer prediction
- 응용 분야:
- 프로모터 예측
- 전사 인자 결합 사이트 식별
- 유전자 발현 예측
3.1.4 Fine-tuning 기법
- 점진적 해동 (Gradual unfreezing):
- 상위 층부터 시작하여 점차적으로 더 많은 층을 학습에 포함
- 차별적 학습률 (Discriminative fine-tuning):
- 각 층마다 다른 학습률 적용 (상위 층은 높은 학습률, 하위 층은 낮은 학습률)
- 슬라이딩 윈도우 접근법:
- 긴 DNA 서열을 겹치는 윈도우로 분할하여 처리
3.2 서열 분류 (Sequence Classification)
서열 분류는 유전체학에서 중요한 작업으로, DNA나 단백질 서열을 특정 범주로 분류합니다.
3.2.1 전통적인 기계 학습 접근법
- Random Forest:
- 결정 트리의 앙상블 방법
- 특징: k-mer 빈도, GC 함량, 서열 길이 등
- Support Vector Machines (SVM):
- 커널 함수: 문자열 커널, 스펙트럼 커널
- 고차원 공간에서 서열을 분리하는 초평면을 찾음
- Hidden Markov Models (HMM):
- 서열의 확률적 모델링
- 응용: 유전자 예측, 단백질 도메인 식별
3.2.2 딥러닝 방법
- Convolutional Neural Networks (CNN):
- 1D 합성곱 층을 사용하여 지역적 패턴 탐지
- 풀링 층으로 가변 길이 입력 처리
- 응용: 전사 인자 결합 사이트 예측, 유전자 발현 분류
- Recurrent Neural Networks (RNN):
- LSTM (Long Short-Term Memory) 또는 GRU (Gated Recurrent Unit) 사용
- 긴 거리 의존성 포착에 유용
- 응용: RNA 스플라이싱 패턴 예측, 단백질 기능 분류
- Transformer:
- Self-attention 메커니즘으로 전체 서열의 문맥 고려
- 위치 인코딩으로 서열 순서 정보 유지
- 응용: 유전자 발현 예측, 단백질-단백질 상호작용 예측
- 혼합 모델:
- CNN + RNN: 지역적 특징과 장거리 의존성을 동시에 포착
- Transformer + CNN: 전역적 문맥과 지역적 패턴 결합
3.3 불균형 데이터 처리
유전체 데이터셋은 종종 클래스 간 불균형이 심합니다. 이를 해결하기 위한 기법들을 살펴보겠습니다.
3.3.1 데이터 증강 (Data Augmentation)
- 서열 변형:
- 점 돌연변이 도입
- 짧은 삽입 또는 삭제
- 역상보 서열 사용
- SMOTE (Synthetic Minority Over-sampling Technique):
- 소수 클래스 샘플 사이에 새로운 샘플 생성
- 서열 시프트:
- 순환적 이동을 통해 새로운 훈련 예제 생성
3.3.2 가중치 손실 함수 (Weighted Loss Functions)
- 클래스 가중치:
- 손실 함수에 클래스별 가중치 적용
- 가중치 = 1 / (클래스 빈도)
- Focal Loss:
- 쉬운 예제의 영향을 줄이고 어려운 예제에 집중
- 수식: FL(pt) = -α(1-pt)γ log(pt)
3.3.3 앙상블 방법
- 언더샘플링 + 오버샘플링:
- 다수 클래스는 언더샘플링, 소수 클래스는 오버샘플링
- 여러 균형 잡힌 서브셋으로 모델 학습
- Balanced Random Forest:
- 각 트리마다 클래스 균형을 맞춘 부트스트랩 샘플 사용
3.3.4 생성적 적대 신경망 (GAN)
- DCGAN (Deep Convolutional GAN):
- 가짜 DNA 서열 생성으로 소수 클래스 증강
- Conditional GAN:
- 특정 클래스나 특성을 가진 서열 생성
- CycleGAN:
- 한 클래스의 서열을 다른 클래스로 변환
이러한 기법들을 적절히 조합하여 사용하면 불균형한 유전체 데이터셋에서도 효과적인 분류 모델을 훈련할 수 있습니다.