Skip to content

Latest commit

 

History

History
508 lines (403 loc) · 29.5 KB

README.md

File metadata and controls

508 lines (403 loc) · 29.5 KB

내장 리슈만편모충증 (칼라아자르) QSP 모델

Visceral Leishmaniasis (Kala-azar) — Quantitative Systems Pharmacology Model

Leishmania donovani / L. infantum · 73-ODE mrgsolve model · 4 organ compartments × 4 antileishmanial drugs · 20 treatment scenarios


이 모델이 하는 단 하나의 구조적 주장

약과 기생충은 혈장에서 만나지 않는다.

Amastigotes live inside macrophages of spleen, liver, bone marrow and dermis. So every kill term in this model is driven by an intramacrophage concentration — while amphotericin B nephrotoxicity is driven by the free plasma concentration of the same dose. Liposomal encapsulation moves those two integrals in opposite directions, because the liposome is cleared by the very cell lineage that harbours the parasite.

Everything else in the model follows from taking that seriously:

# 주장 (claim) 모델이 계산한 결과 (computed, not assumed)
1 같은 mg/kg이 두 개의 적분으로 갈라진다 리포솜화로 비장 노출 ×4.0, 자유 혈장 노출 ×0.30 → 치료지수 13.3배
2 소아 밀테포신 실패는 산수다 용량 ∝ WT¹·⁰, 청소율 ∝ WT⁰·⁷⁵ ⇒ AUC ∝ WT⁰·²⁵. 10 kg 소아 노출은 성인의 0.669배
3 완치는 0마리가 아니라 분리선 통과다 그 분리선은 CD4 350과 300 사이에서 사라진다. HIV-VL에서 결정 변수는 약물 총량이 아니라 ART로 나온다
4 무증상 감염과 칼라아자르는 경쟁의 결과다 프라이밍 속도 2배 차이가 발병을 가른다 (기생충은 동일)
5 안티몬 내성은 배출 적정이고 용량으로 못 이긴다 20→40 mg/kg에서 QTc 455→511 ms, 리파아제 508→985 U/L, 내성주는 여전히 실패
6 병용요법의 상승효과는 농도가 아니라 시간에 있다 부하 5배 환자에서 L-AmB 5 단독은 실패, +밀테포신 7일은 완치
7 PKDL은 약이 가장 안 닿는 장기에 남은 것이다 피부 EC50 초과 시간: 밀테포신 1205시간 vs L-AmB 133시간 (9배)

파일 (Files)

파일 내용
vl_qsp_model.dot 기계론적 지도 소스 — 164 노드 · 18 클러스터 · 220 엣지
vl_qsp_model.svg 확대 가능한 벡터 지도
vl_qsp_model.png 150 dpi 래스터 (22087 × 4393 px)
vl_mrgsolve_model.R 73-ODE mrgsolve 모델 + 20 시나리오 + 10개 분석 함수
vl_shiny_app.R 10-탭 인터랙티브 대시보드
vl_reference_model.py 독립 Python 구현 (검증용, 아래 참조)
vl_reference_output.txt 위 구현의 실행 로그 — 이 README의 모든 숫자의 출처
vl_population_results.json 집단 시뮬레이션 16개 군 결과 (기계 판독용)
vl_references.md PubMed 직접 조회 문헌 223편, 17개 섹션

왜 Python 구현이 함께 있는가 (Provenance)

이 저장소가 빌드된 환경에는 R 런타임이 없었다. 검증되지 않은 ODE 모델을 커밋하는 것보다, 모든 방정식을 Python으로 독립 구현해 실제로 적분해 보고 그 결과를 커밋하는 것이 정직하다고 판단했다. vl_mrgsolve_model.R과 vl_reference_model.py는 항 대 항으로 동일하며, 이 README의 모든 숫자는 후자의 실행 결과(vl_reference_output.txt)다.

