전체 해상도 SVG 보기 · 153 노드 · 209 간선 · 19 클러스터 (18 기전 + 1 범례)
메트헤모글로빈혈증은 포화도(saturation)의 병이 아니라 운반(delivery)의 병이며, 침대 옆에서 얻을 수 있는 두 개의 숫자는 서로 반대 방향으로 틀려 있다.
그리고 해독제와 독은 같은 분자다. 둘을 가르는 것은 전자 공급(NADPH) 하나뿐이고, 이 병에서 가장 중요한 동반질환(G6PD 결핍)이 바로 그 공급을 끊는다.
이 저장소의 다른 모델들과 마찬가지로, 중요한 것은 "무엇을 넣었는가"가 아니라 "무엇을 넣지 않았는데도 나왔는가" 입니다.
이 모델의 139개 파라미터 목록에는 다음이 존재하지 않습니다:
- 중증도(severity) 척도, 또는 "MetHb 몇 %부터 위험" 같은 역치
- 메틸렌블루의 7 mg/kg 누적 상한
- G6PD 결핍에서의 금기 스위치
- 답손 중독의 반동(rebound) 항
- 맥박산소측정기의 85% 바닥 상수
- 설프헤모글로빈·HbM이 메틸렌블루에 반응하지 않는다는 규칙
그런데 아래 결과가 전부 나옵니다. 넣은 것은 다섯 개의 구조뿐이기 때문입니다.
| 모델에 넣은 것 (구조) | 모델이 계산해 낸 것 (결과) |
|---|---|
| 조효소가 글루타티온인 촉매적 공동산화 순환 | 벤조카인 250 mg이 MetHb 31%를 만들 수 있는 이유 — 화학량론만으로는 0.5%가 한계 |
| 소비자가 둘인 하나의 한정된 NADPH 공급 | G6PD 구배 전체: 작동 → 느려짐 → 실패 → 실패하면서 용혈 |
| 포화 가능한 좋은 가지 + 포화하지 않는 무익한 가지 | 메틸렌블루 용량–반응이 되꺾이고, 상한이 1회가 아니라 누적인 이유 |
| 아철 분율 → P50 및 Hill n (Darling–Roughton) | "MetHb 30%"의 등가 빈혈이 10.5가 아니라 8.31 g/dL |
| 색소당 흡광계수 2개 + 직선 보정식 1개 | 85% 바닥, 그리고 감도가 붕괴하는 지점이 하필 환자가 죽어 가는 구간이라는 것 |
| 서로 다른 속도로 도는 두 개의 시계 | 답손 중독의 반동 — 모델은 반동이 존재한다는 말을 들은 적이 없다 |
모든 수치는 mhb_reference_check.py가 실제로 계산한
것이며, 전체 출력은 mhb_reference_output.txt에
있습니다. 앵커 42개 전부 통과하고, R 파일과 Python 파일의 파라미터 139개가
0개 불일치로 대조되었습니다.
환자에게 "메트헤모글로빈이 30%입니다"라고 말할 때, 침대 옆에서 실제로 이루어지는
산술은 15 × 0.70 = 10.5 g/dL입니다. 그 산술은 틀렸고, 이 모델은 얼마나
틀렸는지를 계산합니다.
아철(Fe³⁺) 소단위는 옆에 있는 소단위에게 두 가지 일을 합니다. 협동성을 없애고 (n → 1), 곡선을 왼쪽으로 밉니다 (Darling & Roughton 1942). 즉 남은 헤모글로빈은 아직 나르고 있는 산소를 놓아주지 않습니다.
등가 빈혈(EQUIV Hb) = 같은 VO₂·같은 심박출량에서 같은 조직 PO₂를 만드는, 구조적으로 정상인 헤모글로빈의 농도.
| MetHb % | 통상 산술 Hb×(1−f) | 등가 Hb | 무력화된 Hb | 잔여 용량 중 % | PvO₂ | SpO₂ |
|---|---|---|---|---|---|---|
| 15 | 12.75 | 11.41 | 1.34 | 10.5% | 34.3 | 90.0 |
| 20 | 12.00 | 10.32 | 1.68 | 14.0% | 32.5 | 88.8 |
| 30 | 10.50 | 8.31 | 2.19 | 20.8% | 28.6 | 87.4 |
| 40 | 9.00 | 6.57 | 2.43 | 27.0% | 24.3 | 86.6 |
| 50 | 7.50 | 5.17 | 2.33 | 31.1% | 19.1 | 86.1 |
다섯 번째 열을 보십시오. 좌측 이동이 무력화하는 몫은 15%에서 10%, 30%에서 21%, 50%에서 31%로 중증도와 함께 커집니다. 오차가 가장 큰 곳이 하필 결정이 가장 중요한 곳입니다.
그리고 MetHb 50%에서 PvO₂는 19.1 mmHg — 혐기성 역치 아래입니다. 모델에 "50%는 위험하다"고 적어 넣은 적이 없는데도 그렇게 나옵니다.
%MetHb는 비(ratio) 입니다. 조직 산소 운반은 곱(product) 입니다. 모델이 둘 다 들고 있으면, 빈혈 환자의 취약성은 경고문이 아니라 산술이 됩니다.
| Hb | MetHb 20% → PvO₂ | MetHb 30% → PvO₂ | SpO₂ (20% / 30%) |
|---|---|---|---|
| 17.0 | 34.8 | 31.0 | 88.8 / 87.4 |
| 15.0 | 32.5 | 28.6 | 88.8 / 87.4 |
| 12.0 | 28.4 | 24.5 | 88.8 / 87.4 |
| 9.0 | 23.1 | 18.9 ⚠ | 88.8 / 87.4 |
| 7.0 | 18.0 ⚠ | 13.5 ⚠ | 88.8 / 87.4 |
오른쪽 열을 보십시오. 맥박산소측정기는 모든 행에서 똑같은 숫자를 읽습니다. Hb 7과 Hb 17 사이의 SpO₂ 차이는 0.0점입니다. 조직 PO₂ 차이는 16.8 mmHg입니다. 침대 옆의 어떤 측정도 이 두 환자를 구별하지 못합니다.
교과서의 "15% 무증상 / 30% 호흡곤란 / 50% 산증" 표는 암묵적으로 Hb 15 g/dL을 가정합니다. Hb 8인 환자에게는 그냥 틀린 표입니다.
맥박산소측정기가 계산하는 것은 딱 하나, R = A₆₆₀ / A₉₄₀ 입니다. 그리고 그 값을
직선 보정식 SpO₂ = 110 − 25R에 넣습니다. 660 nm와 940 nm에서 비슷하게
흡수하는 색소는 무엇이든 R을 1로 끌어당기고, 직선을 R = 1에서 평가하면
110 − 25 = 85입니다.
| MetHb % | R | SpO₂ | 동시산소측정 SaO₂ | 격차 | −dSpO₂/d(%MetHb) |
|---|---|---|---|---|---|
| 0 | 0.346 | 100.0 | 96.8 | 3.2 | — |
| 5 | 0.608 | 94.8 | 91.9 | 2.9 | 0.90 |
| 15 | 0.800 | 90.0 | 81.9 | 8.1 | 0.35 |
| 30 | 0.902 | 87.4 | 67.1 | 20.4 | 0.14 |
| 50 | 0.956 | 86.1 | 47.3 | 38.8 | 0.05 |
| 70 | 0.982 | 85.4 | 27.8 | 57.6 | 0.03 |
| 85 | 0.993 | 85.2 | 13.6 | 71.6 | 0.02 |
마지막 열이 이 절의 요점입니다. 기기의 감도는 병이 심해질수록 무너집니다. 0–5% 구간에서는 1%당 0.9점씩 움직이고, 60–85% 구간에서는 0.02점 움직입니다. 기기는 환자가 죽어 가는 바로 그 구간에서 사실상 반응을 멈추며, 그것도 알람 없이 매끄럽게 그렇게 합니다.
부수적으로, 육안 청색증 역치도 계산되어 나옵니다: MetHb 9.1% (임상 교육의 "10–15%"). 청색증을 세 색소의 합으로 쓰고 각각에 역치(탈산소Hb 5 g/dL, MetHb 1.5, 설프Hb 0.5)를 준 것이 전부입니다.
모델에는 최대 용량 파라미터가 없습니다. 있는 것은 갈림길 하나입니다.
류코메틸렌블루(LMB)는 두 개의 전자를 메트헤모글로빈에 줄 수도 있고, 산소에 줄
수도 있습니다. 앞의 가지는 MHB/(Km+MHB)에 비례해 포화하고, 일이 끝나면
꺼집니다. 뒤의 가지는 포화하지 않고, 약이 있는 한 계속 돕니다.
| MB (mg/kg) | MetHb @2h | Hb @48h | 하인츠 | ROS 노출 (AUC) |
|---|---|---|---|---|
| 0.5 | 9.82 | 14.98 | 0.002 | 168 |
| 1.0 | 5.05 | 14.94 | 0.011 | 308 |
| 2.0 | 2.86 | 14.68 | 0.060 | 559 |
| 3.0 | 2.50 ← 최저 | 14.30 | 0.133 | 783 |
| 5.0 | 2.75 | 13.53 | 0.276 | 1177 |
| 7.0 | 3.44 | 12.91 | 0.392 | 1516 |
| 10.0 | 4.84 | 12.25 | 0.511 | 1947 |
메트헤모글로빈 열은 바닥을 치고 되올라오는데, 헤모글로빈과 하인츠 열은 계속 나빠집니다. 이것이 임상적 상한이 "1회 용량"이 아니라 "누적 용량"인 이유입니다: 해악은 약이 있는 동안 계속 도는 무익한 가지의 시간 적분이고, 이익은 기질이 사라지는 순간 꺼집니다. 시간 적분에 걸리는 제약은 본질적으로 누적 제약입니다.
모델에는 "G6PD 결핍에서 메틸렌블루 금기"라는 규칙이 없습니다. 있는 것은 소비자가 둘인 하나의 한정된 NADPH 공급뿐입니다: 류코메틸렌블루를 만드는 플라빈 환원효소와, 막을 온전히 유지하는 글루타티온 환원효소.
| G6PD 활성 | MetHb @2h | 최저 GSH (µM) | 하인츠 | Hb @72h | 판정 |
|---|---|---|---|---|---|
| 1.00 | 2.85 | 1897 | 0.06 | 14.65 | 작동 |
| 0.40 | 16.00 | 570 | 0.03 | 14.83 | 작동 |
| 0.25 | 22.37 | 120 | 0.23 | 13.83 | 느리게 작동 |
| 0.15 (A⁻) | 22.82 | 50 | 0.44 | 12.86 | 실패 |
| 0.08 | 18.26 | 22 | 0.63 | 12.06 | 실패 + 용혈 |
| 0.02 (Mediterranean) | 12.85 | 5 | 0.83 | 11.10 | 실패 + 용혈 |
이진 규칙이 아니라 구배가 나옵니다. 그리고 GSH 열이 이유를 보여 줍니다: 활성이 낮을 때 메틸렌블루는 단지 무효한 것이 아니라, 세포를 붙들고 있던 전자를 놓고 글루타티온과 경쟁합니다.
한 가지 더 — 표를 아래로 내려가면 MetHb @2h가 22.8%에서 다시 내려갑니다 (12.85%). 이것은 오류가 아니라 예측입니다: G6PD가 극단적으로 낮으면 산화제의 공동산화 순환 자체도 글루타티온을 재생하지 못해 멈춥니다. 즉 심한 G6PD 결핍 환자는 산화제 노출에서 메트헤모글로빈을 덜 만들고 대신 용혈합니다 — 이것이 실제로 관찰되는 임상상입니다.
| 답손 | 정상상태 MetHb |
|---|---|
| 50 mg/d | 3.07% |
| 100 mg/d | 5.69% |
| 200 mg/d | 12.39% |
| 300 mg/d | 21.61% |
| 100 mg/d + 시메티딘 | 3.57% (37% 감소) |
답손 2 g 과량복용, 무치료: 최고 MetHb 58.7% (26.8시간), 20% 이상으로 80시간.
여기에 메틸렌블루 2 mg/kg를 6시간에 한 번 주면:
27.2% → 2.7% (7.9시간) → 다시 25.8%로 반동 (52.2시간)
모델은 답손 중독이 반동한다는 말을 들은 적이 없습니다. 반동하는 이유는 두 개의 시계가 서로 다른 속도로 돌기 때문입니다. 시계 1(원인): 답손 반감기 약 30시간
- 장간 순환 → 산화제 유입이 며칠 갑니다. 시계 2(해독제): 혈액에 대한 메틸렌블루의 효과는 한 시간 안에 끝납니다.
그리고 이것이 치료 논증으로 이어집니다 — 어느 항(term)이 율속인가의 문제로:
| 전략 | MetHb AUC (%·h) | Hb @144h | 누적 MB |
|---|---|---|---|
| 메틸렌블루 5회 (천장까지) | 1052 | 12.64 | 7 mg/kg |
| 메틸렌블루 2회 + 시메티딘 | 913 | 13.64 | 4 mg/kg |
메틸렌블루는 제거 항에 작용하고 한 시간 만에 소진됩니다. 시메티딘은 생성 항에 작용하고 계속 작용합니다. 원인이 며칠 가는 중독에서, 짧게 작용하는 약은 누적 천장에 닿을 때까지 반복 투여해야 하지만 원인을 줄이는 쪽에는 그 제약이 없습니다.
선천성 CYB5R3 결핍 환자는 눈에 띄게 파랗고, 메트헤모글로빈이 15–30%이며, 멀쩡합니다. 모델에 "만성" 스위치는 없습니다. 있는 것은 2,3-BPG와 골수이고, 둘 다 조직 저산소에 반응합니다. 그리고 2,3-BPG가 P50에 하는 일은 메트헤모글로빈이 하는 일의 정확히 반대 방향입니다.
| MetHb | 2,3-BPG | P50eff | Hb | PvO₂ | SpO₂ | |
|---|---|---|---|---|---|---|
| 만성 (250일) | 22.5% | 1.09× | 26.4 | 15.08 | 35.5 | 88.3 |
| 같은 %를 급성으로 | 22.5% | 1.00× | 23.8 | 15.00 | 31.6 | 88.3 |
같은 퍼센트, 같은 산소측정기 숫자, 조직에서 3.9 mmHg의 차이. 이 보상은 "내성"도 "뇌의 적응"도 아니고, 측정 가능한 우측 이동이 측정 가능한 좌측 이동의 일부를 상쇄하는 것입니다.
같은 이유로, 선천성 메트헤모글로빈혈증에서의 메틸렌블루는 미용적 시술입니다. 색은 변하고 조직 PO₂는 거의 움직이지 않습니다.
HbM 변이체(FHBM = 0.25)에서는 메틸렌블루를 주어도 MetHb가 움직이지 않습니다. 모델에 "HbM은 반응하지 않는다"는 규칙은 없습니다 — HbM 아철 헴이 환원 방정식의 기질 항에 애초에 들어가지 않을 뿐입니다. 설프헤모글로빈도 같은 방식으로 처리됩니다.
세 가지 치료 계열은 서로 다른 항을 공격합니다:
| 항 | 치료 | 성격 |
|---|---|---|
| 생성 | 원인 약물 중단 · 시메티딘 · 활성탄 | 느리지만 계속 작용 |
| 제거 | 메틸렌블루 · 아스코르브산 · 리보플라빈 | 빠르지만 상한이 있고 NADPH가 필요 |
| 운반 | 고압산소 · 교환수혈 | 1·2번이 불가능할 때 유일하게 작동 |
| 상황 | 용존 O₂ | PvO₂ | |
|---|---|---|---|
| MetHb 70%, 실내 공기 | 0.29 mL/dL | 5.4 mmHg | 혐기성 |
| MetHb 70%, 100% O₂ (1 ATA) | 1.92 | 16.7 | 여전히 혐기성 |
| MetHb 70%, 100% O₂ @ 2.8 ATA | 5.40 | 131.5 | 호기성 |
| MetHb 95%, 100% O₂ @ 2.8 ATA | 5.40 | 131.6 | 호기성 |
산술은 보에레마의 것입니다. 안정 시 추출량은 VO₂/(CO×10) = 5.0 mL/dL이고,
2.8 ATA의 산소는 혈장에 0.003 × 1800 = 5.4 mL/dL을 녹입니다. 5.4 > 5.0.
즉 고압산소는 기능하는 헤모글로빈이 사실상 없어도 안정 시 대사를 감당합니다 —
그리고 그것이 하필 메틸렌블루가 작용할 기질이 남아 있지 않은 바로 그 상황입니다.
아스코르브산은 "느린 메틸렌블루"가 아닙니다. 비효소적 이분자 반응이고, 신장이 견디는 어떤 용량으로도 경쟁이 되지 않습니다. 메틸렌블루가 금기일 때 쓰는 것이지, 없을 때 쓰는 것이 아닙니다.
메틸렌블루는 강력한 MAO-A 억제제입니다(IC50 ≈ 5 µM).
| 최고 시냅스 세로토닌 (정상 = 1) | |
|---|---|
| 메틸렌블루 단독 | 1.29 |
| SSRI 단독 | 1.62 |
| 메틸렌블루 + SSRI | 2.62 |
아질산염의 자가촉매 항(KNIT2)은 임상적으로 알려진 "지연 후 급상승" 형태를
만들 것이라 기대하고 넣은 것입니다. 만들지 못했습니다.
| 5 g 최고 MetHb | 5% → 30% 상승 시간 | |
|---|---|---|
| 자가촉매 항 포함 | 62.1% | 0.41 h |
| 자가촉매 항 제거 | 61.6% | 0.41 h |
이유 자체가 결과입니다: 중독 용량에서 이 반응은 자기 화학 속도로 율속되지 않습니다. 올라가는 동안은 흡수가, 꼭대기에서는 화학량론이 율속합니다 — 아질산나트륨 5 g은 72.5 mmol이고 헴은 약 186 mmol이며, 아릴하이드록실아민과 달리 아질산염은 반응하면서 소모됩니다. 그래서 아질산염 환자에서는 "얼마나 먹었나"가 답손 환자에서보다 훨씬 잘 맞습니다.
자가촉매는 실재하는 화학입니다. 다만 생체 내에서 율속 단계가 아닐 뿐입니다. 항은 모델에 남겨 두었고 이 절도 출력에 남겨 두었습니다. 실패한 가설을 지우는 것이 모델이 검증 가능하기를 그만두는 방식이기 때문입니다.
이 모델의 헤드라인 결과는 전적으로 ALPHAM(Darling–Roughton 좌측 이동의
크기)에 의존합니다. 그런데 메트헤모글로빈이 남은 아철 소단위의 P50을 정확히
얼마나 낮추는지에 대한 정량적 인체 데이터는 빈약합니다.
| 좌측 이동 | P50eff (MetHb 30%) | MetHb 30%의 등가 Hb |
|---|---|---|
| 0 (없음) | 26.8 | 10.39 — 통상 산술(10.50)이 사실상 옳아지고, 이 모델의 주장은 사라진다 |
| 절반 | 24.8 | 9.31 |
| 모델값 (α = 0.50) | 22.8 | 8.31 |
| 1.5배 | 20.8 | 7.40 |
이 모델은 반증 가능하고, 필요한 실험은 새로운 것이 아닙니다: 같은 검체에서 동시산소측정 %MetHb와 실측 P50을 함께 재고 그 기울기를 보면 됩니다. 기울기가 0이면 이 모델의 중심 주장은 틀린 것입니다.
그 밖에 정직하게 적어 두는 한계:
E660M·E940M은 같게 설정했습니다. 모델이 진짜로 예측하는 것은 바닥의 형태(점근하는 바닥, 붕괴하는 감도)이지 바닥의 정확한 높이가 아닙니다.EB5는 생체 내 flux 분율이지 assay 활성 분율이 아닙니다. 선천성 I형은 보통 잔존 활성 10–20%로 보고되지만, 관찰되는 MetHb 15–30%를 재현하려면 생체 내 flux는 3.5% 수준이어야 합니다. 이 불일치는 실재하며 감추지 않습니다.- 용혈 항은 세포 연령 구조 모델이 아니라 2-구동 집단 근사입니다. 방향과 대략의 크기는 재현하지만 수혈 역치 예측에 써서는 안 됩니다.
- 컨테이너에 R이 없어 mrgsolve 파일은 컴파일 검증이 아니라 방정식 검증을 거쳤습니다.
| 파일 | 내용 |
|---|---|
mhb_qsp_model.dot · .svg · .png |
기계론적 지도 — 153 노드, 209 간선, 19 클러스터 |
mhb_mrgsolve_model.R |
mrgsolve 모델 — 42 ODE, 139 파라미터, 23 시나리오 |
mhb_shiny_app.R |
Shiny 대시보드 — 13개 탭 |
mhb_reference_check.py |
독립 Python/scipy 재구현 + 검증 |
mhb_reference_output.txt |
위 스크립트의 전체 출력 (README의 모든 수치의 출처) |
mhb_references.md |
참고문헌 171편 — PMID 전부 PubMed E-utilities로 실조회 |
python3 mhb_reference_check.py --all # 42/42 앵커 통과
python3 mhb_reference_check.py --params mhb_mrgsolve_model.R # 139/139 파라미터 일치
dot -Tsvg mhb_qsp_model.dot -o mhb_qsp_model.svg
dot -Tpng -Gdpi=150 mhb_qsp_model.dot -o mhb_qsp_model.png
Rscript -e 'shiny::runApp("mhb_shiny_app.R")'본 모델은 교육 및 연구 목적의 정성적·반정량적 QSP 모델입니다. 공개 문헌을 바탕으로 구성되었으나 독립적으로 검증·인증되지 않았으며, 실제 임상 의사결정, 처방, 규제 제출에 직접 사용해서는 안 됩니다. 특히 메틸렌블루의 용량, 누적 상한, G6PD 결핍에서의 사용 여부는 반드시 최신 임상 지침과 독성학 자문에 따르십시오.