Skip to content

Latest commit

 

History

History
286 lines (223 loc) · 17.7 KB

README.md

File metadata and controls

286 lines (223 loc) · 17.7 KB

인플루엔자 A (Influenza A) — QSP 모델

약이 없앨 수 있는 것은 아직 일어나지 않은 바이러스뿐이다. "48시간 안에 항바이러스제를 시작하라"는 보통 시계에 관한 규칙으로 가르쳐진다. 이 모델은 그것을 소진되고 있는 어떤 양(量)에 관한 규칙으로 놓는다.

시각 t_rx에 시작한 약이 줄일 수 있는 바이러스 AUC는 정확히 다음 값으로 위에서 막혀 있다.

        R(t_rx) = ∫_{t_rx}^{∞} ( log10 V(t) − LOD )⁺ dt      [잔여 AUC]

R은 치료하지 않은 경과만으로 정해지는 양이다. 약도, 효력도, 기전도 들어 있지 않다. 어떤 분자도 이 선을 넘을 수 없다. 이 저장소의 나머지는 전부 (a) R이 얼마나 빨리 줄어드는지와 (b) 각 연산자가 그중 얼마를 가져가는지에 대한 계산이다.

보정된 성인에서 (A1):

투여 시점 남은 표적세포 R(t) 총 AUC 대비
증상 발현 시 99.9 % 18.61 97.9 %
+12 h 85.7 % 16.99 89.4 %
+24 h (CAPSTONE-1 중앙 등록 시점) 0.1 % 14.27 75.1 %
+48 h (허가 창의 끝) 3.5 % 8.65 45.5 %
+96 h 13.2 % 1.96 10.3 %

그리고 중앙 등록 시점에서 보정된 발록사비르는 이미 남은 것의 **65.6 %**를 가져간다. 따라서 두 방향의 여유(headroom) 는 다음과 같다.

    효력 여유   (Emax → 1)         +0.09 log10·d
    타이밍 여유 (증상 발현 시 투여)  +4.34 log10·d      ← 48배

남아 있는 이익의 거의 전부가, 더 좋은 분자로는 살 수 없는 축 위에 있다. 이것이 "일찍 치료하라"의 정량적 내용이다. 늦은 치료가 약해서가 아니라, 늦은 치료는 이미 대부분 써버린 양에 대해 작용하라는 요구를 받기 때문이다.


연산자 분류 (Operator classification)

모든 치료는 복제 루프의 어느 항(term) 을 건드리는가로 분류된다. 이 분류가 중요한 이유는 각 계열이 시간 축에서 모양이 다른 흔적을 남기기 때문이며, 서로 대체되지 않는다 (A5).

연산자 계열 건드리는 항 예
ENTRY β 점막 IgA, 중화 단클론항체, (약하게) NAI
TRANSCRIPTION E → I 발록사비르 (PA 엔도뉴클레아제, cap-snatching)
PRODUCTION / RELEASE p 오셀타미비르·자나미비르·페라미비르, 발록사비르, 파비피라비르
MUTAGENESIS 감염성 자손 비율 파비피라비르 (치사적 돌연변이 유발)
VIRION CLEARANCE c 단클론항체, 회복기 혈장
TARGET PROTECTION T → R I형·III형 인터페론, ISG 항바이러스 상태
INFECTED-CELL DEATH δ CD8 CTL, NK — 모델에서 가장 강한 연산자이며, 허가된 항인플루엔자제 중 이 방식으로 작용하는 것은 없다
IMMUNOPATHOLOGY DAMPING 위 항들을 억제 코르티코스테로이드 (여기서는 해로운 방향)

산출물 (Deliverables)