그렇게 한 덕분에 8개의 실제 결함이 드러났다. 각각은 두 파일 모두에 주석으로 표시되어 있다 — QSP 모델을 읽는 사람은 어느 줄이 어려웠는지 알 권리가 있다:

  1. 적분기를 멈추는 소멸 하한. if (P < 1e-7 && dP > 0) dP = 0을 미분식 안에 두면 불연속 스위치가 된다. 부하가 높을 때는 보이지 않다가, 어느 구획이든 비워지는 순간 solver 탐침 사이에서 켜졌다 꺼지며 LSODA의 오차 추정을 파괴한다 — 28일 밀테포신 요법이 100초가 넘어도 끝나지 않았다. 하한은 f(t,y) 안이 아니라 적분 구간 사이에 있어야 한다.
  2. 설정점 없는 CD4. 손실항만 있고 항상성 항이 없어서, 면역정상 환자가 18개월 추적 동안 CD4 4/µL로 흘러내리고 숙주 면역 축 전체가 조용히 꺼졌다. 실제로 90% 이상을 완치시키는 다섯 개 요법이 "실패"로 나왔다.
  3. 포화 신호로 구동한 TGF-β. 포화하는 항원 신호 AG로 구동하면 1e4마리까지 최대치를 유지하며 대식세포 활성을 영구히 잠가서, 어떤 느린 약도 숙주에게 바통을 넘길 수 없었다.
  4. 신장 100배 증폭. KIN·Kp·C·V − KOUT·A 형태는 자유 농도를 Kp에 더해 KIN/KOUT = 12.5배까지 곱한다. 데옥시콜레이트에서 최고 크레아티닌 32 mg/dL, 혈청 칼륨이 음수로 나왔다.
  5. 휴식 상태 대식세포를 활성 상태로 초기화. MPHA는 활성 분율이므로 건강한 숙주는 0에 가깝다. 높게 두면 (a) 빠른 약의 효과가 부풀려지고 (b) 새 모래파리 접종이 도착 즉시 멸균되어 자연사 분석이 전부 "감염 실패"로 나왔다.
  6. 1e-4로 축소된 장기 간 이동. 유효 속도 2e-8 /h는 이동이 아니라 0이다. 피부 접종이 18개월 동안 피부에 머물며 내장으로 퍼지지 않았다.
  7. 대칭적 장기 간 이동. 대칭으로 쓰면 면역특권 피부가 치료 불가능한 저장고가 되어 내장을 계속 재접종하고 20개 요법 전부가 재발했다. 피부 대식세포는 대체로 조직 상주형이며 재순환하지 않는다.
  8. 전체 부하로 구동한 IL-10. 자라나는 피부 저장고가 K50_IL10을 넘겨 숙주를 다시 면역억제시켰다 — 방향이 거꾸로다. PKDL 환자는 면역억제 상태가 아니며 활성 칼라아자르의 IL-10은 비장·골수에서 나온다.

구획 구조 (73 ODEs)

그룹 개수 상태변수
암포테리신 B 8 온전한 리포솜 · 방출된 자유 약물 · 말초 · 비장/간/골수/피부 대식세포 · 신피질
밀테포신 7 장 depot · 중앙 · 말초 · 4개 대식세포 구획
파로모마이신 9 IM depot · 중앙 · 말초 · 4개 대식세포 구획 · 신피질 · 와우
안티몬 8 depot · 혈장 Sb(V) · 예비 · 4개 구획 세포내 Sb(III) · 심부 조직 저장고
기생충 8 4개 장기 × (증식형 + 정지기)
숙주 면역 7 TMEM · IFN-γ · IL-10 · TNF-α · TGF-β · CD4 · 활성 대식세포
임상 10 비장 · 간 · Hb · 혈소판 · 백혈구 · 알부민 · 다클론 IgG · 체온 · 체중감소 · PKDL 병변
독성 9 세뇨관 손상 · 크레아티닌 · K · Mg · 청력 · QTc · 리파아제 · ALT · 위장
누적량 7 노출 적분 5개 · 누적 사망 위험 · 누적 mg/kg

세 개의 문턱, 두 개의 출처 (three thresholds, two sources)

모델에서 부하는 세 개의 서로 다른 신호로 읽힌다. 이것이 이 모델의 두 번째 구조적 선택이다:

신호 반최대 부하 출처 의미
AG 항원 가용성 0.01 단위 (1e4마리) 전체 (피부 포함) T세포 프라이밍 — PKDL 환자가 레이슈마닌 양성인 이유
AGH IL-10 신호 60 단위 (6e7마리) 내장만 고부하에서만 켜지는 면역억제 스위치
AGS 전신 증상 300 단위 (3e8마리) 내장만 발열 · 악액질 · 저알부민혈증

