프로젝트 4주차 타임라인 (Fri Jan 23 2026)


[10] 피드백 반영과 최종 스토리라인 정리

"비싸고 느린 epitope 실험 이전에 머신러닝으로 실험 가치가 낮은 후보를 선별 제거함으로써 연구비용과 시간을 구조적으로 절감하는 것"
Problem Setting
왜 이 연구가 필요한가
기존 B-cell epitope 실험 파이프라인
Antigen 선정 → Peptide synthesis (비용: 약 50-100 peptide 당 300-1,000만원) → ELISA, binding assay → 반복 실험 및 validation (실험 기간: 2~4주; 인력: 1~2명 full time)
= 단백질 1개당 수백만원에서 수주 소요, 실패 가능서이 높은 후보에도 동일한 비용 투입
Opportunity
머신러닝이 왜 필요한가
Epitope 예측 모델의 가치 (e.g. 새로운 antigen 서열이 주어져도 실험 전에 epitope 가능성을 확률적으로 평가할 수 있음) 실험 대상 epitope 후보 100개 기준 ML로 상위 20개만 선별할때 80% 실험 비용 감소
Hypothesis
& Research Goal
주요 가설("Recall 중심 1차 필터와 Precision 중심 2차 필터를 결합하면 중요한 epitope를 놓치지 않으면서도 실험 비용을 최소화할 수 있다") 및 연구 목표 요약
Domain Background
비전공자를 위한 설명
Linear B-cell Epitope: 항체가 인식하는 항원의 연속적인 아미노산 서열, 짧은 서열만으로도 항체 결합 가능
연구 중요성: 복합적인 요인(노출도, 서열 유연성, 주변 아미노산 환경, 실험 조건 및 숙주 상태)의 영향을 받음
Feature Engineering
& Embedding
PLM 정의 및 설명: 단백질 서열의 수치화 - 아미노산 서열을 숫자 벡터로 변환해 생물학적 맥락을 반영해 표현 ProtT5-XL-U50을 활용한 서열 기반 B-cell epitope 예측 모델 설명 (참고 논문 기반)
Data & Preprocessing 데이터 구성 및 전처리 과정 (+ 변수 필터링/조건 설명) 전처리 후 클래스 불균형 고려
Model Overview
전체 구조
Two-stage Screening Framework: Antigen 입력 → Recall 중심 1차 모델 → Prediction score 생성 → Precision 중심 2차 모델 → 최종 epitope 후보 높은 recall과 높은 precision을 동시에 달성하고, 실험 비용 구조를 고려한 단계적 의사결정 전략 채택 (+ 모델 간 성능지표 비교)
Stage 1 for Recall FN 최소화 - 임계값 선정 기준 설명 및 시각화 (w/ recall vs. threshold curve)
Stage 2 for Precision Stage 1의 prediction score를 파생변수로 사용해 soft decision 기반 재평가 (w/ score 분포(미정))
Weighting Strategy (α) Recall(40%)로 충분히 후보를 확보하고 Precision(60%)로 실험 비용 절감
Summary of the Model 요약: Two-stage 구조, 성능 지표 기반 모델 선정, 의사결정 과정이 설명 가능한 설계, 임계값 재설정(미정)
Dashboard Protein sequence → Epitope 후보, 예측 점수 및 우선순위, 구조 정보 
Cost Reduction Analysis 정량적 비용 절감 효과 제시: 임계값 기준 실험 대상 수 감소, 비용 절감 분석 (시약 비용, 실험 시간, 인력 투입)
Conclusion
실험 비용 절감, 실험 효율 극대화, 연구자 친화적 도구 제공 → "ML은 실험을 더 똑똑하게 만든다"
Two-stage Epitope 예측 모델 설계에 대한 핵심 정리
1️⃣ 기존 epitope 예측 모델과의 차별점은? 2️⃣ 왜 단일 모델이 아니라
two-stage 구조인가?
3️⃣ Recall 중심이면
false positive가 많지 않나?
4️⃣ 40% / 60% 가중치는
임의적인가?
예측 성능 자체가 아니라 실험 전에 버릴 후보를 줄여 연구 비용을 최적화하는 모델 False negative와 false positive의 비용이 비대칭이기 때문에 recall과 precision을 분리 False positive는 비용 문제지만 false negative는 복구할 수 없는 손실 실험 비용을 실제로 결정하는 단계가 2차 모델이기 때문
5️⃣ 데이터 편향 / 일반화 문제는? 6️⃣ 왜 accuracy나 AUC를
주요 지표로 쓰지 않았나?
7️⃣ 실제 연구에서는
어떻게 쓰이나?
8️⃣ ML이 실험을
대체하는 것 아닌가?
범용 예측기가 아니라 실험 전 후보 수를 줄이기 위한 스크리닝 도구로 설계 실험 의사결정과 직접적으로 연결되지 않는 지표 Peptide synthesis 대상 범위를 줄이는 데 바로 활용 실험을 대체하지 않고 어디에 실험할지 결정하는 역할

문제 설명 solution.py
#126 마인은 곡괭이로 광산에서 광석을 캐려고 합니다. 마인은 다이아몬드 곡괭이, 철 곡괭이, 돌 곡괭이를 각각 0개에서 5개까지 가지고 있으며, 곡괭이로 광물을 캘 때는 피로도가 소모됩니다. 각 곡괭이로 광물을 캘 때의 피로도는 아래 표와 같습니다.



(1) 사용할 수 있는 곡괭이중 아무거나 하나를 선택해 광물을 캡니다.
(2) 한 번 사용하기 시작한 곡괭이는 사용할 수 없을 때까지 사용합니다.
(3) 광물은 주어진 순서대로만 캘 수 있습니다.
(4) 광산에 있는 모든 광물을 캐거나, 더 사용할 곡괭이가 없을 때까지 광물을 캡니다.

마인이 갖고 있는 곡괭이의 개수를 나타내는 정수 배열 picks와 광물들의 순서를 나타내는 문자열 배열 minerals가 매개변수로 주어질 때, 마인이 작업을 끝내기까지 필요한 최소한의 피로도를 return 하는 solution 함수를 완성해주세요.
def solution(picks, minerals):
     def solve(picks, minerals, fatigue):
          if sum(picks) == 0 or len(minerals) == 0:
               return fatigue
          result = [float('inf')]
          for i, fatigues in enumerate(({"diamond": 1, "iron": 1, "stone": 1},
                                     {"diamond": 5, "iron": 1, "stone": 1},
                                     {"diamond": 25, "iron": 5, "stone": 1},)):
               if picks[i] > 0:
                    temp_picks = picks.copy()
                    temp_picks[i] -= 1
                    result.append(
                         solve(temp_picks, minerals[5:],
                         fatigue + sum(fatigues[mineral]
for mineral in minerals[:5])))
          return min(result)
     return solve(picks, minerals, 0)

 

+ Recent posts