Skip to content

Latest commit

 

History

History

chagas-disease

README.md

Chagas disease / chronic Chagas cardiomyopathy — QSP model

샤가스병 / 만성 샤가스 심근병증 (Chagas disease / Chronic Chagas Cardiomyopathy, CCC)

Mechanistic map chg_qsp_model.dot · SVG · PNG — 231 nodes, 397 edges, 30 clusters
ODE model chg_mrgsolve_model.R — 68 ODEs, 28 scenarios, validation harness
Dashboard chg_shiny_app.R — 14 tabs
References chg_references.md — 114 PubMed-verified citations

1. 이 모델이 답하려는 질문 (the question this model exists to answer)

샤가스병에서 수행된 네 개의 무작위 임상시험은 서로 모순되는 것처럼 보이는 네 개의 결과를 냈습니다.

시험 결과
STOP-CHAGAS 포사코나졸이 벤즈니다졸보다 혈중 PCR을 더 잘 음전시켰다(30일 93.3% vs 89.7%). 그런데 180일 지속 음전은 13.3% vs 86.7%, 360일은 16% vs 96%였다.
CHAGASAZOL 같은 역전이 독립적으로 재현되었다.
BENDITA 벤즈니다졸 2주가 8주와 사실상 같았다(83% vs 89%). 150 mg가 300 mg와 같았고, 주 1회 투여가 매일 투여와 같았다.
BENEFIT 확립된 심근병증 환자 2,854명에서 PCR 음전율을 두 배로 올렸으나(66.2% vs 33.5%) 임상 결과는 전혀 바뀌지 않았다(HR 0.93, 95% CI 0.81–1.07).

이것들은 모순이 아닙니다. 네 결과는 각각 서로 다른 시간 규모(time-scale)에 대한 측정이며, 이 모델은 그 세 시간 규모를 물리적으로 분리된 세 개의 대상으로 만들어서 네 결과 전부가 예외가 아니라 출력이 되도록 구성했습니다.

시간 규모 1  살해(killing)          시간 단위: 시간~일     → 치료 중 혈중 qPCR을 결정
시간 규모 2  휴면 저장소(reservoir)  시간 단위: 주~개월     → 재발과 치유를 결정
시간 규모 3  심근 재형성(remodelling) 시간 단위: 년~수십 년  → 임상 사건을 결정

각 시험은 자신의 종말점에 대해 잘못된 시간 규모를 측정했습니다.


2. 모델의 다섯 개 구조적 축 (five structural axes)

AXIS 1 — 정균(static)과 살균(cidal)은 서로 다른 두 성질이며, qPCR은 치유를 만들지 않는 쪽을 측정한다

혈중 트리파노소마는 저장소가 아니라 flux — 세포내 아마스티고트 증식의 산출물입니다. 증식을 멈추는 것은 무엇이든 혈액을 비웁니다.

  • 아졸(CYP51 / 에르고스테롤): 에르고스테롤은 분열하는 세포가 막을 만들 때 필요합니다. 차단하면 성장이 정지하지만 죽지는 않습니다. → EMAXST_A = 0.99, EMAXCR_A = 0.025/day
  • 니트로이미다졸(TcNTR-1): 글리옥살·니트로소 반응성 대사체가 분열하지 않는 세포에서도 DNA 부가체를 만듭니다. → EMAXST_N = 0.90, EMAXCR_N = 2.0/day

창발적 결과: 포사코나졸은 시험이 치료 중에 측정한 종말점에서 이기고, 그 뒤에 중요한 종말점에서 집니다. 코딩된 것이 아니라 두 파라미터의 비율에서 나옵니다.

AXIS 2 — 면역 압력은 항원 의존적이므로, 정균제는 기생충을 억제하는 동시에 숙주를 무장해제시킨다

double KIMM = KIMM0 * TH1 * (1.0 - STAT);