KAG ≪ K50_IL10은 편의가 아니라 주장이다: IL-10이 이미 꺼진 부하 범위에서도 항원은 여전히 풍부하다. 1e4마리에서 6e7마리까지 약 3.8 log 폭의 그 창이 숙주가 프라이밍될 수 있는 구간이며, 환자를 그 창 안으로 밀어넣고 기억세포가 쌓일 동안 붙잡아 두는 것이 약물 요법이 하는 일의 전부다.


결과 (Results — 전부 vl_reference_output.txt에서)

1. 하나의 용량, 반대 방향으로 움직이는 두 개의 적분

동일한 총 10 mg/kg을 리포솜형과 데옥시콜레이트로 투여했을 때:

지표 L-AmB d-AmB 비
총 혈장 Cmax (mg/L) 79.8 2.32 34.4
자유 혈장 AUC (mg·h/L) — 신독성 구동 137.9 459.7 0.30
비장 대식세포 AUC (mg·h/L) — 살상 구동 25 688 6 435 3.99
최고 크레아티닌 (mg/dL) 1.01 1.30 0.78
치료지수 대용값 (AUC비장 / AUC자유) 186.3 14.0 13.3배

리포솜 누출 분율 FREL을 훑으면 이것이 제형이 아니라 전달 단계의 효과임이 드러난다. 그리고 FREL = 1.00(리포솜이 전부 새는 극단)에서 치료지수가 14.0 — 데옥시콜레이트와 정확히 일치한다. 자유 파라미터 없이 나온 내부 일관성 검정이다:

FREL AUC 비장 AUC 자유 치료지수
0.05 32 564 23.0 1 417
0.30 (기본값) 25 688 137.9 186
0.70 14 687 321.8 45.6
1.00 6 435 459.7 14.0 ← d-AmB와 동일

2. 소아 밀테포신: 전부 산수다

용량은 체중에 비례(지수 1.0)해 처방되지만 청소율은 지수 0.75로 스케일된다. 따라서 AUC ∝ WT⁰·²⁵:

체중 (kg) 선형 용량 (mg/d) AUC (완전) 50 kg 대비 WT⁰·²⁵ 예측
10 25.0 18 142 0.669 0.669
20 50.0 21 576 0.795 0.795
50 125.0 27 131 1.000 1.000

관측된 비율이 예측과 소수 세 자리까지 일치한다 — 우연이 아니고 항등식이다. 알로메트릭(체중대별 고정용량) 투여는 이 결손을 되돌리지만 가장 작은 체중에서는 약 10% 과교정한다 (7 kg에서 필요 1.48배, 실제 1.64배). 이것도 그대로 보고한다.

단, 전형적 환자 한 명에서는 이 33% 차이가 결과를 바꾸지 않는다. 여섯 개 소아 시나리오 전부가 완치된다. 차이는 집단 시뮬레이션의 꼬리에서 나타난다 — 아래 표 참조. 이것은 모델의 한계가 아니라 결과다: 노출 결손은 여유가 좁은 환자에게서만 결과를 바꾼다.

3. 완치 문턱은 계산 가능한 분리선이고, CD4에서 사라진다

치료 종료 시 기억세포 TMEM을 갖춘 환자가 약 없이 스스로 끝낼 수 있는 잔존 부하:

CD4 TMEM 임계 잔존 부하 = amastigotes
700 0.55 120.2 단위 1.2 × 10⁸
700 0.30 104.1 단위 1.0 × 10⁸
700 0.15 없음 어떤 부하도 못 끝낸다
500 0.55 103.8 단위 1.0 × 10⁸
350 0.55 88.7 단위 8.9 × 10⁷
300 이하 0.55 없음 어떤 부하도 못 끝낸다

핵심은 문턱이 완만하게 줄어드는 게 아니라 CD4 350과 300 사이에서 없어진다는 것이다. 그 위에서는 약이 환자를 선 아래로 내려놓기만 하면 숙주가 마무리한다. 그 아래에서는 약이 혼자 멸균해야 한다.

