diff --git a/agents/data/manifests/tcga_brca_pam50_computed_PROVENANCE.md b/agents/data/manifests/tcga_brca_pam50_computed_PROVENANCE.md index 029dcd6..2971e1f 100644 --- a/agents/data/manifests/tcga_brca_pam50_computed_PROVENANCE.md +++ b/agents/data/manifests/tcga_brca_pam50_computed_PROVENANCE.md @@ -10,7 +10,7 @@ - 행수: 1218 case (TCGA barcode). 값: LumA/LumB/HER2/Basal/Normal. - confidence: min 0.808 · max 0.925 · mean 0.867 (전부 고신뢰 구간). -## 소스 정체 (jamie의 57% 불일치 규명) +## 소스 정체 (jamie의 57.0% 일치율 규명) **cBioPortal의 curated study가 아니라, Parker 2009 PAM50 nearest-centroid classifier로 발현에서 계산한 라벨이다.** - 근거 문헌: Parker et al. 2009, JCO, PAM50 (DOI `10.1200/JCO.2008.18.1370`). 요약 = `research/datasets-benchmarks/parker-2009-pam50/parker-2009-pam50_brief.md`. - `pam50_confidence` 컬럼(centroid 상관 기반)이 계산본임을 방증. diff --git a/agents/data/split_policy_v0.md b/agents/data/split_policy_v0.md index c5507c7..e0f2333 100644 --- a/agents/data/split_policy_v0.md +++ b/agents/data/split_policy_v0.md @@ -226,5 +226,5 @@ Critic cross-sign 완료(2026-07-13): split_policy_v0 + split_hash **5995f29d397 - **실제 정본 소스 = `agents/data/manifests/tcga_brca_pam50_computed.csv`** — cBioPortal의 curated study가 아니라 **Parker 2009 nearest-centroid classifier로 발현에서 계산한 라벨**이다(Parker et al. 2009, JCO, DOI `10.1200/JCO.2008.18.1370`). 근거: `tcga_brca_pam50_computed_PROVENANCE.md`(BIOP02-49 후속, kkkim 2026-07-10) — `tcga_brca_manifest.csv`의 pam50 보유 case **1009/1009(100%)**가 이 파일과 일치해 소스가 확정됨. - **06-10 문구가 어긋났던 이유**: fallback은 "cBioPortal 커버리지 부족 시"에만 승인됐는데, 실측 커버리지는 부족하지 않았다 — 대조 소스 `brca_tcga_pan_can_atlas_2018`(`SUBTYPE`, PATIENT-level)이 manifest PAM50 코호트를 덮는 비율 **981/1009 = 97.2%**(`cbio_coverage_of_manifest_cohort_pct`). 즉 fallback 발동 조건이 충족된 적이 없는데 fallback 쪽이 전 코호트에 쓰이고 있었다(BIOP02-74에서 실측, `pam50_source_reconcile.py` / `pam50_source_reconcile_biop02-74.json`). - **결정(kkkim, Jira 11999)**: **Parker 계산본을 정본으로 유지한다.** cBioPortal로 전환하지 않는다. 이유 — (a) Paper A/C 분석이 이미 이 라벨로 수행·검증됐고(manifest 100% 일치 + PROVENANCE), 전환은 전면 재실행이자 근거 없는 골대이동이다. (b) Parker centroid는 PAM50의 정본 분류기라 인용 가능하다. -- **57.0% 불일치(514/902)는 오류가 아니라 파생 차이다** — 로컬 발현-계산본 vs curated atlas. 불일치는 무작위가 아니라 문헌상 알려진 두 경계에 집중된다(local=LumB↔cBio=LumA 141명, local=Normal↔cBio=LumA 101명). **투명성 항목으로 Methods에 보고**한다(어느 쪽이 틀렸다는 뜻이 아니다). +- **57.0% 일치(514/902), 43.0% 불일치(388/902)는 오류가 아니라 파생 차이다** — 로컬 발현-계산본 vs curated atlas. 불일치는 무작위가 아니라 문헌상 알려진 두 경계에 집중된다(local=LumB↔cBio=LumA 141명, local=Normal↔cBio=LumA 101명). **투명성 항목으로 Methods에 보고**한다(어느 쪽이 틀렸다는 뜻이 아니다). - **잔여 gap(비차단)**: 이 CSV를 만든 계산 스크립트와 입력 발현 행렬(study_id·버전)은 아직 레포에 없다 — 완전 재현용 후속 과제(PROVENANCE "남은 gap", braveji `594ef6b`에서도 비블로커로 확인). diff --git a/guide/paper_a_methods_data_draft.md b/guide/paper_a_methods_data_draft.md index 17c832a..82d1059 100644 --- a/guide/paper_a_methods_data_draft.md +++ b/guide/paper_a_methods_data_draft.md @@ -154,7 +154,7 @@ data version that produced it. 했으나 커버리지가 97.2%로 "부족"이 아닌데 전 코호트가 계산본을 사용)도 결론이 났다. **결정: Parker 2009 계산본(`tcga_brca_pam50_computed.csv`)을 정본으로 유지**하고 cBioPortal로 전환하지 않는다 — 분석이 이미 이 라벨로 검증됐고(manifest 1009/1009 일치) Parker centroid는 PAM50 정본 -분류기이기 때문. 57.0% 불일치는 오류가 아니라 로컬 계산본 vs curated atlas의 파생 차이이며 위 +분류기이기 때문. 57.0% 일치(514/902)이고 나머지 43.0% 불일치(388/902)는 오류가 아니라 로컬 계산본 vs curated atlas의 파생 차이이며 위 Methods 본문에 투명성 항목으로 보고했다. `split_policy_v0.md` §10 문구도 실사용에 맞게 정정 (§10.1 신설). 재현 스크립트=`agents/data/scripts/pam50_source_reconcile.py`.*