감염된 세포를 죽이려면 그 세포가 아마스티고트 펩타이드를 제시해야 하고, 그러려면 아마스티고트가 단백질을 합성·순환시켜야 합니다. 즉 증식해야 합니다. 증식을 멈추는 약은 기생충을 면역계에 넘기지 않고 숨깁니다. (1 - STAT) 인자가 없으면 이 모델에서 증식 차단만으로 몇 주 안에 환자가 멸균되고, 포사코나졸이 샤가스병을 치료해 버립니다. 두 번째, 더 느린 팔은 TH1이 항원 구동이고 항원은 증식이 멈추면 붕괴한다는 것입니다.

AXIS 3 — 치유는 노출의 적분이 아니라 문턱 통과다

약물 내성이 아니라 약물 내인성(tolerant) 인 소수의 비증식 휴면 아마스티고트 집단 (KDORM/KWAKE, 정상 상태에서 부담의 약 0.3%)이 존재합니다. 멸균 치유는 확률적 소멸 사건으로 P(cure) = exp(-P_EST × N_min) 로 모델링됩니다. 생존 개체 수가 지수적으로 떨어지고 그 지수가 첫 2주 안에 소멸 척도 아래로 내려가므로 치유 확률은 포화합니다.

창발적 결과: 2주 ≈ 4주 ≈ 8주. 추가되는 주(week)는 분자에 아무것도 더하지 않고 두 개의 독성 위험에는 모든 것을 더합니다 — BENDITA 2주군의 치료 중단율이 0%, 8주군은 그렇지 않았던 이유입니다.

AXIS 4 — 손상률은 기생충 항과 자가촉매 항의 합이며, 그 비율은 기생충 양의 함수가 아니라 시간의 함수다

dCMYO/dt = -(INJ_BASE + INJ_PAR + INJ_AUT + INJ_ISC + INJ_STR) × CMYO

INJ_PAR 만이 기생충을 포함합니다. 나머지 세 개는 각자의 고리를 스스로 닫습니다.

항 고리
INJ_AUT 손상 → 심근 미오신 방출 → 자가항체 → 손상
INJ_ISC 엔도텔린 → 미세혈관 수축 → 허혈 → 내피 손상 → 엔도텔린
INJ_STR 심근세포 소실 → 벽 얇아짐 → 벽 스트레스 → 심근세포 소실

두 자가촉매 채널은 제곱으로 들어갑니다. 이것은 곡선 맞춤이 아닙니다: 최종 자가항체 역가의 5%와 최종 미세혈관 이상의 5%를 가진 심장은 5%만큼 자기파괴하고 있지 않습니다. 두 채널 모두 먹고 자랄 손상 조직의 임계 질량이 필요합니다.

모델은 매 시점에 내부 반사실(counterfactual) 로 PAF(t) = 1 - INJ(기생충=0)/INJ 를 계산합니다.

창발적 결과, 그리고 이 모델의 요점: PAF는 0.86에서 시작해 25년 뒤 0.18까지 떨어집니다. 모델 어디에도 연령 항이 없습니다. BENEFIT의 null은 그러면 예측이 됩니다 — 시험은 자신이 움직이려던 양이 이미 떠난 시점에 환자를 등록했습니다.

AXIS 5 — 환자는 서로 다른 두 가지로 죽고, 그 둘은 경쟁한다

부정맥사는 섬유화의 양이 아니라 그 공간적 이질성(SCARH)과 교감신경 탈신경 (SYMPD)이 구동합니다. 펌프실패사는 EF가 구동합니다. 모델은 위험도를 더하지 않고 진짜 누적발생함수 dCIF_i/dt = h_i × S 를 적분하므로, 한 사망 양식을 억제하면 다른 쪽이 필연적으로 드러납니다.


3. 검증 (validation)

Rscript chg_mrgsolve_model.R 를 실행하면 아래 표가 출력됩니다. 21개 비교 가능한 앵커에서 |log₁₀ 비율| 중앙값 = 0.028 (중앙 비율 약 1.06).