그리고 이 구조에서 예상 밖의 결과 하나가 따라 나온다. HIV-VL 시나리오를 훑으면 결정 변수는 항리슈만편모충제의 총량이 아니라 ART다:

시나리오 CD4 nadir 540일 부하 결과 사망률
면역정상, L-AmB 10 mg/kg 700 0.00025 0.00026 완치 4.3%
HIV, ART 중, L-AmB 10 mg/kg 90 0.0056 0.0056 완치 10.9%
HIV, ART 중, L-AmB 30 mg/kg 90 0.0017 0.0056 완치 10.9%
HIV, ART 중, L-AmB 30 + 밀테포신 28일 90 8.8 × 10⁻⁵ 0.0056 완치 10.9%
HIV, ART 없음, L-AmB 30 + 밀테포신 28일 90 0.034 1.59 × 10⁴ 재발 97.5%
HIV, ART 중, L-AmB 10 mg/kg 250 0.0056 0.0056 완치 10.9%

ART 없이는 총량 30 mg/kg에 밀테포신 28일을 더해도 재발하고, ART가 있으면 10 mg/kg 단독으로도 완치된다. 총량 증량이 무의미하다는 뜻은 아니다 — nadir가 0.0056 → 0.0017 → 8.8 × 10⁻⁵로 실제로 내려가므로, 여유가 좁은 환자에서는 그 차이가 결과를 바꾼다. 다만 이 모델에서 CD4 회복은 다른 축이고, 그 축이 없으면 약물 축을 얼마나 밀어도 결승선에 닿지 않는다. WHO 지침이 HIV-VL에서 ART 시작을 강조하는 것과 방향이 같다.

4. 병용요법의 상승효과는 시간에 있다

L-AmB 총량을 5 mg/kg로 고정하고:

요법 전형 환자 부하 5배·CD4 300·영양불량 환자
L-AmB 5 단독 완치 실패 (nadir 68.5)
L-AmB 5 + 밀테포신 7일 완치 완치
밀테포신 먼저, 그 다음 L-AmB 완치 완치
L-AmB 5 + 밀테포신 14일 완치 완치 (TMEM@EOT 0.234로 최고)
L-AmB 5 + 파로모마이신 10일 완치 재발

전형 환자에서는 모든 팔이 완치된다 — 면역정상 환자에서 암포테리신의 효능 여유가 동반 약물의 기여를 덮을 만큼 넓다는 뜻이며, 그 자체가 보고할 값이 있는 결과다. 병용요법이 존재하는 이유는 두 번째 열의 환자다. 그리고 순서를 봐야 할 곳은 nadir가 아니라 TMEM@EOT 열이다: 밀테포신의 7일 tail(말단 반감기 7일)이 기억세포가 쌓이는 몇 주 동안 약물 압력을 유지한다. 파로모마이신은 세포내 유입이 느리고(KIN 0.020 /h) 혈장 반감기가 2–3시간이어서 같은 tail을 만들지 못한다.

5. 안티몬: 배출 적정은 용량으로 이길 수 없다

내성을 표적 친화도가 아니라 배출(MRPA / Sb-트리파노티온 결합체 수송)로 쓰면, 용량 증량이 왜 실패하는지가 구조에서 나온다 — 배출항이 증량이 만드는 세포내 부하에 정확히 비례하는데, QTc와 리파아제는 그렇지 않다:

RES_SB 용량 (mg/kg/d) Sb(III) 비장 AUC log 감소 최고 QTc 최고 리파아제 결과
1 (감수성) 20 827 완전 455 508 완치
3 20 276 −1.92 455 508 실패
3 40 552 완전 511 985 완치 — 대가를 치르고
9 (비하르) 20 92 −0.50 455 508 실패
9 40 184 −1.15 511 985 여전히 실패

6. 피부는 약리학적으로 다른 장기다

L-AmB 10 mg/kg 단회 투여 후 장기별 대식세포 노출, 그리고 EC50을 넘어선 시간:

장기 MPS 분배율 AUC (mg·h/L) AUC/EC50 (시간)
간 0.60 26 504 4 417
비장 0.10 25 688 4 279
골수 0.12 5 990 998
피부 0.03 801 133