파일 내용
flu_qsp_model.dot · SVG · PNG 기계론적 지도 — 14 클러스터 / 145 노드 / 217 엣지. 치료 노드는 위 연산자 계열별로 색이 다르다
flu_mrgsolve_model.R 50-ODE mrgsolve 모델 (바이러스·상피 18 · 면역 9 · 임상 3 · 약물 PK 17 · 회계 3), 14개 시나리오, 14개 분석 함수
flu_shiny_app.R 10-탭 인터랙티브 대시보드 (2번 탭이 이 모델의 요점이다)
flu_references.md PubMed에서 조회해 확인한 97편의 문헌, 절별로 "모델의 어느 부분을 지지하는가"를 명시
flu_reference_check.py 동일 방정식계의 독립 numpy/scipy 이식본. 이 README의 모든 수치는 여기서 계산되어 나온 것이며, R 없이 재현할 수 있다
flu_reference_output.txt 위 스크립트의 전체 출력 (A0–A13) 그대로

이 저장소 빌드 환경에는 R 툴체인이 없다. 적분해 본 적 없는 ODE 모델을 게시하는 대신 같은 계를 scipy LSODA로 한 번 더 옮겨 적분했고, 아래 모든 숫자는 python3 flu_reference_check.py의 출력이다. 두 이식본이 어긋나면 둘 중 하나가 틀린 것이다.

python3 flu_reference_check.py            # 전체 (A0–A13)
python3 flu_reference_check.py --only A1  # 핵심 결과만
python3 flu_reference_check.py --list

0. 보정 확인 (A0)

치료도 약도 없는 자연 경과:

항목 모델 목표
상기도 정점 역가 6.62 log₁₀ TCID50/mL 6.0–7.0
정점 시각 51.5 h p.i. 48–72 h
배출 기간 (>LOD) 6.3 d 4.0–5.5 d ← 길다, 그대로 보고
증상 발현 24.2 h p.i. 24–48 h
정점 증상 점수 12.4 / 21 10–15
정점 체온 38.99 °C 38.5–39.5
발열 기간 67 h 48–96 h
정점 IL-6 60 pg/mL 20–100
감수성 상피 최저치 0.1 % of T₀ <20 % (표적세포 제한)
하기도 정점 역가 3.87 log₁₀ 2–4 (합병증 없음)
CD8 확장 최고치 99 × 나이브 20–100 ×

가장 중요한 줄은 감수성 상피 최저치다. 감염이 표적세포 제한적이라는 것이 A1의 경계선을 물게 만드는 조건이다.


1. 시험 원장 (A3) — 모델 대 발표된 수치

CAPSTONE-1 (Hayden 2018, NEJM 379:913, PMID 30184455):

평가변수 위약 (발표 / 모델) 오셀타미비르 (발표 / 모델) 발록사비르 (발표 / 모델)
증상 완화까지 (TTAS) 80.2 / 78.7 h 53.8 / 63.5 h 53.7 / 44.0 h
바이러스 배출 중단 96.0 / 118.0 h 72.0 / 85.2 h 24.0 / 47.0 h
day-2 역가 변화 −1.3 / −1.32 log₁₀ −2.8 / −2.59 log₁₀ −4.8 / −4.76 log₁₀

바이러스학적 열은 잘 맞고, 증상 열은 이 모델의 가장 약한 부분이다. 왜 그런지는 A8이 답한다 — 그리고 그 답이 이 모델에서 가장 검증 가능한 주장이다.

전체 14개 시나리오(페라미비르·파비피라비르·항체·병용·시점 변형·면역저하 숙주· 내성 프로파일·백신 접종 숙주)는 flu_reference_output.txt에 있다.


2. 내성은 경쟁적 해방이다 (A6)

내성 아집단은 주입되지 않는다. 첫 복제 주기부터 돌연변이 항(μ = 2.5×10⁻⁵)이 야생형에 작용해 생겨나고, 약이 경쟁자를 제거하고 야생형이 가져갔을 표적세포를 넘겨줄 때 자란다.

투여 시점 × 효력 격자에서 나온 내성주 정점 역가 (log₁₀):

투여 (증상 발현 후) 남은 T Emax 0 0.9 0.99 0.999 0.9999 0.999999
0 h 99.95 % 2.58 6.19 6.19 6.19 6.19 6.19
12 h 85.73 % 2.58 2.15 2.75 2.88 2.90 2.90
24 h 0.10 % 2.58 2.53 2.53 2.53 2.53 2.53
48 h 3.54 % 1.21 1.21 1.21 1.21 1.21 1.21
72 h 7.10 % −0.22 −0.22 −0.22 −0.22 −0.22 −0.22