anchor quantity observed predicted ratio
A6 BENDITA 위약, 지속 음전 0.03 0.030 1.00
A6 BENDITA 벤즈니다졸 300 mg × 8주 0.89 0.900 1.01
A6 BENDITA 벤즈니다졸 300 mg × 4주 0.89 0.897 1.01
A6 BENDITA 벤즈니다졸 300 mg × 2주 0.83 0.835 1.01
A6 BENDITA 벤즈니다졸 150 mg × 4주 0.83 0.893 1.08
A6 BENDITA 벤즈니다졸 300 mg 주1회 × 8주 0.83 0.899 1.08
A8 STOP-CHAGAS 벤즈니다졸, 30일 PCR 음성 0.897 0.900 1.00
A8 STOP-CHAGAS 포사코나졸, 30일 PCR 음성 0.933 0.930 1.00
A9 STOP-CHAGAS 벤즈니다졸, 180일 지속 0.867 0.900 1.04
A9 STOP-CHAGAS 포사코나졸, 180일 지속 0.133 0.100 0.75
A10 STOP-CHAGAS 포사코나졸, 360일 PCR 양성 0.84 1.00 1.19
A4 BENEFIT 복합 종말점, 위약군, 5.4년 0.291 0.299 1.03
A4 BENEFIT 복합 종말점, 벤즈니다졸군 0.275 0.293 1.07
A4 BENEFIT 위험비 0.93 0.977 1.05
A1 BENEFIT PCR 음전, 위약군 0.335 0.335 1.00
A5 BENEFIT 기저 PCR 양성률 0.605 0.665 1.10
A13 확립된 CCC의 LGE 질량 (g) 15.2 11.5 0.76
A14 연간 전체 사망률, 중증 CCC 0.079 0.089 1.12
A14 연간 급사 사망률 0.026 0.020 0.78
A14 연간 펌프실패 사망률 0.035 0.033 0.93
A14 연간 뇌졸중 사망률 0.004 0.0023 0.57

가장 중요한 검증 사실: 가장 큰 무게를 지닌 두 개의 보정 상수 — 니트로 계열의 휴면형 살해 속도(EMAXCD_N)와 개체당 재정착 확률(P_EST) — 는 BENDITA의 기간 계열에만 맞춰졌고, 그 뒤 손대지 않은 상태로 STOP-CHAGAS를 예측했습니다. STOP-CHAGAS는 다른 시험, 다른 약물 계열, 다른 종말점입니다.

보고하는 실패 (failures, reported not repaired)

  1. BENDITA 150 mg 및 주1회 군을 8% 과대예측 (0.89 vs 관찰 0.83). 모델의 치유는 순전히 노출로 결정되고, 실제 저용량·간헐 투여군의 낮은 순응도는 모델에 없습니다.
  2. STOP-CHAGAS 포사코나졸 180일을 0.100으로 예측(관찰 0.133), 360일 PCR 양성률은 1.00으로 예측(관찰 0.84). 두 값은 같은 방향의 같은 결함입니다 — 모델의 아졸은 관찰된 것보다 더 완전하게 실패합니다. 관찰된 잔여 성공은 재감염·오분류 대역에 있으며, 위약군 자체가 10%였음을 감안하면 포사코나졸은 위약과 구별되지 않습니다.
  3. LGE 질량 24% 과소예측 (11.5 g vs 15.2 g). 이 모델의 콜라겐은 균질한 분율 하나이고, 실제 LGE는 대체 섬유화(replacement fibrosis)의 국소 덩어리를 봅니다.
  4. 뇌졸중 사망률 43% 과소예측. 심방세동이 이 모델에서는 창발하지 않고 파라미터 AFIB로 켜야 하며, 기본 환자는 켜져 있지 않습니다. 이것은 진짜 구조적 공백입니다.
  5. BENEFIT HR을 0.977로 예측(관찰 점추정 0.93). 모델 예측은 관찰 95% CI (0.81–1.07) 안에 있으나 관찰된 점추정보다 1에 더 가깝습니다.