밀테포신은 같은 피부 구획에서 AUC/EC50 = 1 205시간 — 9배다. 이것이 "밀테포신이 PKDL 약이다"라는 문장의 정량적 내용이며, 미생물학적 차이가 아니라 약동학적 차이다.

VL 요법이 남기는 PKDL 위험 (겉보기 완치 후 180일 잔존 피부 부하):

VL 요법 피부 약물 AUC 180일 피부 부하
L-AmB 10 mg/kg 단회 801 90.8
파로모마이신 21일 4 607 93.0
L-AmB 5 + 밀테포신 7일 27 126 14.8
L-AmB 21 mg/kg 분할 1 682 6.2
밀테포신 28일 108 476 0.008

PKDL 치료 자체 (내장은 완치되고 피부만 남은 환자에서 출발):

요법 180일 피부 부하 최고 병변 360일 병변
밀테포신 12주 0.005 3.91 0.002
L-AmB 5 mg/kg 주 1회 × 4 (총 20) 92.0 6.88 5.90
L-AmB 5 mg/kg 주 1회 × 8 (총 40) 1.08 3.78 0.48
무치료 93.2 6.32 4.78

7. 무증상 감염과 칼라아자르는 경쟁의 결과다

작은 내장 병소에서 출발해 T세포 프라이밍 속도 KTP만 훑으면:

KTP (1/h) 최고 부하 540일 부하 최고 비장 (cm) 최고 IL-10 결과
1.0 × 10⁻⁵ 1.60 × 10⁴ 1.60 × 10⁴ 11.4 1.50 임상 칼라아자르
1.0 × 10⁻⁴ 1.51 × 10⁴ 1.51 × 10⁴ 11.3 1.50 임상 칼라아자르
2.0 × 10⁻⁴ 56.6 51.2 0.51 0.00 무증상
5.0 × 10⁻³ 2.53 2.53 0.50 0.00 무증상

단일 숙주 파라미터의 2배 차이가 전격성 칼라아자르와 무발병을 가른다 — 기생충은 전혀 바뀌지 않는다. 이것이 무증상:임상 감염 비가 왜 지역·영양 상태·연령에 그렇게 민감한지에 대한 모델 수준의 설명이다.

8. 분할 투여에 대한 통념 하나를 모델이 지지하지 않는다

총량을 10 mg/kg로 고정한 L-AmB 분할 투여:

일정 AUC 비장 AUC 자유 최고 크레아티닌 결과
10 mg/kg × 1 25 688.2 137.9 1.01 완치
2 mg/kg × 5 25 688.2 137.9 1.01 완치
0.5 mg/kg × 20 25 688.2 137.9 0.98 완치
2 mg/kg 주 1회 × 5 25 688.2 137.9 0.96 완치

암포테리신 분포가 선형이므로 고정 총량에서 두 적분 모두 일정에 대해 정확히 불변이다(모든 행에서 25 688.2와 137.9). 분할이 실제로 바꾸는 것은 첨두뿐이며, 신피질 첨두 농도가 낮아져 크레아티닌이 1.01 → 0.96–0.98로 조금 내려간다. 즉 단회 투여에 대한 정직한 모델 근거는 "분할이 독성 적분을 올린다"가 아니라 동등한 효능 · 동등한 총노출 · 방문 한 번이라는 운영적 논거다.

9. 20개 시나리오 (전형 환자)

