# CHANGELOG — AntiObesityOffTargetMech-Kor

## [2026-05-15]

### 수행 내용
- 차세대 항비만 multi-target agonist off-target mechanism hypothesis generator standalone Python CLI 초기 빌드.
- 10 약물 (retatrutide·MariTide·CagriSema·survodutide·orforglipron·amycretin·setmelanotide·tirzepatide·semaglutide·liraglutide) × 5 receptor (GLP-1R/GIPR/GCGR/AMYR/MC4R) selectivity matrix.
- STEP/SURMOUNT/TRIUMPH/MARITIDE/REDEFINE/ATTAIN/AMYCRETIN/SETMC-RARE/LEADER/SCALE 12 trial post-hoc AE pattern (MedDRA SOC/PT × ROR × sub-group n).
- GTEx 54-tissue 발현 + Tabula Sapiens cell-type % expressing + IMPC KO mouse 표현형 cross-reference (51 rows).
- FAERS + KIDS-KD signal + HIRA confirmed + KCD code disproportionality (30 rows).
- 20 mechanism 가설 + Bayesian 4축 (selectivity 0.30 · tissue 0.25 · ae 0.30 · ko 0.15) posterior ranking.
- 한국어 hypothesis card (9 섹션: 약물·AE·tissue·KO·RWE·posterior·grant·OpenClaw·디스클레이머).
- OpenClaw 호환 JSON export (schema_version 1.0, axis_scores 포함).
- 의학적 디스클레이머 README/--help/모든 card 출력에 일관 삽입.

### 주요 결정 사항
- **Python 표준 라이브러리만 사용** (csv/json/math/os/sys/argparse): numpy/pandas/scipy 없는 환경에서도 동작 보장. 명세의 "표준 라이브러리 fallback" 요구 직접 반영.
- **Bayesian 가중합 방식**: posterior = 0.5 × prior + 0.5 × composite. prior는 mechanism_hypotheses.csv에 사전 정의된 도메인 지식 (PMID 인용)을 활용하고, composite는 4축 evidence를 0~1로 정규화해 결합. 단순 multiplicative 보다 부분 결측에 강건함.
- **Selectivity score 산식**: Ki nM의 log10-inverse — 차세대 항비만약 multi-target agonist의 receptor binding affinity가 nM~pM 범위로 매우 작아 log scale 정규화가 필요.
- **--card 매칭 알고리즘**: 1단계 hypothesis_id/exact substring → 2단계 토큰 부분 매칭 (절반 이상의 토큰이 narrative/ae/tissue/receptor/cell_type 합본 blob에 포함). 자연어 query ("GCG-mediated transient ALT elevation") 도 정확히 매칭.
- **KCD code 매핑**: K85 췌장염, K80 담석, H35 DR, N17 AKI, R74 ALT 상승, R00 심박수 이상, C73 갑상선 종양, L81 색소침착, N48 발기, E03 갑상선저하 — 명세 KCD 코드 직접 반영.
- **OpenClaw 호환 layer JSON**: schema_version 1.0, axis_scores를 별도 객체로 분리해 OpenClaw 바이오 피벗 약물 재조합 DB와 cross-join 가능.

### 변경된 파일
- `main.py` — CLI 본체 (argparse 기반, 약 470 줄)
- `data/drugs_selectivity.csv` — 10 약물 × 5 receptor Ki nM
- `data/ae_pattern.csv` — 29 rows × 12 trial post-hoc AE
- `data/receptor_expression.csv` — 51 rows GTEx + Tabula Sapiens + IMPC KO
- `data/faers_kor.csv` — 30 rows FAERS/KIDS-KD/HIRA
- `data/mechanism_hypotheses.csv` — 20 mechanism 가설 prior + evidence + PMID
- `README.md` — 사용법 + 알고리즘 설명 + 디스클레이머
- `QA.md` — 12개 검수 항목 ✅ + 합성 데이터 통계
- `CHANGELOG.md` — 본 파일

### 재현 방법
```bash
cd "/Users/sangjoonpark/claude daily project/2026 metabolic daily idea/projects/2026-05-15-2-anti-obesity-off-target-mech-kor"
python3 -c "import ast; ast.parse(open('main.py').read())"
python3 main.py --help
python3 main.py --summary
python3 main.py --selectivity-matrix
python3 main.py --tissue-heatmap GLP-1R
python3 main.py --rank-mechanism --top 15
python3 main.py --rank-mechanism --top 10 --drug retatrutide
python3 main.py --card "GCG-mediated transient ALT elevation"
python3 main.py --card "H05"
python3 main.py --export-openclaw /tmp/openclaw_anti_obesity.json
```

### 향후 확장 (24시간 범위 외, 미수행)
- 실제 BindingDB API 연동 (현재는 시뮬레이션 Ki).
- IMPC IMPC.org REST 라이브 크롤링 (현재는 핵심 표현형 hardcoded).
- KIDS-KD 실제 시그널 검증.
- multi-trial meta-analysis posterior 업데이트.
- OpenClaw 약물 재조합 DB 자동 join 파이프라인.