개발 중 발견해 고친 결함 (defects found during integration)

  • 적분기 발산: 초기 빌드는 시뮬레이션 20년째에 NaN을 냈습니다. 원인은 벽 스트레스 되먹임에 상한이 없었던 것 — 확장 → 벽 얇아짐 → 스트레스 상승 → 더 빠른 확장이 천장 없는 양성 피드백이었습니다. 스트레스 구동을 포화시키고 EDV를 450 mL로 제한해 해결했습니다.
  • 움직이는 기저선: 면역 초기값을 어림짐작으로 두었을 때 기생충 구획이 서서히 면역 통제를 벗어나 모든 치료 효과가 움직이는 기저선에 대해 측정되었습니다. 이제 모든 면역 초기값은 기저 항원 수준에서의 해석적 정상 상태이며 KTH는 TH1_ss = 1이 되도록 설정됩니다.
  • 정균제가 치료제가 됨: (1 - STAT) 인자를 넣기 전에는 증식을 차단하기만 해도 상시 면역 압력이 몇 주 안에 환자를 멸균시켜, 모델이 포사코나졸을 치료제라고 주장했습니다.
  • 결정론적 모델이 치유를 부정함: 생존 개체 0.26마리가 7주 만에 300,000마리로 회복하므로, 결정론적 ODE에서는 모든 환자가 재발합니다. STERILE 스위치가 소멸 추첨에서 마지막 개체가 죽은 분기를 따르게 하고, p_cure()가 그 분기의 가중치를 줍니다.
  • 거친 표본화가 치유 확률을 망침: p_cure()는 궤적의 최저점을 읽습니다. delta = 91.3으로 실행하면 최저점을 놓쳐 치유 확률이 무작위로 틀립니다. 치유를 평가할 때는 반드시 delta = 1을 쓰십시오 — 검증 하네스는 그렇게 합니다.
  • PAF 조기 붕괴: 자가촉매 채널을 선형으로 넣었을 때 PAF가 감염 2년 안에 0.33까지 떨어져, 소아 치료 문헌이 명확히 말하는 유일한 사실과 모순되었습니다. 제곱 의존성으로 바꾸어 PAF가 0.86 → 0.68(2년) → 0.18(25년)이 되었습니다.

4. 이 모델이 만들어내는 가장 유용한 숫자

Rscript chg_mrgsolve_model.R 의 마지막 블록이 출력합니다. f = 멸균되는 환자 분율.

치료 시점 PAF f 달성 가능한 최대 HR 필요 환자 수 (사건률 29%)
감염 2년 (32세, 무증상기) 0.680 1.00 0.320 83
감염 2년 (32세, 무증상기) 0.680 0.20 0.864 5,064
감염 25년 (55세, 확립 CCC) 0.182 1.00 0.818 2,687
감염 25년 (55세, 확립 CCC) 0.182 0.20 0.964 78,852

BENEFIT은 2,854명을 무작위 배정했고 HR 0.93 (0.81–1.07)을 보고했습니다. 모델의 독법: 그 병기에서, 그 멸균 분율로, 이 시험은 자신의 가설이 예측하는 효과를 검출하기에 약 30배 작았습니다 — 그리고 같은 약, 같은 질환으로 20년 더 일찍 등록했다면 충분한 검정력을 가졌을 것입니다.

치료 시점의 효과 (동일 약물·동일 용량·동일 감수성, 시점만 다름)

시나리오 치료 시점 80세 EF (%) 50년 누적 사망률
S19 감염 2년 48.4 0.365
S20 감염 10년 41.7 0.535
S21 감염 18년 37.0 0.696
S22 감염 25년 (BENEFIT) 33.9 0.804
S23 치료 없음 25.4 0.947

경쟁 위험의 실증 (55세부터 20년, SUSC = 1)

급사 CIF 펌프실패 CIF 전체 사망
치료 없음 0.276 0.674 0.999
아미오다론 0.213 0.735 0.999
ICD 0.091 0.847 0.999

ICD는 급사를 67% 줄이지만 그 사망은 사라지지 않고 나중에 펌프실패로 다시 나타납니다. 위험도를 더하는 모델은 이 표를 만들 수 없습니다.


5. 구획 목록 (68 ODEs)