시나리오 mg/kg log 감소 540일 부하 비장 (cm) Hb 결과
무치료 자연사 0 −0.00 1.07 × 10⁴ 11.0 3.1 사망 경로
SSG 20 mg/kg × 30일 (동아프리카) 600 −9.34 0.0002 0.50 13.7 완치
SSG 20 mg/kg × 30일 (비하르, 내성) 600 −0.49 1.07 × 10⁴ 11.0 3.1 실패
AmB 데옥시콜레이트 15 mg/kg 15 −7.58 0.0003 0.50 13.7 완치
L-AmB 10 mg/kg 단회 10 −7.58 0.0003 0.50 13.7 완치
L-AmB 21 mg/kg 분할 21 −8.31 0.0003 0.50 13.7 완치
L-AmB 3 mg/kg × 5 15 −7.89 0.0003 0.50 13.7 완치
밀테포신 28일 (성인) 70 멸균 2.5 × 10⁻⁵ 0.50 13.7 완치
밀테포신 28일 (소아, 선형) 70 멸균 0.0002 0.50 13.7 완치
밀테포신 28일 (소아, 알로메트릭) 105 멸균 8.2 × 10⁻⁵ 0.50 13.7 완치
파로모마이신 21일 (인도) 315 −7.58 0.0003 0.50 13.7 완치
파로모마이신 21일 (동아프리카) 315 −2.21 1.07 × 10⁴ 11.0 3.1 실패
L-AmB 5 + 밀테포신 7일 22.5 −8.09 0.0003 0.50 13.7 완치
L-AmB 5 + 파로모마이신 10일 155 −7.58 0.0003 0.50 13.7 완치
밀테포신 10일 + 파로모마이신 10일 175 −8.70 0.0003 0.50 13.7 완치
SSG + 파로모마이신 17일 595 −8.75 0.0003 0.50 13.7 완치
HIV-VL, L-AmB 10 mg/kg, ART 전 10 −4.23 1.59 × 10⁴ 11.4 2.9 재발
HIV-VL, L-AmB 30 + 밀테포신 28일 + ART 100 −8.04 0.006 0.50 13.7 완치
PKDL, 밀테포신 12주 210 −5.09 피부 0.06 — — 거의 완전 소실
PKDL, L-AmB 5 mg/kg 주 1회 × 4 20 −1.78 피부 17.7 — — 실패

10. 독성 원장 (전형 환자, 요법별 귀속)

요법 최고 SCr 최저 K 최저 Mg 청력 (dB) 최고 QTc 리파아제 ALT
L-AmB 10 mg/kg 단회 1.01 3.03 1.56 — 400 30 25
AmB 데옥시콜레이트 15 mg/kg 1.43 3.08 1.55 — 400 30 25
SSG 20 mg/kg × 30일 0.85 4.10 2.00 — 455 507 149
파로모마이신 21일 0.85 4.10 2.00 14.7 400 30 25
밀테포신 28일 0.85 4.10 2.00 — 400 30 55
SSG + 파로모마이신 17일 0.85 4.10 2.00 11.9 451 504 147
HIV: L-AmB 30 + 밀테포신 1.29 2.89 1.47 — 400 30 55

각 열이 서로 다른 약에 속한다는 점이 핵심이다. 병용요법의 진짜 논거 중 하나는 효능이 아니라 독성 축을 분산시킨다는 것이다.

11. 집단 시뮬레이션 — 모델이 예측한 완치율

가상 환자 60명/군, 12개월 추적. 변동을 준 것은 실제로 결과를 좌우하는 것들이다: 발현 시 부하(비장 천자 등급이 환자 간 자릿수 단위로 다르다), 약물 역가, 청소율, 면역 능력, 영양 상태, 정지기 저장고 크기, 그리고 경구 약의 복약순응도.

요법 완치 % 실패 % 사망 % 참고 (문헌 범위)
SSG 20 mg/kg × 30일 (동아프리카) 98.3 1.7 4.5 ~93–95%
SSG 20 mg/kg × 30일 (비하르, 내성) 0.0 100.0 69.5 ~35–65%; 모델이 과소평가
AmB 데옥시콜레이트 15 mg/kg 100.0 0.0 4.0 ~97%
L-AmB 10 mg/kg 단회 100.0 0.0 3.0 ~95–96%
L-AmB 21 mg/kg 분할 100.0 0.0 3.1 ~95–98%
밀테포신 28일, 성인 91.7 8.3 10.2 ~85–94%
밀테포신 28일, 소아, 선형 mg/kg 81.7 18.3 16.1 ~75–80%
밀테포신 28일, 소아, 알로메트릭 96.7 3.3 6.5 노출 교정 시 성인 수준
파로모마이신 15 mg/kg × 21일 (인도) 86.7 13.3 12.7 ~93%
파로모마이신 15 mg/kg × 21일 (동아프리카) 45.0 55.0 38.8 ~63–85%; 모델이 과소평가
L-AmB 5 + 밀테포신 7일 100.0 0.0 3.0 ~98%
L-AmB 5 + 파로모마이신 10일 100.0 0.0 3.0 ~97%
밀테포신 10일 + 파로모마이신 10일 96.7 3.3 5.9 ~97%
SSG + 파로모마이신 17일 (동아프리카) 98.3 0.0¹ 4.3 ~91%
HIV-VL, L-AmB 10 mg/kg, ART 없음 0.0 100.0¹ 93.2 예후 극히 불량
HIV-VL, L-AmB 30 mg/kg + 밀테포신 28일 + ART 55.0 45.0¹ 7.9 ~55–70% at 12 mo

