프로젝트 2주차 타임라인 (Mon Jan 6 2026)


[3] EDA + Sliding Window

1. Sequence 인코딩 전략
Epitope 길이는 25 aa로 통일
표준 20개 아미노산 one-hot encoding
각 epitope → (25 × 20) → 500차원 벡터
위치별 아미노산 정보 보존 → linear epitope motif 분석 가능
고차원 임베딩을 아직 사용하지 않은 이유:
위치와 motif 수준의 해석 가능성 확보가 본 분석의 핵심 목적

                                                               아직은 성능 상한이 아닌 원인 규명이 중요하다고 판단 (sliding window 길이에 대한 지식x)

 

2. Assay 정보 처리

assay(method)를 one-hot encoding
같은 epitope라도 assay에 따라 결과가 달라질 수 있음을 모델에 명시적으로 전달
최종 feature 구성 = [ sequence one-hot (500 dim) | assay one-hot ]

 

3. 모델 및 평가 설정

Logistic Regression, Random Forest, Linear SVM, XGBoost (가능 시)

5-fold Stratified CV - P/N 비율 유지, 극심한 클래스 불균형 완화, 일반화 성능 평가에 필수

평가 지표: [1] ROC_AUC - 전체 판별 능력, [2] F1_Binary - epitope 탐지 핵심 성능,

                [3] Recall - epitope를 놓치지 않는 능력, [4] Precision - 예측 신뢰도, [5] F1_Macro - 클래스 불균형 고려

모델 핵심 특성
Logistic Regression F1_Binary·Recall 최고 → epitope 탐지에 가장 민감
Random Forest ROC_AUC·Precision 최고 → 고신뢰 epitope 선별
Linear SVM 전반적으로 보수적
XGBoost 불균형 데이터에서 탐지 성능 저하

 

1️⃣ Logistic Regresssion - 높은 Recall, F1_Binary, False positive는 많지만 screening / vaccine candidate 탐색 단계에 최적

                                        assay 효과를 선형적으로 흡수 가능, feature coefficient 해석 가능 → 이후 분석의 핵심 모델로 채택

2️⃣ Random Forest - Precision, ROC_AUC 우수, epitope를 놓침 (Recall 낮음) → 후반 정제 단계용 high-confidence filter

 

4. Assay 정보 제거 실험

Seq only vs Seq + Assay, 동일한 모델과 동일한 CV 조건, assay 정보만 제거하여 직접 비교

결과 요약: Seq + Assay ≈ Seq only (모든 모델에서 거의 동일)

 

EDA에서 확인된 것처럼 label이 이미 assay-normalized 되어 있음
따라서 모델 입장에서 assay 정보는 추가적인 예측력을 제공하지 못함 → Epitope sequence 자체에 유의미한 signal 존재

5. Logistic Regression 기반 Epitope Motif 분석

Positive coefficient → 특정 위치에 방향족·소수성 잔기 존재 시 epitope 확률 증가
Negative coefficient → 음전하 잔기는 epitope 형성에 불리

 

핵심 위치 도출: Pos13, Pos16 = epitope 형성에 강하게 기여
                                    Pos15 = 거의 모든 아미노산에서 강한 negative coefficient (i.e. Gatekeeper / disruptor position)

 

6. Position 중요도 검증 실험

a. Pos15 masking 실험 - Pos15 정보 제거 시 ROC_AUC, F1, Recall 모두 하락

                                         단순 노이즈가 아니라 epitope 형성을 제약하는 결정적 위치

b. Core region (Pos12-16) 실험 - Core만 사용해도 F1_Binary 유지, Recall 감소, Precision 소폭 상승

                                                        Central core motif 기반 linear epitope 주고와 일치, vaccine epitope 특성과 정합

 

7. Sliding Window 분석

Epitope 중심을 기준으로 다양한 길이의 sliding window를 적용하여 예측 성능을 비교해 보았을 때

Window 길이 8–16 aa 구간에서 성능이 가장 안정적, Epitope signal이 중앙 core 주변에 국소적으로 집중됨

⚠️ 전처리 기준 변경: (전) Epitope 길이 8 - 25 (후)16 aa window

 

8. disease 정보 처리 및 제거 실험

Disease 포함 - 모든 모델에서 ROC-AUC, Recall, F1_Binary 상승

Disease 제거 - epitope ranking 및 탐지 성능 전반적 하락     독립적인 biological context 정보


문제 설명 solution.py
#115 호텔을 운영 중인 코니는 최소한의 객실만을 사용하여 예약 손님들을 받으려고 합니다. 한 번 사용한 객실은 퇴실 시간을 기준으로 10분간 청소를 하고 다음 손님들이 사용할 수 있습니다. 예약 시각이 문자열 형태로 담긴 2차원 배열 book_time이 매개변수로 주어질 때, 코니에게 필요한 최소 객실의 수를 return 하는 solution 함수를 완성해주세요.
def solution(book_time):
     time_table = [0] * (60 * 24 + 1)
     for start, end in book_time:
          start_minutes = 60 * int(start[:2]) + int(start[3:])
          end_minutes = 60 * int(end[:2]) + int(end[3:]) + 10
          time_table[start_minutes] += 1
          if end_minutes < 60 * 24:
               time_table[end_minutes] -= 1
     cur, answer = 0, 0
     for t in time_table:
          cur += t
          answer = max(answer, cur)
     return answer

+ Recent posts