그룹 구획
PK (16) GUT_B CEN_B PER_B (벤즈니다졸) · GUT_A CEN_A PER_A (아졸: 포사코나졸/라부코나졸) · GUT_N CEN_N (니푸르티목스) · GUT_F CEN_F (펙시니다졸) · GUT_M CEN_M PER_M DEA (아미오다론 + 데스에틸아미오다론) · GUT_C CEN_C (카르베딜롤)
기생충 (5) PBLD PRH PRX PDH PDX
항원·항체 (2) ANTIG ABIG
면역 (7) MPHI TH1 TREG TNFA IL10 TGFB AAB
심근 (10) CMYO MFB COL SCARH APEX MVD ET1 EDV ESV HYPM
전도·자율 (4) SYMPD PSYMD COND SANF
신경호르몬 (4) ANGII ALDO NE BNP
소화기 (3) ENSN ESOD COLD
임상 사건 (8) HTOT CIFSCD CIFHF CIFSTK CIFCMP CIFPPM CIFNHF CIFVT
안전성 (5) BZNCUM TAUD HRASH HNEU AMITIS
반사실 (2) DMGCUM DMGNOP

6. 시나리오 (28)

계열 시나리오
자연 경과 S01 저감수성(진행 없음) · S02 중등도(BENEFIT 표현형) · S03 고감수성(중증 CCC) · S04 소화기형
BENDITA S05 위약 · S06 300 mg×8주 · S07 300 mg×4주 · S08 300 mg×2주 · S09 150 mg×4주 · S10 300 mg 주1회×8주
STOP-CHAGAS S11 벤즈니다졸 · S12 포사코나졸 · S13 병용 · S14 구조적 예측: 포사코나졸 12개월 · S15 포스라부코나졸
기타 약물 S16 니푸르티목스 · S17 펙시니다졸 단기 · S18 가상 멸균제(휴면형 살해 10배)
치료 시점 S19 감염 2년 · S20 10년 · S21 18년 · S22 25년(BENEFIT) · S23 위약 대조
심장 치료 S24 심부전 치료 단독 · S25 아미오다론 · S26 ICD · S27 항응고
균주 S28 TcI 균주(동일 벤즈니다졸)

S14가 이 모델에서 가장 반증 가능한 예측입니다: 포사코나졸을 12개월 투여해도 치유 확률은 0에 머무릅니다. 저장소에 닿을 수 없는 약은 어떤 기간으로도 치유하지 못합니다.


7. 알려진 한계 (known limitations)

  1. 환자당 결정론적. 치유는 확률로 보고되고, 집단 발생률은 감수성 공변량 SUSC에 대한 명시적 가상 집단에서 나옵니다 — 단일 실행 안의 ETA가 아닙니다.
  2. 전파 동역학 없음. 접종량은 초기 조건이며 감염력(force of infection)이 아닙니다. 재감염은 모델링되지 않았고, 이는 유행 지역 시험의 잔여 PCR 양성을 설명하지 못하는 이유 중 하나입니다.
  3. 약물 상호작용 없음. 포사코나졸의 CYP3A4 억제와 아미오다론의 병용은 실제로 중요하지만 모델에 없습니다.
  4. 심방세동이 창발하지 않음. AFIB 파라미터로 켜야 합니다. 뇌졸중 사망률 과소예측의 직접적 원인입니다.
  5. 소화기형이 거칩니다(3개 상태). 장 신경 소실 기전을 심장형과 공유하기 때문에 포함했을 뿐, 거대결장 예측을 정량적으로 신뢰해서는 안 됩니다.
  6. 재활성화 없음. 면역억제(이식·HIV) 하의 재활성화는 지도에는 있으나 ODE에는 없습니다.
  7. p_cure() 는 궤적의 최저점을 읽으므로 delta = 1로 실행해야 합니다.

8. 실행 방법

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

# 모델 컴파일 + 검증 표 + 검정력 계산
Rscript chg_mrgsolve_model.R

# 대시보드 (shiny, ggplot2, dplyr, tidyr 필요)
Rscript -e 'shiny::runApp("chg_shiny_app.R")'

검증에 사용된 환경: R 4.3.3, mrgsolve 2.0.1, Graphviz 2.43.0.


9. 면책 (disclaimer)

교육 및 연구 목적의 QSP 모델입니다. 공개 문헌과 임상시험 데이터로 구성되었으나 독립적으로 검증·인증되지 않았으며, 실제 임상 의사결정·처방·규제 제출에 사용해서는 안 됩니다. 파라미터는 설명을 위한 근사치이며 실제 환자 데이터에 대한 적합·검증이 별도로 필요합니다.