¹ 재발률. 다른 군에서 0.0인 것은 실패가 재발이 아니라 일차 무반응으로 분류되었다는 뜻이다(3 log 감소에 도달하지 못함).

두 가지가 눈에 띈다.

첫째, 소아 밀테포신에서 투여 지수 하나를 고치면 81.7% → 96.7%다. 15포인트가 생물학이 아니라 산수에서 나온다 — claim 2의 결론이고, 소아 밀테포신 문헌이 주장하는 바와 방향·크기가 모두 맞는다.

둘째, HIV-VL 군의 55% / 45%가 우연히 문헌과 맞는다. 이 군은 보정 대상이 아니었다 — 완치율은 CD4에 따라 사라지는 분리선(claim 3)에서 그냥 떨어져 나온 값이고, 12개월 시점 실제 관측치(~55–70%)와 겹친다. ART 없는 군이 0%라는 것도 같은 구조에서 나온다.

정직하게 적어 둘 세 가지 불일치:

  • 가장 강력한 요법들(L-AmB, d-AmB, L-AmB 기반 병용)에서 모델은 완치율을 과대추정한다 (100% vs 실제 95–98%). 모델에 없는 실패 기전 때문이다: 재감염, 추적 탈락, 오진, 순응도 이외의 투약 중단. 파라미터를 더 비틀어 100%를 95%로 맞출 수는 있었지만, 없는 기전을 EC50에 흡수시키는 것이 아니라 한계로 적는 편을 택했다.
  • 비하르 내성 SSG는 모델이 완치율 0%로 과소평가한다(실제 35–65%). 배출 내성을 단일 파라미터 RES_SB = 9로 전 환자에 균일하게 준 결과이며, 실제 집단에서는 감수성 균주와 내성 균주가 섞여 있다.
  • 동아프리카 파로모마이신도 45%로 과소평가한다(실제 63–85%). 지역 간 감수성 차이를 EC50_P × 1.60 하나로 균일하게 준 같은 종류의 단순화다.

세 불일치는 모두 같은 성격이다: 집단 내 이질성을 단일 파라미터로 대체한 자리에서 모델이 지나치게 결정론적으로 행동한다.

12. 혈청검사로 재발을 진단할 수 없는 이유 — 두 시간상수의 비

완치적 단회 투여 후 각 지표가 절반 회복하는 데 걸리는 시간:

지표 반회복 시간 (일)
기생충 부하 (log) 7.3
혈소판 9.6
비장 크기 10.8
알부민 11.6
헤모글로빈 14.7
다클론 IgG 93.8

180일 시점에 내장 부하는 발현 시점 대비 7.6 log 낮고 비장 0.50 cm · Hb 13.7 g/dL로 임상적으로 완전히 회복된 환자인데, 다클론 IgG는 여전히 3.89 g/dL(발현 시 3.60, 건강인 1.10)이다. 부하는 7.3일, 항체는 93.8일 — 약 13배 차이다.

이 비는 파라미터가 아니라 모델 출력이다(IgG 반감기 하나만 파라미터). 그리고 이것이 rK39 신속검사가 완치 후 수년간 양성으로 남아 재발 진단에 쓸 수 없는 이유의 정량적 내용이다. 재발 판정은 기생충학적 또는 임상적 종말점으로만 가능하다.

13. 국소 민감도 — 무엇이 결과를 지배하는가

L-AmB 10 mg/kg 단회 투여 후 180일 부하에 대한 d log₁₀P / d log p:

