적혈구는 두 개의 숫자다. 막 면적
$S$ 와 부피$V$ . 이 모델의 전제는 그것뿐이다. 두 숫자가 최소 원통 직경$D_c$ 를 정하고, 비장 정맥동 벽이 적혈구에 대해 측정할 수 있는 것은$D_c$ 하나뿐이다. 이 저장소의 다른 모델들과 달리 이 모델은 정상 적혈구만 보정하고 질환은 예측한다.
| 산출물 | 파일 |
|---|---|
| 🗺️ 기계론적 지도 (148 노드 · 18 클러스터 · 224 엣지) | hsph_qsp_model.dot · SVG · PNG |
| 📐 기하학 커널 (닫힌 해, 자체 검증) | hsph_geometry.py |
| ⚙️ mrgsolve 모델 (72 ODE) | hsph_mrgsolve_model.R |
| 🐍 실행된 참조 구현 (모델 원본) | hsph_python_reference.py |
| 🎯 보정 대장 (calibration ledger) | hsph_calibrate.py · hsph_calibration.json · calib.log |
| 🔬 18개 분석 절 전체 실행 결과 | hsph_analysis.py → hsph_reference_output.txt |
| 📊 Shiny 대시보드 (14 탭) | hsph_shiny_app.R |
| 📚 참고문헌 (115편, PubMed 실시간 조회) | hsph_references.md · mkrefs.py |
적혈구막은 면적 비압축성이다(3–4% 이상 늘어나면 터진다). 따라서 면적
이 3차식의 가장 작은 양의 근이 그 세포가 통과할 수 있는 가장 좁은 원통의
직경, 즉 최소 원통 직경
| 유도되는 것 | 모델 | 문헌 |
|---|---|---|
| 정상 적혈구 |
2.72 µm ( |
~2.8 µm |
| 정상 50% 삼투 용혈 | 0.418 %NaCl | 0.40–0.45 %NaCl |
| HS 50% 삼투 용혈 | 0.537 %NaCl ( |
0.55–0.65 %NaCl |
| EMA 결합 감소 | 막면적비 그 자체 | 진단 기준 16–21% |
교과서에 없는 지점. Waugh(1992)는 50일 된 적혈구가 면적 10.5%, 부피 8.4%를
잃고 "구형도는 거의 변하지 않는다"고 보고했다. 같은 면적 손실을 부피 손실과
함께/없이 돌려보면
| 단계 | 소비한 숫자 | 얻은 파라미터 |
|---|---|---|
| 1. 정상 적혈구만 (HS 관련 없음) | 평균 수명 120일 · 면적 −10.5% · 부피 −8.4% (Waugh) · 정상에서 비장 기하학적 청소는 전체의 1% | tau50 kv_base kd_base k_ph |
| 2. 기준 중등증 환자 | Hb 10.5 g/dL 하나 | fdef_mod |
| 3. 옵소닌 팔 (Reliene 2002) | 비장절제 band 3 환자의 IgG 140분자/세포 · 미절제 시 옵소닌 청소가 파괴의 50% | K_cl k_ops |
적합하지 않고 구조적으로 고정한 것 (근거를 명시):
kv_def = 3.33·kv_base · kd_def = 6.67·kd_base · kd_cord = 41·kd_base ·
a_ent_def = 1.0 · visc_k = ln2/3 = 0.231 (Chien의 세포질 점도–MCHC 기울기) ·
혈관내 용혈은 부수 경로로 제한(HS 용혈은 95% 이상 혈관외).
단계 2에서 얻은 값은 fdef_mod = 0.420, 즉 스펙트린 함량 58%. 문헌의 중등증
HS 값은 약 70%이므로 이 모델은 교과서적 중등증을 만들기 위해 문헌보다 12
퍼센트포인트 큰 결손을 필요로 한다. 이 편차를 경증·중증 구간에도 동일하게
적용했으므로 나머지 세 유전자형은 적합이 아니라 예측이다.
| 지표 | 모델 | 문헌/기준 |
|---|---|---|
| 망상적혈구 | 8.75 % | 중등증 >6% ✓ |
| 총빌리루빈 | 3.30 mg/dL | 중등증 >2 ✓ |
| 적혈구 수명 | 17.5 일 | HS 10–30일 ✓ |
| MCV | 85.1 fL | ✓ |
| MCHC | 35.26 g/dL | 선별 기준 ≥35.4 (거의 일치) |
| 50% 삼투 용혈 | 0.571 %NaCl | HS 0.55–0.65 ✓ |
| EMA 감소 | 20.9 % (정상 집단 평균 대비) | 기준 16–21 ✓ |
| 비장 부피 | 385 mL | HS 300–800 ✓ |
| RDW | 11.7 % | 선별 기준 ≥14 ✗ (아래 한계 참조) |
청소 경로 분해(실행 결과 §4):
| 기하학적(비장 삭) | 옵소닌(IgG) | 노화 표지 | 간 | |
|---|---|---|---|---|
| 정상 | 0.010 | 0.000 | 0.763 | 0.147 |
| 보인자 | 0.373 | 0.000 | 0.252 | 0.349 |
| 경증 HS | 0.672 | 0.000 | 0.044 | 0.280 |
| 중등증 HS (ANK1) | 0.806 | 0.000 | 0.003 | 0.191 |
| 중증 HS | 0.943 | 0.000 | 0.000 | 0.057 |
| 중등증 HS (SLC4A1) | 0.599 | 0.266 | 0.001 | 0.134 |
스펙트린/안키린 유전자형에서 옵소닌 청소가 정확히 0인 것은 구조적 귀결이다: band 3가 소포에 실려 나가면 표면 밀도가 보존되어 클러스터가 생기지 않고, IgG는 대조군 수준(45분자/세포)에 머문다. 옵소닌 팔은 band 3 유전자형에서만 켜진다.
정상 적혈구는 표지되어 죽고(노화 76%), HS 적혈구는 모양 때문에 죽는다.
그리고 그 이유는 기하학에서 바로 나온다: 정상 노화는 면적과 부피를 거의 같은
비율로 잃으므로
중등증 HS, 절제 전 → 후: Hb 10.50 → 12.45, 망상 8.75% → 3.83%, 수명 17.5 → 31.7일,
빌리루빈 3.30 → 2.23, 빌리루빈 생성 932 → 642 mg/일. 그러나 막면적 110.7 →
108.4 µm²,
생산이
| 기저 Hb | 수명 | 산수 예측 |
72-ODE 모델 | |
|---|---|---|---|---|
| 정상 | 15.10 | 120일 | 1.01 | 0.72 |
| 경증 HS | 13.16 | 42일 | 2.51 | 1.37 |
| 중등증 HS | 10.50 | 17.5일 | 4.81 | 2.01 |
모델은 "비장 삭이 구상적혈구를 잡아먹기만 하지 않고 만든다"는 아이디어로
설계되었다(면적 손실 → cordamp 를 켜 보면 표현형이 매끄럽게 중증화된다 — 그런데 그것은 fdef 를
키우는 것과 모델 안에서 구별되지 않는다. 그리고 필요하지도 않았다:
cordamp = 1(증폭 없음)에서 이미 §2의 표현형이 나온다. 그래서 기준 모델은
증폭기를 끈다.
이 절에서 실제 결함 하나가 드러났고 기록해 둔다. 동일한 파라미터 집합이
ODE 적분기의 최대 스텝에 따라 평균 수명 15.5일·18.6일·30.8일을 내놓았다. 원인은
cordamp 가 아니라 비장 비대였다. 비장 혈류를 비장 질량에 비례하게 쓴 탓에
위험도 → 적혈구포식 부하 → 비장 질량 → 혈류 → 위험도 라는 두 번째 고리의
이득이 1을 넘어, 비장이 상한까지 달려가고 정상상태가 유일하지 않게 되었다.
큰 비장에서는 그램당 혈류가 떨어진다 — 혈류
Reliene 2002는 두 가지를 보고했다. ① band 3 결핍 적혈구는 세포당 최대 140개의 IgG를 지니고 스펙트린/안키린 결핍 적혈구와 대조군은 60개 이하다. ② 비장절제는 스펙트린/안키린 결핍에 더 도움이 된다. 모델에서 두 유전자형을 가르는 파라미터는 하나다 — 방출되는 소포가 band 3를 싣고 나가는가.
①은 재현된다: 스펙트린/안키린 45개(대조군 수준), band 3 151개(절제 후 161개). 기전은 회계 규칙 하나다. band 3가 소포와 함께 떠나면 band 3 표면 밀도가 면적과 함께 떨어지므로, 저친화도 자연항체가 2가 결합에 필요한 클러스터가 아예 만들어지지 않는다.
②는 재현되지 않는다. 모델은 band 3 팔이 절제로 더 이득을 본다(+3.48 대 +1.95 g/dL). 원인은 측정되지 않고 가정된 숫자 하나 — 옵소닌 청소의 비장:간 분배 72:28 — 이며, 스펙트린/안키린 팔에는 옵소닌 청소가 아예 없으므로 이 숫자는 band 3 팔에만 작용한다. 따라서 역산할 수 있다: 간이 옵소닌 청소의 97% 이상을 담당해야 Hb 이득의 순서가 뒤집히고, 수명 이득의 순서는 65%에서 뒤집힌다. 이것이 모델이 읽어낸 Reliene의 정량적 함의다 — 그들의 결과는 구상적혈구에 대한 증거가 아니라 IgG로 무겁게 덮인 적혈구의 청소가 대부분 간에서 일어난다는 증거다. 기준 모델은 28%를 그대로 두고 실패를 보고한다.
ugt_f = 0.287 은 자유 파라미터가 아니다. 정상 용혈 부하에서 단독 길버트
빌리루빈 2.2 mg/dL를 재현하는 UGT1A1*28 동형접합 활성이다. 그러면
중등증 HS + 길버트는 11.2 mg/dL로 예측된다 — 보고된 4–7 mg/dL의 두 배다.
모델이 두 손상을 곱셈으로 합치는 것은 접합(conjugation)이 유일한 처리 단계이기
때문이며, 데이터는 곱셈 이하로 합쳐진다고 말한다. 이는 조정 오류가 아니라
구조적 진술이다: 빌리루빈 처리에는 UGT1A1 동역학만으로는 없는 부하 유도성
성분(흡수, MRP2 배출, 대체 접합체)이 있어야 한다.
-
삭 내 대식세포 포식률의 자릿수 오류.
k_ph를 하루 단위 위험도로 쓴 탓에 정상인의 적혈구 수명이 0.44일이 되었다. 세포는 하루 72회 비장을 통과하므로 통과당 파괴 확률은$\sim7\times10^{-4}$ 여야 한다. -
정상 세포가 되먹임 고리에 들어가 있었다. 초기
cordamp = 42에서 고리 이득이 1을 넘어 정상 적혈구의 막이 수개월에 걸쳐 붕괴했다. -
부피 손실이 너무 느렸다.
kd_base가 작아 정상 노화 세포가 면적만 잃고$D_c$ 가 필터 안으로 들어갔다. Waugh의 −8.4%를 명시적 보정 표적으로 만들어 고침. - 옵소닌 팔에 문턱이 없었다. 배경 IgG 45분자/세포가 정상인의 74% 청소를 담당했다. Reliene의 대조군 수준(≤60)을 문턱으로 도입.
-
탈수가 세포를 보호했다.
$S/V$ 기하학만으로는 부피를 잃으면$D_c$ 가 내려간다 — 즉 탈수가 세포를 구한다. 임상은 정반대다. 세포질 점도항을 추가하되, 체류 시간이 아니라 추출 단계에 걸어야 했다(체류에 걸면 탈수가 막 손실을 키워 정상 세포까지 초임계가 된다). - 비장 내 양이온 누출은 자기 소거적이다. 탈수를 삭에만 두면 순환 MCHC를 어떤 값으로도 올릴 수 없다. 탈수된 세포는 곧 잡아먹히는 세포이고, 혈액검사가 보는 것은 그 일이 일어나지 않은 생존자다. HS의 높은 MCHC는 누출이 구성적(막의 성질)이라는 증거다.
- 비장 질량–혈류 고리가 정상상태를 유일하지 않게 했다 (§3 실패 1).
-
다변수 최소제곱이 퇴화 해로 반복 수렴했다.
kv_def → 0에 모든 청소를k_ph에 실은 해, 점도 계수가 문헌값의 56배인 해 등. 각 표적이 자기 파라미터에 대해 단조이므로 1차원 이분법으로 교체. - 혈관내 용혈이 탈출 밸브가 되었다. 비장이 세포를 제거하지 않으면 세포가 구형까지 가서 터졌고, 그 결과 HS 용혈의 73%가 혈관내가 되었다(실제는 <5%).
- release 시점의 band 3 개수가 면적 결손을 따라가지 않았다. 모든 유전자형이 이미 결손된 막에 정상 band 3 개수를 얹고 태어나 표면 밀도가 높아졌고, 대조군 수준이어야 할 스펙트린/안키린 팔이 IgG 107개/세포로 나와 유전자형 × 비장절제 예측의 방향이 뒤집혔다.
-
적분기가 수혈 창을 뛰어넘었다.
max_step = 2일 때 0.5일 주입 창이 한 번도 평가되지 않아 수혈군이 조용히 "효과 없음"을 보고했다(Hb 4.80 → 4.81). - 보고된 비장 부피가 수술을 반영하지 않았다. 전절제 후에도 절제 전 질량이 표시되었다.
-
R 툴체인이 환경에 없었다.
hsph_mrgsolve_model.R과hsph_shiny_app.R은 실행되지 않았다. 모델 원본은 실행·보정된hsph_python_reference.py이며, R 파일은 그것을 식 대 식으로 옮긴 것이다. 파라미터 값은sync_r_params.py로 Python에서 기계적으로 주입한다. - RDW는 크게 미달한다 (11.7% 대 선별 기준 ≥14%). 9개 연령 코호트 각각이 단일 면적·부피 값을 갖는 구조에서는 코호트 내부 변이가 없으므로 실제 집단 폭을 만들 수 없다. 구조적 한계이며 파라미터로 고칠 수 없다.
-
순환 집단은 항상 파괴 집단보다 경증으로 보인다. EMA 결손을 순환 평균에
대해 16%로 맞추려는 초기 표적은 20일 수명과 구조적으로 양립 불가능이었다.
이는 버그가 아니라 결과다 — 그만큼 결손된 세포는 이미 필터 깊숙이 있다. 모델은
파괴 시점의 기하학(
A_end)을 따로 보고한다. - 중증도 매핑이 한 구간 밀려 있다. 스펙트린 함량 70%에서 이 모델은 경증–중등증을 낸다. 그래서 기준 환자의 유전자형을 하나 적합했고(58%), 그 편차를 모든 구간에 동일하게 적용했다.
-
3단계는
fdef = 0.30에서 보정되었으나 기준 환자는 0.42다. 그 결과 band 3 팔의 예측 IgG가 표적 140을 약 15% 초과한다(151/161). - 신생아 절은 성인 방정식을 신생아 UGT1A1·EPO 설정점으로 돌린 것이다. 태아–성인 헤모글로빈 전환도, 신생아 혈액량 확장도 없다. 예시적이며 신생아 모델이 아니다.
-
미타피밧의 HS 효능은 문헌에 고정되지 않았다.
EC50_m은 공개된 PK에서,Emax_atp/Emax_dpg는 PK 결핍증 데이터에서 가져온 자리표시자다. - 담석·철 절은 반정량적이다. 담석 지수는 무차원 핵형성 적분이며, 미치료 중등증 HS가 30년에 50%에 이르도록 상수 하나만 맞췄다. 그 결과 정상 7.6%(40년), 6세 비장절제 29.8%(40년)는 예측이고 그럴듯하지만, HS+길버트는 92%(30년)로 보고된 약 5배 초과 위험보다 크게 과대예측한다 — §3 실패 3과 같은 뿌리다.
- 신생아 절의 HS+길버트 조합은 물리적으로 무의미한 값을 낸다(최고 빌리루빈 82 mg/dL). 미성숙 UGT1A1과 길버트를 곱으로 겹치면 처리 용량이 붕괴하는데, 실제 신생아에는 광선치료·교환수혈·대체 배출 경로가 있다. 이 칸은 "모델의 빌리루빈 처리가 곱셈적이다"는 사실을 극단에서 보여주는 것으로만 읽어야 한다.
- 가상 환자군(§17)은 경증으로 치우쳐 있다. 분포를 문헌의 스펙트린 함량 ($fdef \sim N(0.28,0.09)$)에서 뽑고 §2에서 찾은 12 퍼센트포인트 편차를 적용하지 않았기 때문이다. 그 결과 90%가 Hb>11로 나온다. 편차를 적용하면 중증도 분포가 오른쪽으로 옮겨간다.
Hb에 대한 국소 감수성(각 파라미터 ±20%, 실행 결과 §17) 상위:
| 파라미터 | −20% | +20% | 폭 |
|---|---|---|---|
A0 (방출 시 막 면적) |
1.89 | 14.89 | 13.01 |
V0 (방출 시 부피) |
13.58 | 2.12 | 11.46 |
D50 (필터 위치) |
9.08 | 12.53 | 3.45 |
w_esc (체류 시간 법칙) |
9.33 | 11.01 | 1.68 |
k_ph (삭 내 포식) |
11.18 | 9.84 | 1.34 |
cordamp (증폭기) |
10.68 | 10.32 | 0.36 |
tau50, k_sen, k_ops |
10.50 | 10.50 | ~0 |
지배하는 것은 기하학(tau50, k_sen)는 중등증 HS의 Hb에 사실상 아무 영향이 없다 — 세포가
노화할 만큼 오래 살지 않기 때문이다. 증폭기(cordamp)는 거의 최하위이며, 이는
§3 실패 1의 결론과 일치한다.
수혈은 정상 기하학의 공혈 적혈구를 넣는 것이므로 헤모글로빈 보충이면서 동시에 기질 희석이다(중증 HS: Hb 3.06 → 8.73 g/dL, 2년 후 간철 3.8 → 16.8 mg/g).
python3 hsph_geometry.py # 기하학 커널 자체 검증
python3 hsph_calibrate.py # 3단계 보정 → hsph_calibration.json
python3 hsph_analysis.py # 18개 절 전체 → hsph_reference_output.txt
python3 sync_r_params.py # Python 파라미터를 R $PARAM에 주입
python3 mkrefs.py --refresh # PubMed에서 참고문헌 재조회
dot -Tsvg hsph_qsp_model.dot -o hsph_qsp_model.svg
dot -Tpng -Gdpi=150 hsph_qsp_model.dot -o hsph_qsp_model.pngR 쪽:
library(mrgsolve); library(dplyr)
mod <- mread("hsph_mrgsolve_model", ".")
mod %>% param(fdef = 0.42) %>% mrgsim(end = 1400, delta = 1) %>%
plot(Hb + RETpct + MCHC + TBIL ~ time)
shiny::runApp("hsph_shiny_app.R")| 블록 | 상태 수 | 내용 |
|---|---|---|
| 적혈구 연령 코호트 9개 × 5 | 45 | 세포수 N, 그리고 N×면적, N×부피, N×헤모글로빈, N×band 3 (외연량을 상류 이송으로 정확히 보존) |
| 적혈구 조혈 | 5 | EPO PROG ERB RETM RETB |
| 수혈 공혈 적혈구 | 1 | NDON (정상 기하학 — 수혈은 기질 희석이기도 하다) |
| 비장 | 3 | SPLV CORD MAC |
| 헴 대사·간담도 | 7 | HPT FHB BILU BILC BILE STONE LDH |
| 철 | 4 | HEPC FERR FELIV FESPL |
| 미타피밧 PK/PD | 5 | MGUT MCEN MPER ATP DPG |
| 위기·보조인자 | 2 | PARVO FOL |
연령 격자 경계: 0 / 4 / 9 / 16 / 26 / 42 / 64 / 92 / 130 / 200 일.
주요 위험도 항:
$$h = \underbrace{f_{\rm pass},p_{\rm slow}(D_c),\bigl[1-e^{-k_{\rm ph}M\tau_c\eta}\bigr]}_{\text{기하학적, 비장 전용}}
- \underbrace{k_{\rm ops}\bigl(w_{\rm spl}\sigma M + w_{\rm liv}\bigr)\frac{x^m}{1+x^m}}_{\text{옵소닌, 비장 72% + 간 28%}}
- h_{\rm liv} + h_{\rm lys} + \underbrace{k_{\rm sen}(\tau/\tau_{50})^{m}}_{\text{노화 표지}}$$
여기서
교육·연구 목적의 반정량적 QSP 모델입니다. 독립 검증되지 않았으며 임상 의사결정, 처방, 규제 제출에 사용해서는 안 됩니다.