✅ 오늘 한 것
최종 프로젝트
✏️ 오늘 배운 점
[TIL] 머신러닝 에피토프 예측: FASTA 변환부터 임베딩 전략까지
🎯 오늘의 목표
제공된 단백질 데이터셋(Antigen, Epitope)을 활용하여 머신러닝 모델 학습을 위한 전처리 파이프라인(FASTA 변환, Slicing)을 구축하고, ProtT5 임베딩을 위한 준비를 마친다.
💡 핵심 배움 (Key Learnings)
1. Dual-Input 전략 (Epitope vs Context)
모델의 성능을 극대화하기 위해 하나의 데이터에서 두 가지 관점의 입력을 생성해야 함.
- Input A (Epitope): epitopes.fasta
- 역할: Zoom-In (현미경). 에피토프 서열 자체의 화학적 성질에 집중.
- Input B (Context): contexts.fasta
- 역할: Zoom-Out (망원경). 에피토프를 포함한 주변 16aa 서열(환경)을 분석.
- 결론: 두 개의 FASTA를 각각 임베딩하여 합친(Concatenate) 벡터를 모델에 주입해야 함.
2. FASTA 파일의 역할과 Slicing 로직
- FASTA: 머신러닝 모델(ProtT5)이 데이터를 읽을 수 있는 표준 포맷 (>ID \n Sequence).
- Slicing (Context 추출):
- 전체 Antigen을 다 넣는 것이 아니라 Epitope 중심(Center) 기준 ±8aa (총 16자)를 잘라서 사용함.
- 경계값 처리 (Boundary Shift): 항원의 맨 앞이나 맨 뒤에 위치하여 16자가 안 나오는 경우, 데이터를 버리지 않고 윈도우를 살짝 밀어서(Shift) 16자를 채우는 방식으로 데이터 손실을 0%로 줄임.
3. 미지의 데이터(Inference) 처리 프로세스
정답(Epitope)이 없는 새로운 항원 데이터가 들어올 때의 흐름.
- BLMPred 실행: 전체 항원에서 의심 가는 좌표들을 1차 스캔.
- 후보군 생성 (Row Expansion): 예측된 좌표 개수만큼 행을 늘림(1개 항원 -> N개 후보).
- 가상 Slicing: 예측 좌표를 기준으로 학습 때와 똑같이 Slicing 하여 FASTA 생성.
- 판별: 모델이 각 후보에 점수를 매겨 최종 Epitope 선별.
4. A100 GPU 최적화 임베딩
대용량 데이터(16만 건)를 빠르게 처리하기 위한 테크닉.
- FP16 (Half Precision): model.half()를 사용하여 메모리는 절반, 속도는 2배 향상.
- Batch Size: A100의 VRAM을 활용해 배치 사이즈를 128로 증량.
- Padding: "longest" 옵션으로 배치 내 불필요한 연산 최소화.
📌추가로 해야 할 점
최종 프로젝트
'품질관리(QAQC) 데이터 부트캠프(본캠프)' 카테고리의 다른 글
| 본캠프_18주차(수)_TIL(최종 프로젝트) (0) | 2026.01.14 |
|---|---|
| 본캠프_18주차(화)_TIL(최종 프로젝트) (0) | 2026.01.13 |
| 본캠프_17주차(금)_TIL(최종 프로젝트) (0) | 2026.01.09 |
| 본캠프_17주차(목)_TIL(최종 프로젝트) (0) | 2026.01.08 |
| 본캠프_17주차(수)_TIL(최종 프로젝트) (0) | 2026.01.07 |