From ea6aeda9d00043f4c44bb7eff452dc5229694151 Mon Sep 17 00:00:00 2001 From: kakyungkim Date: Thu, 10 Sep 2026 22:54:36 +0900 Subject: [PATCH] =?UTF-8?q?BIOP02-74=20fix:=20PAM50=2057.0%=20=EB=9D=BC?= =?UTF-8?q?=EB=B2=A8=20=EC=97=AD=EC=A0=84=20=EC=A0=95=EC=A0=95=20=E2=80=94?= =?UTF-8?q?=20=EC=9D=BC=EC=B9=98=EC=9C=A8=EC=9D=84=20=EB=B6=88=EC=9D=BC?= =?UTF-8?q?=EC=B9=98=EC=9C=A8=EB=A1=9C=20=EC=93=B4=203=EA=B3=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 근거 JSON `agents/data/manifests/pam50_source_reconcile_biop02-74.json`: "n_overlap": 902, "n_match": 514, "concordance_pct": 57.0 514/902 = 57.0% 는 **일치**율이다. 불일치는 388/902 = 43.0%. 세 문서가 이를 "57.0% 불일치"로 뒤집어 적고 있었다. 정정 3곳: agents/data/split_policy_v0.md:229 guide/paper_a_methods_data_draft.md:157 agents/data/manifests/tcga_brca_pam50_computed_PROVENANCE.md:13 (제목) 같은 파일 guide/paper_a_methods_data_draft.md:65 의 영문 "PAM50 calls match at 57.0%" 는 원래 맞게 적혀 있어 국문과 자기모순 상태였다. 이번 정정으로 해소된다. PROVENANCE.md 본문의 "pan-can atlas 2018과 57.0% concordance" 도 원래 맞아 제목만 고쳤다. 경위: kkkim 이 2026-08-30 PR #148 리뷰에서 블로커로 지적했으나 (JIRA BIOP02-74 #12063) 정정 없이 머지됐다. Methods 가 이 문서를 인용하므로 원고로 전파되기 전에 정정한다. 검증: 정정 후 "57.0% 불일치" 잔여 0건, 3파일 줄 수 전부 보존(230/163/29). Co-Authored-By: Claude Opus 5 (1M context) --- agents/data/manifests/tcga_brca_pam50_computed_PROVENANCE.md | 2 +- agents/data/split_policy_v0.md | 2 +- guide/paper_a_methods_data_draft.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) 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`.*