파라미터 민감도
KIMM 최대 면역 살상 속도 −2.24 숙주
KCD4 T세포 도움의 반최대 CD4 +1.21 숙주
EC50_A 암포테리신 EC50 +0.25 약물
EMAX_A 암포테리신 최대 살상 −0.13 약물
KOUT_A 조직 소실 +0.10 약물
FREL · CL_LIP · FSP_A · V_LIP ≤ 0.02 약물

완치 용량을 준 뒤의 180일 부하는 약물 파라미터가 아니라 숙주 파라미터가 결정한다. 이것은 모델 전체의 논지를 되돌려 확인해 준다 — 그리고 동시에 약물 파라미터를 정밀하게 맞추는 것이 이 모델에서 왜 최우선이 아닌지도 말해 준다.


문헌에서 온 것과 모델 수준 가설인 것

문헌에서 직접: 약물별 혈장 약동학(청소율·분포용적·흡수·반감기), 알로메트릭 지수 0.75/1.0, 밀테포신 소아 노출 부족, 비하르 안티몬 내성 빈도, 요법별 임상 완치율과 이상반응 빈도, IL-10이 활성 VL의 표지라는 사실, 레이슈마닌 반응이 치료 후 전환된다는 사실, PKDL이 치료 후에 나타난다는 사실.

모델 수준 가설 (관측이 아님): 세포내 대식세포 구획의 EC50 값(자유 세포내 농도는 측정 불가하므로 임상 완치율에 맞춘 보정 파라미터), 리포솜 MPS 분배율, 정지기 개체군의 크기·EC50 배수·전환 속도, TMEM·IL-10·MACT 모듈의 모든 속도 상수, 피부 면역특권 계수 FIMM_SK, 분리선의 절대 위치. 보고된 비·순서·창은 절대값보다 훨씬 견고하다.

알려진 한계 (Known limitations)

  • 집단 시뮬레이션은 가장 강력한 두 요법(L-AmB, 밀테포신)의 완치율을 과대추정한다. 모델에 없는 실패 기전이 있기 때문이다: 재감염, 추적 탈락, 오진, 그리고 비순응 이외의 투약 중단. 순응도는 명시적 파라미터로 넣었지만 나머지는 넣지 않았다.
  • 모래파리 물린 직후 며칠, 즉 호중구·단핵구가 기생충을 피부에서 실어내는 내장화 이전 단계는 모델링하지 않았다. 자연사 분석은 이미 형성된 작은 내장 병소에서 출발한다.
  • 기생충 종(L. donovani vs L. infantum)과 지역별 균주 차이는 EC50 배수로만 들어가 있고, 대사·유전 수준에서 구분하지 않는다.
  • 육아종 형성은 지도에는 있으나 ODE에는 명시적 구획이 없다 — 간의 효율적 통제와 비장의 실패가 PMAX와 성장률 차이로만 표현된다.
  • 소아 시나리오는 체중 10 kg 한 점으로만 평가했고, 신생아·영아의 성숙(maturation) 효과는 넣지 않았다.

실행 방법

# mrgsolve 모델
source("vl_mrgsolve_model.R")
sim <- vl_simulate(dosing = vl_regimens(50)$S05_lamb_single10, days = 360)
vl_outcome(sim, eot_day = 1)

# README의 모든 숫자를 재현
Sys.setenv(VL_RUN_ALL = "1"); source("vl_mrgsolve_model.R")

# 인터랙티브 대시보드 (10탭)
shiny::runApp("vl_shiny_app.R")
# 독립 Python 검증 구현 (R 없이 실행 가능)
python3 vl_reference_model.py          # 전체 분석 + 집단 시뮬레이션
python3 vl_reference_model.py --quick  # 집단 시뮬레이션 생략

# 기계론적 지도 재렌더링
dot -Tsvg vl_qsp_model.dot -o vl_qsp_model.svg
dot -Tpng -Gdpi=150 vl_qsp_model.dot -o vl_qsp_model.png

면책 (Disclaimer)

이 모델은 연구·교육용이며 임상 의사결정에 사용해서는 안 된다. 파라미터 상당수는 문헌 값이 아니라 관측된 완치율을 재현하도록 보정한 값이고, 세포내 농도는 원리상 측정 불가능하다. 실제 진료는 WHO 지침과 각국 국가 지침을 따른다.

This model is for research and educational use only and must not be used for clinical decisions.