Cytomegalovirus infection and disease in transplant recipients · Quantitative Systems Pharmacology model
| 파일 | 내용 |
|---|---|
cmv_qsp_model.dot · .svg · .png |
기계론적 지도 — 171 노드 · 19 클러스터 · 219 엣지 |
cmv_mrgsolve_model.R |
48-ODE mrgsolve 모델 + 임상 결정 규칙 R 드라이버 + 19개 시나리오 |
cmv_python_reference.py |
동일한 48개 ODE의 Python/scipy 독립 재구현 (검증용 원본) |
cmv_reference_output.txt |
위 파일을 실제로 실행한 출력 — 이 README의 모든 수치의 출처 |
cmv_shiny_app.R |
12탭 Shiny 대시보드 |
cmv_references.md |
116편 · 19섹션 · PubMed 실시간 조회 |
mkrefs.py |
참고문헌 생성기 (PMID를 기억으로 쓰지 않기 위한 장치) |
전신 바이러스를 표적세포 제한(target-cell-limited) 과정으로 쓰면, virion 풀에 대한 준정상상태에서 감염세포 풀의 순 지수(net exponent) 는 다음 한 줄이 된다.
r = KPROD·(1−e_pol)·(1−e_pack) − DELI − KE8·E8eff − KENK·NKA
임상에서 실제로 측정된 두 숫자가 KPROD를 완전히 고정한다.
| 측정값 | 유도되는 상수 |
|---|---|
| 미치료 DNAemia 배가시간 ≈ 1.2 일 | r0 = ln2/1.2 = 0.5776 /d |
| 치료 중 감소 반감기 ≈ 2.4 일 | DELI = ln2/2.4 = 0.2888 /d |
KPROD = r0 + DELI = 0.8664 /d |
그러면 이 질환의 모든 논쟁이 두 개의 역치와 하나의 시계로 정리된다.
지수의 부호가 바뀌기 위해 처방이 제거해야 하는 virion 생산 비율.
효력·내성·신기능 용량조절·약물상호작용은 모두 이 하나의 숫자에 대한 같은 질문이다.
(모두 실행으로 계산된 값 — cmv_reference_output.txt §B)
| 처방 / 균주 | e | e−e* | 판정 |
|---|---|---|---|
| valGCV 900 mg od (예방) | 0.890 | +0.223 | 조절 |
| valGCV 900 mg BID (치료) | 0.970 | +0.303 | 조절 |
| valGCV 450 mg q2d (CrCl 30) | 0.770 | +0.104 | 조절 |
| valGCV 450 mg 주2회 (CrCl 20) | 0.657 | −0.010 | 돌파 |
| letermovir 480 mg od | 0.969 | +0.303 | 조절 |
| letermovir 240 mg od (+CsA) | 0.940 | +0.274 | 조절 |
| maribavir 400 mg BID | 0.792 | +0.125 | 조절 |
| foscarnet 90 mg/kg q12h | 0.719 | +0.053 | 조절 |
| valGCV 900 od / UL97 돌연변이 | 0.112 | −0.555 | 돌파 |
| valGCV 900 BID / UL97 돌연변이 | 0.335 | −0.332 | 돌파 |
| letermovir / UL56 C325Y | 0.010 | −0.656 | 돌파 |
약이 하나도 없이 지수가 음수가 되는 CD8 수. 이것이 질병의 실제 종점이며 어떤 약도 이 값을 옮기지 못한다. 약은 E8이 여기까지 올라오는 동안 전선을 유지해 줄 뿐이다.
선제치료(pre-emptive)는 e에 전혀 작용하지 않는다. 지수를 되돌리기 시작하는 높이를 정한다.
| 감시간격 Δt | 채혈 사이 상승배수 | 명목 1000 IU/mL 역치의 실제값 |
|---|---|---|
| 3.5 일 | 7.6배 | 7,551 IU/mL |
| 7 일 | 57.0배 | 57,018 IU/mL |
| 14 일 | 3,251배 | 3,250,997 IU/mL |
실행 결과가 이 산수를 그대로 따라간다 (§G2): q3.5d / q7d / q14d 최고 DNAemia = 3.44 / 3.94 / 4.62 log10, P(질환) = 0.12 / 0.17 / 0.34. 즉 감시 빈도와 약물 효력은 같은 단위로 환산 가능한 양이고, 모델은 그 둘을 서로에 대해 값으로 매긴다.
d(E8)/dt는 항원에 비례하고, 항원은 약이 방금 제거한 감염세포 풀이다.
따라서 역치 1을 넘기는 일이 역치 2에 도달하는 것을 늦춘다.
후기발현 CMV(late-onset CMV)는 별도로 붙인 장치가 아니라 이 결합항이 약을
끊을 때 하는 일 그 자체다. 실행 결과: 200일 발간시클로버 예방이 끝나는 순간
E8eff = 0.094 /µL (E8* = 4.81의 1/51), 그리고 19일 뒤 DNAemia가
다시 1000 IU/mL을 넘는다.
Vv= 캡시드에 포장된 virion DNA. 유일한 감염성 종이고,BETA가 곱하는 대상.Vl= 죽는 감염세포에서 나오는 유리 DNA. 미치료 준정상상태에서Vl:Vv = 2:1, 즉 PCR이 보고하는 값의 약 67%는 virion이 아니다.- 중합효소 억제제(GCV-TP·foscarnet·CDV-PP)는 둘 다 줄인다.
- terminase / kinase 억제제(letermovir·maribavir)는
Vv만 줄이고, 단위길이 유전체가 concatemer에서 절단되지 않으므로 죽는 세포당 DNA를 오히려 늘린다(AMPPK).
감염세포 풀을 고정한 채 계산한 즉각적 측정 DNAemia 변화 (§E):
| 처방 | e_pol | e_pack | 상대 Vmeas | log10 감소 |
|---|---|---|---|---|
| 무약물 | 0 | 0 | 1.000 | 0.00 |
| ganciclovir 900 BID | 0.970 | 0 | 0.030 | 1.52 |
| foscarnet 90 q12h | 0.719 | 0 | 0.281 | 0.55 |
| letermovir 480 od | 0 | 0.969 | 1.000 | 0.00 |
| maribavir 400 BID | 0 | 0.792 | 1.000 | 0.00 |
AMPPK를 0→1 전 구간에서 흔들어도 letermovir의 즉각 감소는 0.17 ~ −0.12 log10을
넘지 않는다. 결론은 유도된 것이고 가정된 것이 아니다: letermovir가 완벽하게 작동해도
혈장 CMV DNA는 거의 떨어지지 않는다. 그래서 letermovir 사용 중 DNAemia는 조기
효능 지표가 될 수 없고, letermovir는 예방약이지 치료약이 아니다.
pUL97이 GCV를 GCV-MP로 인산화한다. maribavir는 pUL97을 억제한다. 따라서 maribavir는 ganciclovir의 효과항이 아니라 활성화항에 들어가고, 두 약은 구조적으로 길항한다. 치료용량에서 실행값:
| e | |
|---|---|
| ganciclovir 900 mg BID 단독 | 0.970 |
| maribavir 400 mg BID 단독 | 0.792 |
| 두 약 병용 | 0.913 |
병용이 ganciclovir 단독보다 e에서 0.057 낮다. 둘 다 e*는 넘으므로 파국은 아니지만, 실패하는 ganciclovir 코스에 maribavir를 얹는 것은 이 산수로 정당화되지 않는다.
한편 UL97 내성은 키나아제 효율의 상실(FK_A = 0.125)로 모델링했고 중합효소 EC50
이동이 아니다. 그래서 그 돌연변이는 maribavir를 건드리지 않는다 (maribavir 내성은
T409M·H411Y·C480F 등 다른 잔기에 있다). UL97 활성화 돌연변이에서:
GCV 단독 e = 0.335 (e* 미달) · MBV 단독 e = 0.792 (e* 통과).
GCV 청소율의 90%가 신성이므로 CrCl 하나가 항바이러스 효과와 골수독성을 동시에 정한다. 그리고 두 가지 반대 방향의 오류가 존재한다 (§D, §G3).
| CrCl | 라벨 용량 | GCV Cavg | e(WT) | ANC 정상상태 | 판정 |
|---|---|---|---|---|---|
| 100 | 900 od | 4.88 µM | 0.880 | 1.99 | OK |
| 60 | 900 od | 7.63 | 0.947 | 1.49 | OK |
| 40 | 450 od | 5.31 | 0.897 | 1.84 | OK |
| 30 | 450 q2d | 3.30 | 0.770 | 2.27 | OK (여유 +0.10) |
| 20 | 450 주2회 | 2.49 | 0.657 | 2.49 | 돌파 |
용량을 줄이지 않았을 때 (고전적인 간시클로버 골수 재앙):
| CrCl | 용량 | GCV Cavg | e(WT) | ANC 정상상태 | 판정 |
|---|---|---|---|---|---|
| 30 | 900 od | 13.20 µM | 0.982 | 0.97 | Grade 3 |
| 20 | 900 od | 17.44 | 0.989 | 0.72 | Grade 3 |
시뮬레이션에서 신기능 조절을 뺀 팔(S11)은 ANC < 1.0 이 53일, ANC 최저 0.26이고, 용량이 2주 주기로 반복해서 반감/재개된다 — 실제 임상에서 보이는 그 패턴이다. 반대로 올바르게 감량한 팔(S10)은 골수는 지키지만 e* 위 여유가 +0.10으로 얇아진다.
같은 "한 번의 돌연변이"가 두 약에서 전혀 다른 모양으로 작동한다.
| 배수 이동 | e 변화 | 효과 잔존 | |
|---|---|---|---|
| letermovir · UL56 C325Y | 3000배 | 0.969 → 0.010 | 1.1% (완전 소실) |
| ganciclovir · UL97 M460V | 8배 | 0.890 → 0.112 | 12.6% (무력화, 그러나 0은 아님) |
그런데 증량으로 만회할 여지가 있는 후자조차: UL97 돌연변이에서 e*를 넘으려면 GCV-TP 264.7 µM-eq, 즉 혈장 Cavg 20.4 µM = 허가 치료용량의 2.0배가 필요하다. 증량은 답이 아니고 약을 바꿔야 한다 — 그것이 이 표의 결론이다.
그리고 결정론적 돌연변이 플럭스는 쓰지 않았다 (아래 "실행으로 드러난 결함" 3번). 대신 선택압 창에 머문 일수를 적분한다: 야생형이 억제되어 있고(e_W > e*) 동시에 돌연변이의 자체 R_eff가 1을 넘는 상태 — 소수변이가 우세종으로 바뀌는 유일한 상태다.
| 팔 | UL97 선택압 창 | UL56 선택압 창 |
|---|---|---|
| 선제치료 q3.5d | 46 일 | 0 |
| 선제치료 q7d | 61 일 | 0 |
| 선제치료 q14d | 83 일 | 0 |
| valGCV 예방 200일 | 200 일 | 0 |
| letermovir 예방 200일 | 0 | 202 일 |
예방은 선제치료보다 환자를 3~4배 오래 선택압 아래에 둔다. 감시간격만으로도 2배가 움직인다.
전체 표는 cmv_reference_output.txt §F. 발췌:
| 팔 | 최고 VL (log10) | 첫 cs-CMVi | P(질환) | E8@200 | ANC 최저 | 선택압 창 | 비용($k) |
|---|---|---|---|---|---|---|---|
| S1 D+/R− 무치료 (자연사) | 4.83 (d38) | — | 0.60 | 4.31 | 3.19 | 0 | 0 |
| S2 선제치료 q7d | 3.94 | d21 | 0.17 | 1.32 | 0.65 | 61 | 49.8 |
| S3 선제치료 q3.5d | 3.44 | d18 | 0.12 | 3.21 | 1.07 | 46 | 21.0 |
| S4 선제치료 q14d | 4.62 | d28 | 0.34 | 2.09 | 0.74 | 83 | 39.7 |
| S5 valGCV 100일, 감시 없음 | 4.73 (d138) | — | 0.42 | 3.72 | 1.24 | 100 | 4.2 |
| S6 valGCV 200일, 감시 없음 | 4.67 (d238) | — | 0.36 | 0.09 | 1.24 | 200 | 8.4 |
| S7 valGCV 200일 + 감시 | 4.22 | d228 | 0.15 | 0.09 | 0.77 | 245 | 29.3 |
| S8 letermovir 200일 + 감시 | 4.06 | d228 | 0.12 | 0.09 | 0.75 | 202 | 65.9 |
| S10 CrCl 30, 정상 감량 | 4.37 | d228 | 0.22 | 0.09 | 1.11 | 214 | 12.6 |
| S11 CrCl 30, 감량 누락 | 4.10 | d228 | 0.17 | 0.09 | 0.26 | 204 | 67.4 |
| S12 D+/R+ 선제치료 q7d | 2.97 | 미도달 | 0.06 | 4.83 | 3.19 | 0 | 8.2 |
| S13 D−/R+ basiliximab | 1.78 | — | 0.00 | 8.22 | 3.19 | 0 | 8.2 |
| S15 valGCV 200일 + mTORi 전환 | 3.99 | d228 | 0.10 | 0.09 | 1.05 | 205 | 15.0 |
주목할 두 가지. (a) S3가 S2를 모든 축에서 지배한다 — PCR을 2배로 늘리면 최고 DNAemia가 0.5 log10 낮고, 선택압 창이 15일 짧고, ANC<1.0인 날이 25일→0일이 되며, 총비용은 오히려 절반이다(치료 일수와 G-CSF가 줄기 때문). (b) letermovir는 발간시클로버와 질환율에서 대등하고(0.12 vs 0.15) 골수는 확실히 지키지만 (ANC 최저 0.75 vs 0.77 — 둘 다 치료용량 구간에서 발생) 비용이 2.2배다.
발간시클로버 예방기간을 0→365일로 훑으면서 예방 종료 후 감시를 하지 않은 팔 (§I):
| 예방 일수 | ISI@중단 | E8@중단 | 재발일 | P(질환) |
|---|---|---|---|---|
| 0 | 2.07 | 0.00 | 15 | 0.600 |
| 60 | 1.91 | 0.05 | 78 | 0.473 |
| 100 | 1.59 | 0.07 | 119 | 0.422 |
| 200 | 1.35 | 0.09 | 219 | 0.359 |
| 300 | 1.19 | 0.12 | 320 | 0.319 |
재발일이 중단일을 정확히 따라간다 (항상 18~20일 뒤). P(질환)이 그래도 내려가는 이유는 오직 하나 — 같은 재발이 덜 면역억제된 숙주를 만나기 때문이다 (ISI 1.91 → 1.19). 중단 시점의 E8은 0.05 → 0.12로 거의 움직이지 않는다. 약이 그것을 만들 항원을 치웠기 때문이다.
정직한 불일치 (honest miss). IMPACT 시험은 CMV 질환을 100일 36.8% vs 200일 16.1%로 보고했다. 이 모델은 42.2% vs 35.9% 를 낸다 — 방향은 맞고 크기는 관측된 효과의 약 1/3이다. 즉 이 모델에는 장기 예방을 작동시키는 무언가가 빠져 있다. 다음 절은 모델이 스스로 검사할 수 있는 가장 유력한 후보다.
E8 증식이 항원 의존적이라면, 완전히 억제하는 예방은 지속적인 것을 아무것도 남기지 않고, 전혀 억제하지 않으면 질환이 생긴다. 200일 예방에서 순응도(= e에 단조 대응)를 훑으면 곡선은 단조가 아니다 (§J):
| 순응도 | e(WT) | e* 대비 | E8@200 | P(질환)@200일 |
|---|---|---|---|---|
| 1.00 | 0.890 | 위 | 0.09 | 0.359 |
| 0.50 | 0.668 | 위 | 0.10 | 0.347 |
| 0.45 | 0.620 | 아래 | 0.17 | 0.242 |
| 0.40 | 0.563 | 아래 | 0.38 | 0.163 ← 최소 |
| 0.35 | 0.497 | 아래 | 0.65 | 0.190 |
| 0.25 | 0.335 | 아래 | 1.96 | 0.432 |
| 0.00 | 0 | — | 4.31 | 0.600 |
최소값이 e* 아래(e = 0.563)에 있다. 기전은 결합항 하나뿐 — 부분적 억제가 부하를 질환 역치 아래로 유지하면서 E8을 훈련시킬 만큼의 항원을 남긴다.
이것을 처방 권고로 읽지 말 것. 세 가지 이유를 그대로 적어 둔다. (1) 선택압 창
컬럼이 최소값에서 2일로 붕괴하지만 그건 정의상의 인공물이고 안심할 근거가 아니다 —
선택은 야생형이 억제되어야 성립하고 e* 아래에서는 억제되지 않으므로, 부분 억제가
실제로 사는 것은 지속적인 야생형 복제, 즉 돌연변이가 생겨나는 기질이다.
(2) 단일 결정론적 환자다. 실제 코호트는 이 곡선 위에 퍼지고 일부는 완전 억제보다
나쁜 상승부에 떨어진다. (3) 최소값의 위치는 KAG(CD8 증식의 항원 반포화 상수)가
정하는데, 이것이 모델에서 가장 측정이 부실한 파라미터다. 민감도:
| KAG | 최소 위치(순응도) | 최소에서 P(질환) | 순응도 1에서 P(질환) |
|---|---|---|---|
| 0.02 | 0.40 | 0.054 | 0.307 |
| 0.05 | 0.40 | 0.163 | 0.359 |
| 0.12 | 0.40 | 0.326 | 0.420 |
| 0.30 | 0.40 | 0.524 | 0.526 |
U자 형태는 전 구간에서 살아남지만 최소값의 깊이는 살아남지 않는다 — 정성적 예측이며 정량적 예측이 아니다.
S16~S19는 "간시클로버 내성 돌파에서 약을 바꾸는 것이 계속하는 것보다 낫다"를 보이려고 만든 팔이다. P(CMV 질환)에서는 그렇지 않았고, 계속 쓰는 팔이 가장 낮았다 (§G4):
| 팔 | 불응 판정일 | 최고 VL | P(질환) | 돌연변이 최고치 | eGFR 최저 | Mg 최저 |
|---|---|---|---|---|---|---|
| S16 → maribavir | d42 | 4.06 | 0.17 | 1785 | 82.9 | 2.00 |
| S17 → foscarnet | d42 | 4.01 | 0.17 | 1785 | 74.6 | 0.69 |
| S18 → GCV+MBV | d42 | 4.06 | 0.15 | 1785 | 82.7 | 2.00 |
| S19 계속 GCV | d42 | 4.11 | 0.13 | 2487 | 83.3 | 2.00 |
이유는 표 안에 보인다. 불응성 CMV의 진료지침 정의가 충족되는 시점(d42)에는 이미 CD8 반응이 올라오고 있고, 이 단일 결정론적 환자에서는 약이 아니라 면역이 사건을 끝낸다. 팔을 실제로 갈라놓는 것은 전환이 겨냥한 바로 그 양이다 — 내성 균주의 최고 virion DNA가 maribavir 1785 vs 계속 GCV 2487 (1.4배) — 그리고 foscarnet 경로의 대가 (eGFR 최저 74.6 vs 82.9, 마그네슘 0.69 vs 2.00 mg/dL). 따라서 이 모델이 방어할 수 있는 주장은 원래 세우려던 것보다 좁다: 전환은 내성 균주 부하와 선택압 창을 줄이며, T세포가 어차피 회복 중인 숙주에서 질환율 이득은 입증되지 않는다.
letermovir는 CYP3A/OATP1B1 억제로 tacrolimus AUC를 2.4배 올린다. 이를 예상해 용량을 절반으로 줄인 팔(S8)과 그대로 둔 팔(S9)의 비교 (§G5):
| 팔 | TAC@d100 | ISI@d100 | P(질환) | P(거부) |
|---|---|---|---|---|
| S8 tacrolimus 감량 | 5.90 | 1.58 | 0.118 | 0.074 |
| S9 감량 안 함 | 14.13 | 2.15 | 0.127 | 0.066 |
효과는 작지만 부호가 분명하고, 임상의가 실제로 하는 거래를 그대로 보여 준다 — 면역억제가 올라가 CMV 위험이 +0.9%p 늘고 거부반응 위험이 −0.8%p 줄어든다.
이 모델의 48개 ODE는 Python/scipy로 독립 재구현되어 실제로 적분되었다. 그 과정에서 드러나 수정된 결함을 지우지 않고 남긴다.
- tacrolimus 상호작용이 불리언이었다.
if (letermovir 존재) 청소율 /= 2.4로 쓰면 letermovir 상태변수의 1e-12 수준 solver 반올림이 스위치를 영구히 걸어 버린다. letermovir를 한 번도 받지 않은 팔에서 tacrolimus가 9 → 32 ng/mL로 올라가 있었다. 농도 의존 Emax 항으로 교체. - 내성 균주 구획의 0은 불안정 평형이었다. 균주의 지수가 양수인 동안 1e-16의 solver 반올림이 0.4~0.5/d로 자라 약 70일이면 거시적 크기가 된다. 모든 팔이 부동소수점 잡음에서 내성을 "발견"하고 있었다. 전신 감염세포 1개(=1e-8)에 소멸 하한을 넣어 수정.
- 결정론적 돌연변이 플럭스는 내성을 필연으로 만든다. MU·NCELL ≈ 3e3이므로 어떤 유의미한 복제도 다수의 돌연변이 계통을 만들고, 확률은 모든 팔에서 1로 포화한다 (valGCV 예방에서 관측되는 약 5%와 정면으로 어긋난다). 선택압 창 체류일수 적분으로 교체 — 팔을 실제로 구분하는 것은 확률이 아니라 기간이기 때문이다.
- Friberg γ = 0.17은 일과성 항암제 노출에 맞춘 값이다. 만성 투여에서는 정상상태가
ANC = CIRC0·(1−Edrug)^(1/γ)가 되어, mycophenolate 단독 환자를 ANC 0.83으로 떨어뜨리고 모든 팔에서 호중구감소 규칙을 발화시켰다. γ·EMAX·E_MPA를 만성 노출 ANC에 재적합 (valGCV 900 od + MMF → 1.99, letermovir + MMF → 3.61). - GFR0이 55로 고정된 채 초기값은 CrCl/1.1이었다. 모든 실행이 86 → 55로 조용히 감소하고 그것을 CMV 신병증으로 보고하고 있었다.
- Sanctuary 구획이 모든 팔에서 무한히 자랐다 — 미치료 팔까지 포함해서. 청소율이 증식률을 넘는 조건이 존재하지 않았다.
- 감시·질환 비용이 청구되지 않았다. 그래서 PCR을 두 배로 주문하는 팔이 더 싼 것처럼 보였다.
- 불응성 전환이 고정 날짜에 발화했다 — 즉 내성 균주가 아무것도 하기 전에. 그래서 네 개의 구제 팔이 수치적으로 완전히 동일했다. 진료지침 기준(치료 14일 이상, 0.5 log10 미만 감소)으로 교체하자 팔이 갈라졌고, 그 결과가 위 (iii)의 반박이다.
| 양 | 정한 방식 |
|---|---|
KPROD, DELI |
배가시간 1.2일 · 치료 중 감소 반감기 2.4일 (측정값 2개) |
LAMT = 2.00 |
한 개의 수를 미치료 원발 D+/R− 감염의 관측 최고 DNAemia(10^4.83)에 적합 |
KDIS = 0.0300 |
한 개의 수를 미치료 D+/R−의 1년 P(CMV 질환) = 0.60에 적합 |
GAM·EMAXMYE·EMPA |
만성 노출 ANC에 재적합 (위 결함 4번) |
| EC50 값 전부 | 발표된 in-vitro EC50, 단백결합이 높은 약은 자유약물 농도로 보정 |
| PK 파라미터 전부 | 발표된 집단 PK (F·V·CL·t½·신성 분율) |
AMPPK = 0.50 |
가정값 — 사람에서 직접 측정된 바 없음. 0~1 전 구간 sweep 제시 |
KAG = 0.05 |
모델에서 가장 취약한 파라미터. 훈련용량 U-곡선 최소값 깊이를 지배 |
| 비용 | 예시용 정가 수준, 자릿수만 의미 있음 |
- UL54 중합효소 돌연변이는 지도와 교차내성 표에만 있고 별도 ODE 균주가 아니다.
- 개인간 변이가 없다. 위의 모든 확률은 단일 결정론적 가상환자의 위험함수 값이며 시험의 발생률로 인용될 수 없다.
- 거부반응과 eGFR은 축약형 위험함수 대리변수이고 기전적 동종면역 모델이 아니다. 호중구감소 때문에 용량을 줄이는 것이 실제로 거부반응의 동인이기 때문에 넣었을 뿐, 보정되었기 때문에 넣은 것이 아니다.
- 입양 T세포 치료는 입력항(
ACT)만 있고 투여 스케줄이 없다. 백신은 지도에만 있다. - 전혈 vs 혈장 환산과 검사실 간 1~2 log10 편차는 모델에 없다.
- HSCT 특이 생착 동역학과 GVHD는 없다. HSCT에서 위험이 역전되는 것(수여자 혈청양성이 고위험군이 되는 것)은 초기 기억 T세포 풀을 통해서만 표현된다.
# 기계론적 지도
dot -Tsvg cmv_qsp_model.dot -o cmv_qsp_model.svg
dot -Tpng -Gdpi=150 cmv_qsp_model.dot -o cmv_qsp_model.png
# 검증 실행 (이 README의 모든 수치의 출처)
python3 cmv_python_reference.py > cmv_reference_output.txt
# 참고문헌 재조회
python3 mkrefs.py --refresh
# mrgsolve / Shiny (이 환경에는 R 툴체인이 없어 실행되지 않았음 — 아래 주의)
Rscript -e 'library(mrgsolve); mod <- mread("cmv_mrgsolve_model.R")'
Rscript -e 'shiny::runApp("cmv_shiny_app.R")'주의를 명시한다. 48개 ODE는 적분되고 검증되었지만, 그것을 한 것은
cmv_python_reference.py이다. 이 환경에는 R/mrgsolve 툴체인이 없었으므로cmv_mrgsolve_model.R과cmv_shiny_app.R은 Python 참조 구현을 방정식 단위로 그대로 옮긴 것이지만 그 자체로 실행되지는 않았다.
이 모델은 교육 및 연구 목적의 기계론적 탐색 도구다. 임상 진료, 처방, 진단에 사용해서는 안 된다. 특히 위 (ii)의 훈련용량 U-곡선은 처방 권고가 아니며, 부분적으로 억제하는 항바이러스 요법은 실제 환자에서 내성과 질환의 위험을 높인다. 모든 확률값은 단일 가상환자의 위험함수이며 임상시험 발생률이 아니다.
