2026-1학기/project

fda) 뉴데이터 퓨전모델 설계

mo_o 2026. 4. 12. 16:51

구조는 임베딩하고,

피처는 예측해서

퓨전할 때 로지스틱 레그리션 모델로

(단순 합/가중합의 경우 이 두 특징을 살리지 못해서 위 설계를 추천한다고)

 

교수는 데이터 형태를 맞추라 했는데.. 스마일스 임베딩하면 아웃풋이 다른데..

흠. 

 


데이터

 

gdsc( genomics of drug sensitivity in cancer)

gdsc1: 2009~2015년에 생성된 데이터셋

gdsc2: 개선된 실험절차로 수ㅂ된 데이터셋

주요컬럼: 셀라인네임, tcga_desc: 암종분류(breast/colon)

드러그 어노테이션: 어프로벌 스테이터스, 크리니컬 페이스 컬럼-> fda approval proxy로 활용

스마일식: 드러그 피처용, 퍼브캠과 조인 필요 

 

*gdsc자체엔 fda approval 직접 컬럼은 없지만, 드러그 어노테이션 파일의 타깃패스, 드러그 아이디로 펍켐과 조인해서 approval status를 붙이는 방식이 일반적임. 

 

ctrpv2 ( cancer therapeutics response portal)

35개의 fda승인약물, 54개의 임상후보 물질, 266개 probe화합물로 구성되어 있어, cancer. cpd_status 컬럼이 fda approval prediction의 label로 직접사용가능하다. 

 

두 데이터셋 비교 (설계 관점)

항목 GDSC CTRP v2
Cell lines ~1000개 ~900개
Drugs 500+ 545개
FDA label 간접 (외부 DB 조인) 직접 (cpd_status)
Histology TCGA_DESC ccle_primary_hist ✅
Assay IC50, AUC AUC
Drug features SMILES (PubChem 조인) cpd_smiles 직접 포함

전체 파이프라인 흐름

GDSC (IC50 xlsx + drug_anno csv)
  └─ load_gdsc()
  └─ preprocess_gdsc()  →  fp_* + IC50 + AUC + histology + FDA_label
  
CTRPv2 (AUC txt + ccl_anno + cpd_anno)
  └─ load_ctrp()
  └─ preprocess_ctrp() →  fp_* + AUC + histology + FDA_label

merge_gdsc_ctrp()  →  통합 DataFrame
split_and_save()   →  train / val / test CSV

 

핵심 포인트

항목 GDSC CTRP
FDA label CLINICAL_PHASE → "Approved/Phase4" = 1 cpd_status → "FDA approved" = 1
암종 필터 TCGA_DESC ∈ {BRCA, COREAD} ccle_primary_site ∈ {breast, large_intestine}
Assay LN_IC50, AUC area_under_curve
Drug feature SMILES → ECFP4 (2048 bits) cpd_smiles → ECFP4

ctrp

 

전체설계구조

┌─────────────────────────────────────────────────────┐
│  외부 데이터 (GDSC + CTRP)  ~수만 행               │
│                                                     │
│  지금 하는 작업 ← 여기                              │
│  1. FDA label 부착 (ChEMBL / cpd_status)           │
│  2. Histology 필터 (breast / colon)                │
│  3. SMILES → Fingerprint (drug 구조 feature)       │
│  4. IC50 / AUC 정규화 (assay feature)              │
│                                                     │
│         ↓                                          │
│  【구조 모델】                                      │
│  input : fp(2048) + assay + histology_enc          │
│  target: FDA_APPROVED (0/1)                        │
│  모델  : XGBoost / RandomForest / MLP              │
└─────────────────────────────────────────────────────┘
          ↓ 예측값 or 임베딩 출력
┌─────────────────────────────────────────────────────┐
│  내부 데이터 (실험 데이터, ~1~2천 행)               │
│                                                     │
│  【실험 모델】                                      │
│  input : 실험 assay 결과 (직접 측정값)             │
│  target: FDA_APPROVED or AUC                       │
└─────────────────────────────────────────────────────┘
          ↓
┌─────────────────────────────────────────────────────┐
│  【퓨전 / 메타 모델】                               │
│  구조모델 출력 + 실험모델 출력 → 최종 FDA 예측     │
│  방식: stacking / weighted ensemble / attention     │
└─────────────────────────────────────────────────────┘

 

지금단계 정리


 

내부데이터

항목내용
행 수 2,387행
컬럼 수 31개
행 단위 drug × 실험조건 조합 1개 (마우스 실험)
drug 수 clean_name 157개 / Generic Name 304개

뉴데이터 저장이 한 40분걸리네. 근데 문제 데이터하나가 라벨이 다 0이라 확인.. 

FDA_APPROVED=1 : 9,817행   (GDSC만)
FDA_APPROVED=0 : 694,961행 (CTRP 전부 + GDSC 일부)

또 40분 걸리니 켜고 가즈아..