넣지 않았는데 나온 것 두 가지:

  1. 효력 축을 따라 내성은 단순히 줄지 않는다. Emax = 0에서 내성주는 더 적합한 야생형에게 진다. 약이 좋아질수록 내성주는 지지 않게 된다 — 경쟁자가 제거되고 표적세포가 넘어오기 때문이다. 내성 선택은 약이 작동한 결과이지 실패한 결과가 아니다.
  2. 시간 축에는 놓치기 쉬운 전제 조건이 있다: 해방하려면 해방할 밭이 있어야 한다. 늦게 투여하면 내성이 거의 선택되지 않는데, 약이 약해서가 아니라 야생형이 이미 상피를 다 먹어치워 넘겨줄 것이 없기 때문이다. 내성 출현과 임상 이익은 같은 전제 조건을 공유하며, "더 일찍 치료하라"는 같은 정책이 둘 다를 늘린다.

3. 증상 평가변수가 모델에 요구하는 것 (A8)

CAPSTONE-1의 바이러스학적 평가변수는 바이러스 동역학만으로 재현된다. 증상 평가변수는 그렇지 않고, 이유는 수치가 아니라 구조에 있다.

증상 점수가 순전히 사이토카인 상태로 구동되면(WVIR = 0) 그 크기와 시점은 인터페론 정점에서 이미 정해지고, 그 정점은 중앙 등록 시점에 투여된 약이 작용하기 전에 지나간다. 그 구조에서는 어떤 항바이러스제도, 어떤 효력으로도 병을 단축하지 못한다.

WVIR은 증상 구동 중 그 순간의 역가를 따라가는 비율이다:

WVIR 발현 (h) 위약 TTAS 오셀타미비르 이익 발록사비르 이익
0.00 42.8 55.5 h 0.0 h 0.8 h
0.20 33.2 66.2 h 4.0 h 8.8 h
0.40 27.0 74.2 h 9.8 h 21.0 h
0.60 (보정값) 24.2 78.7 h 15.2 h 34.7 h
0.80 23.0 82.5 h 22.8 h 46.5 h
1.00 22.0 86.2 h 32.7 h 54.2 h

CAPSTONE-1은 두 약 모두 26.5시간의 이익을 보고했다. 발표된 증상 평가변수는 사이토카인만으로 구동되는 증상 모델로는 설명할 수 없다. WVIR = 0.60은 그것을 맞추기 위해 치른 값이며, 이는 맞추기 편의가 아니라 반증 가능한 주장이다 — 환자가 느끼는 것의 상당 부분이 이미 지나간 사이토카인 파동의 크기가 아니라 오늘의 복제를 따라간다는 주장.


4. 연산자 분해 (A5)

각 연산자를 t_rx부터 혼자서 95% 로 켠 결과 (PK 없음, 동등 비교):

연산자 TTAS (h) 배출 (h) day-2 (log) AUC (log·d) 상피 손실
PRODUCTION / RELEASE (p) 66.2 88.5 −2.63 13.89 85.1 %
TRANSCRIPTION (E→I) 73.5 114.5 −1.52 18.23 85.7 %
ENTRY (β) 78.2 117.5 −1.34 18.92 84.1 %
VIRION CLEARANCE (c) 65.8 88.0 −2.70 13.24 84.2 %
INFECTED-CELL DEATH (δ) 32.2 29.0 −4.16 9.56 72.4 %
TARGET PROTECTION (T→R) 78.5 117.5 −1.33 18.94 84.7 %
(없음: 위약) 78.7 118.0 −1.32 19.00 85.6 %
  • ENTRY와 TARGET PROTECTION은 24시간 하강을 거의 움직이지 못한다. 연산자가 켜지는 순간 이미 감염된 세포는 계속 생산하기 때문이다. 이들은 다음 세대만 막는다.
  • PRODUCTION/RELEASE와 VIRION CLEARANCE는 거의 같은 크기로 역가를 떨어뜨린다. 준정상상태에서 역가가 p·I/c 이므로 이 둘은 같은 분수의 분자와 분모다.
  • INFECTED-CELL DEATH가 압도적으로 강하다. 이것만이 원천을 제거하고 나머지는 조절할 뿐이다. 허가된 항인플루엔자제 중 이 방식으로 작용하는 것은 없고, 면역계가 그렇게 한다 — 그래서 자연 경과가 그것에 작용하는 어떤 약보다도 결정적이다.
  • TRANSCRIPTION이 같은 95%에서 PRODUCTION보다 약하다. 이는 자명하지 않다: 아직 성숙하지 않은 세포만 돌려세우는 반면, 생산 차단은 이미 성숙한 세포까지 침묵시키기 때문이다. 발록사비르가 원장에서 NAI를 이기는 것은 더 약한 지점에 작용하면서도 달성 효력이 높기 때문이지, 작용점이 더 좋아서가 아니다.

5. 그 밖의 결과

  • 예방 투여는 같은 분자를 정점 반대편에서 쓴 것이다 (A10). 감염 후 12시간 이내에 투여하면 모델은 질병을 아예 기록하지 않고, 48시간에 투여하면 질병을 단축한다. 두 체제를 가르는 것은 (정점 시각 − 투여 시각)의 부호다. BLOCKSTONE (PMID 32640124)이 보고한 것도 기간이 아니라 발병 확률의 감소(1.9 % 대 13.6 %)였다.
  • 코르티코스테로이드 (A9). 방향은 맞고 크기는 작다. 스테로이드는 증상 점수를 낮추면서 바이러스 AUC(12.96 → 13.07)와 배출을 늘린다 — 사망률 항 하나 없이 관찰연구의 신호 방향이 기전만으로 재현된다. 다만 크기가 작은 것은 약에 대한 안심이 아니라 이 보정에 대한 단서다: 이 파라미터화에서는 IFN 표적 보호도 CD8 살상도 제거의 율속 단계가 아니어서 억제해도 잃을 것이 적다. CD8이 율속인 숙주 (고령·면역억제 — 관찰 신호가 나온 바로 그 집단)라면 훨씬 큰 대가가 나온다.
  • 면역저하 숙주에서는 창이 닫히지 않는다 (A12). 정상 숙주에서 약은 어차피 바이러스를 제거했을 면역반응과 경쟁하므로 한계 가치가 시간에 따라 사라진다 (24 / 96 / 168 h에 9.37 → 1.90 → 0.00 log·d). 그 반응을 없애면 감쇠가 느려진다 (11.89 → 4.95 → 0.08).
  • 하기도와 세균 이차감염 (A11). 합병증 없는 성인에서 세균 부하는 약 4 log 올라가지만 어떤 치료군에서도 임계값을 넘지 않는다. 임계값 자체가 보정되지 않은 규정값이므로 이 모듈은 치료군의 순위만 매길 수 있고 누가 폐렴에 걸리는지는 말할 수 없다.

6. 이 모델이 재현하지 못하는 것

문헌과 어긋나는 지점은 감추지 않고 번호를 붙여 보고한다.

# 어디서 내용
1 A2 Hill 기울기 1(Michaelis)로는 CAPSTONE-1의 24시간 역가 하강(−4.8 log₁₀)을 어떤 Emax로도 만들 수 없다 (잔여 생산 분율의 하한이 EC50/(C+EC50)이므로 −3.3 log₁₀ 근처에서 포화). 시험 자료는 효력이 아니라 농도-반응 곡선의 모양에 대한 증거다. 아울러 보정된 in-vivo EC50은 유리약물 기준 in-vitro 값보다 13배 낮다.
2 A12 면역저하 숙주에서 늦은 치료가 가치를 유지한다는 예측. 임상 관행과는 맞지만 이를 검증한 무작위 시험이 없다 — 반증되지 않았을 뿐 검증된 것이 아니다.
3 A8 증상이 바이러스를 조금이라도 따라간다면 발록사비르가 오셀타미비르보다 증상 이익이 커야 한다. CAPSTONE-1은 day-2 역가가 100배 다른데도 53.7 대 53.8시간으로 구별하지 못했다.
4 A6 결정론적 모델이므로 10⁻⁴ 수준의 내성 계통이 모든 가상 환자에게 "존재"한다. 실제 I38T 출현은 성인의 약 10 %에서 일어나는 확률적 정착 사건이다. 위 격자는 바이러스 부하 예측이 아니라 선택압으로 읽어야 한다.
5 A7 순서가 거꾸로 나온다. 이 모델에서 경쟁적 해방은 거의 전적으로 T(t_rx)가 지배하고, 야생형을 늦추는 것은 무엇이든 밭을 더 남긴다 — 기존 면역을 포함해서. 그래서 사전 면역이 있는 성인이 내성을 가장 많이 선택하고 소아가 가장 적게 선택한다 (내성 AUC 17.90 대 3.19). 소아에서 I38T가 더 흔하다는 관찰과 반대 방향이며, 잘 섞인(well-mixed) 상피 가정이 이 질문에는 틀렸다는 가장 분명한 신호다. 다만 면역저하 숙주(내성 AUC 29.33)는 두 기전이 같은 방향을 가리켜 모델이 맞춘다.

7. 구조상 알아둘 점 (모델을 고칠 때 밟기 쉬운 지뢰)

  • 혼합 단위 규약. 세포는 절대 개수, 바이러스는 세척액 mL당 역가, β가 표본 부피를 흡수한다. 결과적으로 (a) 흡수항 −β·T·V는 단위가 cells/day라서 역가에서 뺄 수 없고 (표준 관행대로 생략, c에 흡수), (b) β와 p는 역가 자료만으로 개별 식별이 불가능하다 — 성장속도가 고정하는 것은 곱 β·T₀·p 뿐이고 p는 역가의 척도가 정한다. 어느 쪽도 혼자 인용해서는 안 된다.
  • 전사 차단은 eclipse 세포를 얼리지 않는다. 세포는 언제나 KECL로 eclipse를 떠나고, 약은 그 세포가 어디로 가는지를 정한다 (생산성 대 낙태감염). 출구를 막는 쪽으로 쓰면 eclipse 저장고가 생겨 약이 듣기 시작한 뒤로도 며칠간 생산성 세포를 계속 공급하고, 그러면 어떤 효력으로도 발록사비르의 24시간 하강을 재현할 수 없다.
  • 소멸 바닥(extinction floor). 결정론적 ODE는 계통이 10⁻²⁰ 세포까지 떨어졌다가 표적세포가 회복되면 되살아나게 둔다. 감염 세포 1개 근처에서 방출을 매끄럽게 0으로 보내는 항이 없으면 상피 재생 항이 가짜 2차 유행을 만든다.

8. 이 모델이 아닌 것

  • 결정론적이고 잘 섞인 모델이다. 인플루엔자는 공간적으로 구조화된 점막에서 복제하며, 확률적 소멸과 계통의 공간적 분리는 하필 이 모델이 묻는 내성 질문에 중요하다 (불일치 4·5번).
  • 증상은 바이러스 부하와의 결합계수(WVIR)를 보정한 단일 구획 복합 점수다. 이 파라미터는 이 모델에서 가장 방어하기 어려우면서 가장 중요한 값이다. 모든 인플루엔자 임상시험의 모든 증상 평가변수가 여기에 달려 있기 때문이다.
  • 세균 이차감염 임계값은 보정된 것이 아니라 규정된 것이다 (A11).
  • 단클론항체·파비피라비르·페라미비르의 PD는 가정값이다. 임상자료에 보정된 것은 오셀타미비르와 발록사비르뿐이다.

교육 및 연구 목적의 QSP 모델입니다. 독립적으로 검증되지 않았으며 임상 의사결정, 처방, 규제 제출에 사용해서는 안 됩니다.