Skip to content

Latest commit

 

History

History

refractory-chronic-cough

README.md

난치성 만성기침 (Refractory Chronic Cough) — QSP 모델

기침 과민증 증후군 (Cough Hypersensitivity Syndrome)

만성기침은 다른 병의 증상이 아니라, 기침 반사궁 그 자체의 장애다.

산출물 파일
🗺️ 기계론적 지도 rcc_qsp_model.dot · SVG · PNG
⚙️ mrgsolve 모델 rcc_mrgsolve_model.R — 69 구획 · 241 파라미터 · 25 시나리오 · 14 진단
📊 Shiny 대시보드 rcc_shiny_app.R — 10 탭
📚 참고문헌 rcc_references.md — 120 PubMed 인용

1. 왜 이 모델인가 (The premise)

50년 동안 만성기침은 원인을 찾는 문제로 다루어졌습니다. 천식·역류·후비루를 찾아 치료하는 방식입니다. 이 패러다임은 전문 클리닉 환자의 20–40%에서 실패하며, 실패하는 방식이 매우 시사적입니다. "원인"을 치료하고 그 객관적 증거가 사라져도 기침은 남습니다.

현대적 재해석(Chung, Morice, McGarvey, Mazzone, Undem)은 난치성 만성기침을 미주신경 반사궁의 신경병증(neuropathic disorder) — 신경병증성 통증의 기도판 — 으로 봅니다. 두 가지 특징이 통증과 정확히 대응합니다.

기침 통증 대응
Hypertussia — 유발 자극에 과장된 기침 hyperalgesia
Allotussia — 대화·웃음·찬 공기·향수에 기침 allodynia
후두 이상감각(laryngeal paraesthesia) — "간질거림" 자발통

세 번째가 핵심입니다. 이 "간질거림"은 기도에 아무 문제가 없어도 발생하는 이소성 자발 발화(ectopic discharge) 에서 나옵니다. 환자는 완전히 정상인 기도로 기침할 수 있습니다.


2. 모델 구조 — 직렬 3층 (Three layers in series)

모든 약물은 정확히 한 층에 작용하며, 그 층이 어떤 평가변수를 움직일 수 있는지를 결정합니다.

LAYER 1  말초 이득     상피 손상 → pannexin-1 → ATP → 미주신경 C섬유 P2X3
         (기도)        NGF/TrkA가 수 주에 걸쳐 P2X3 발현 자체를 상향조절
                       ▶ P2X3 길항제가 작용하는 층

LAYER 2  중추 이득     구심성 폭주 → nTS NMDA wind-up, substance P/NK-1,
         (뇌간)        미세아교세포 BDNF, GABA/글리신 억제 소실
                       ▶ 유발 인자보다 오래 살아남는 층
                       ▶ 가바펜틴·모르핀·아미트립틸린이 작용하는 층

LAYER 3  피질 조절     구동력은 먼저 의식적 "기침 충동"이 되고, 전전두엽
         (사람)        억제가 불충분할 때만 운동 기침이 된다
                       ▶ 언어치료가 작용하는 층 — 그리고 위약 반응도

$$\text{COUGH} = f\big(\underbrace{\text{구심성 구동력} \times \text{중추 이득}}_{\text{TUSS}} - \underbrace{\text{역치}}_{\text{하행 억제} \times \text{피질 억제}}\big) \times \text{각성 게이트}$$


3. 이 모델의 중심 약리학적 주장

효능과 미각이상은 하나의 점유 곡선이며, 차이는 숫자 하나다

P2X3 길항제 4종이 만성기침 2b/3상에 진입했습니다. 효능 기전(미주신경 구심성 동종삼량체 P2X3 차단)도 하나, 이상반응 기전(미뢰 II/III형 세포의 이종삼량체 P2X2/3 차단)도 하나입니다. ATP는 다섯 가지 미각 전부에 대한 미뢰→미각신경 신경전달물질 이므로, 미각계에는 수용체 예비능이 없습니다.

약물 선택성 (P2X2/3 : P2X3) 효능 미각 이상반응
게파픽산트 (gefapixant) ~6배 있음 (약함) 58–69%
시보픽산트 (sivopixant) ~40배 미확인 ~6–13%
엘리아픽산트 (eliapixant) ~70배 있음 (약함) ~10–21% · DILI로 중단
캄리픽산트 (camlipixant) ~1500배 있음 (더 큼) ~6%

모델이 이 주장을 검증하는 방식 — 게파픽산트 45 mg BID 한 용량을 고정하고 선택성 하나만 4자릿수에 걸쳐 sweep합니다 (진단 7):

선택성 위약 대비 기침 감소 미각 이상반응 12주 복약 유지
1배 −18.1% 70.8% 79%
6배 (게파픽산트) −18.6% 52.2% 89%
70배 (엘리아픽산트) −19.2% 3.6% 100%
1500배 (캄리픽산트) −19.2% 3.0% 100%

효능은 사실상 평평한 채 미각 이상반응만 무너집니다. 6배 선택성이 "어느 정도 선택적"으로 보이지만 전혀 충분하지 않은 이유가 여기 있습니다.

계열 천장 (class ceiling)

P2X3 경로는 기침 구동력의 일부만 나릅니다. 완전한 표적 점유로도 TRPV1/TRPA1/기계수용체 팔은 그대로 남습니다. COUGH-1 3상 결과에 맞추면 전형적 환자에서 P2X3 의존 비율은 약 5%(WP2X = 0.047)까지 내려갑니다. 이것이 이 계열이 모르핀 수준의 기침 억제를 결코 보여주지 못한 이유입니다.


4. 위약군은 숫자가 아니라 기전이다

만성기침은 호흡기내과에서 객관적 생리 지표의 위약 반응이 가장 큰 영역입니다 (기계로 센 24시간 기침 횟수가 30–45% 감소). 위약군을 숫자로 처리하면 모든 약효가 2배 이상 과대평가됩니다. 세 기전이 모두 위약군에서 작동합니다.

  1. 최악일 때 등록한다 — FLARE가 반감기 ~41일로 감쇠 (평균회귀를 기전으로 표현)
  2. 시험 참여 자체가 억제를 훈련시킨다 — 일지·모니터링·의료진 접촉이 CORT를 ~3주 시상수로 끌어올림 (언어치료가 의도적으로 하는 일을 우연히 얻는 것)
  3. 유발 인자의 자연 소실

⚠️ 선별 → 무작위배정 run-in이 필수였습니다. 무작위배정 시점에 flare를 주입하면 위약군이 12주에 걸쳐 64% 악화 합니다 — 실제 기침 시험과 정반대. 환자는 증상이 최악일 때 선별되고 수 주 뒤 무작위배정되며, 기준선은 이미 flare가 내려가는 도중에 측정됩니다. 모델은 flare 적용 후 28일을 시뮬레이션한 상태를 시험 0일로 삼습니다. 이 수정으로 위약군은 12주에 −32% 가 됩니다.


5. 검증 — 발표된 시험과의 정면 비교

모든 값은 해당 모집단·해당 시점에서 위약 보정 된 값입니다.

시험 평가변수 관찰값 모델
COUGH-1 (12주) 게파픽산트 45 mg BID, 24h 기침 vs 위약 −18.5% −18.6%
COUGH-1 게파픽산트 45 mg, 미각 이상반응 58% 52%
PAGANINI (12주) 엘리아픽산트 75 mg BID −17.6% −22.9%
PAGANINI 엘리아픽산트 150 mg, 미각 이상반응 ~21% 26%
시보픽산트 2b (12주) 150 mg QD −18.6% (ns) −22.9%
Ryan 2012 (10주) 가바펜틴 1800 mg/d, LCQ +1.80 +1.99
Ryan 2012 가바펜틴, 기침 VAS (mm) −12.1 −11.3
Ryan 2012 가바펜틴, 기침 빈도 −27% −24.6%
Morice 2007 (4주) 모르핀 SR 10 mg BID, LCQ +3.2 +2.88
Vertigan 2016 (4주) 프레가발린 + 언어치료, LCQ +2.5 +2.23
PSALTI (4주) 언어치료, LCQ +1.53 +1.12
CANAL (IPF 기침) 날부핀 ER, 주간 기침 vs 위약 −53% −53.6%
ICS, 비호산구성 RCC 24h 기침 vs 위약 무효 −0.0%
ICS, 호산구성 기침 24h 기침 vs 위약 큰 효과 −18.8%
PPI, 비산성 역류 24h 기침 vs 위약 무효 −5.6%
PPI, 산성 역류 확인 24h 기침 vs 위약 중등도 −10.3%
ACEi 중단 4주 시점 기침 (기준선 대비) 대부분 소실 40%

양성보다 음성 대조군이 더 강한 검증입니다

ICS와 PPI의 무효는 모델에 지시된 것이 아닙니다. PPI는 ACIDR 상태만 억제하고 NACID에 작용하는 항이 아예 없으며, ICS는 호산구 set point를 통해서만 작용합니다(ICS_NFK = 0). 두 무효 결과는 구조에서 저절로 나옵니다.

맞지 않는 것들 — 숨기지 않고 기록합니다

시험 관찰값 모델 문제
COUGH-2 (24주) 게파픽산트 45 −14.6% −25.8% 너무 강함
SOOTHE (4주) 캄리픽산트 50 ~−34% −10.5% 너무 약함
COUGH-1 게파픽산트 15 mg −1.4% (ns) −13.0% 용량 절벽 재현 불가

앞의 두 개는 서로 반대 방향 입니다. 모델의 약효는 너무 느리게 쌓이고 그 뒤 계속 커집니다. 실제 계열은 ~4주에 대부분의 효과에 도달한 뒤 정체하거나 줄어듭니다. WP2X와 wind-up 감쇠율 sweep은 두 숫자를 함께 움직이므로 하나를 고치면 다른 하나가 나빠집니다 → 빠진 기전(내성 또는 수용체 escape) 이지 파라미터 오설정이 아닙니다. 12주를 넘는 P2X3 예측은 신뢰하지 마십시오.

15 mg 절벽은 어떤 점유 기반 모델로도 재현되지 않습니다(15 mg BID는 상당한 P2X3 점유를 달성함). 이는 이 구현의 결함이 아니라 분야의 미해결 문제 이며, 맞추지 않고 그대로 두었습니다.


6. 모델이 자기 설계 가정 3개를 반증 했습니다

QSP 모델의 가치는 맞은 것보다 틀린 것을 드러내는 데 있습니다. 아래 세 가정은 모두 헤더에 주장으로 적혀 있었고, 모두 자체 진단에 의해 철회되었습니다.

① 쌍안정성(bistability)과 이력현상(hysteresis) — 없음

vicious circle이 두 개의 안정 상태를 만들 것으로 기대하고 만들었습니다. loop gain을 건강에서 위로, 확립된 질환에서 아래로 sweep한 결과 두 가지는 0.3 coughs/h 이내로 겹쳤습니다. 이 모델에는 두 attractor가 아니라 가파른 단조 감수성 곡선이 있을 뿐입니다. (그 이전 버전은 분기 파라미터가 유발 인자 크기라고 주장했는데, 그것도 sweep으로 반증되었습니다 — 유발 인자는 수 주 만에 사라지고 이후를 지탱하는 데 아무 역할도 하지 않습니다.)

감염 후 기침의 소실(1.8 coughs/h) 대 난치성 지속(21 coughs/h)은 재현됩니다. 다만 fold를 넘어서가 아니라, loop gain × 말초 감수성(에스트로겐 상태·연령)이 만드는 연속 곡선 위를 이동해서입니다.

② 효능 ≠ 효과성의 크기 — 거의 차이 없음

미각이상 → 중단 → 노출 감소 → ITT 추정치 희석. 이 gap이 게파픽산트 효과가 작은 이유의 큰 부분일 것으로 기대했습니다. 아닙니다: ITT −18.6% vs per-protocol −19.2%, 차이 0.6%p. 작은 효과의 거의 전부는 P2X3 의존 구동력 비율이 작기 때문 이고, 탈락 때문이 아닙니다.

③ 조기 치료 이득 — 없음

기대: 중추 감작이 굳기 전에 치료하면 더 낫다. 결과: 이환 10주 −21.2% vs 5년 −21.4%. 이유는 함께 출력되는 열에 보입니다 — wind-up과 미세아교세포 활성화가 이미 10주에 정상상태(0.31 vs 0.29)에 도달합니다. 임상적 조기 치료가 실제로 더 낫다면 그 기전은 이 모델에 없습니다.

추가로 진단 12는 객관/주관 해리의 방향이 예상과 반대임을 보였고(피질 개입이 아니라 말초 약물이 count:urge 비가 더 큼), 이유와 함께 헤더에서 수정되었습니다.


7. 예측: 유발검사 해리 (dissociation)

캡사이신은 TRPV1을 직접 열며 P2X3를 우회 합니다. 흡입 ATP는 P2X3를 엽니다. 모델은 같은 상태 벡터에서 두 역치를 계산하므로, 이 해리는 지시된 것이 아니라 예측된 것 입니다.

처치 캡사이신 C5 변화 ATP 역치 변화 24h 기침
위약 1.00× 0.99× 0.83×
게파픽산트 45 1.01× 1.13× 0.75×
캄리픽산트 50 1.01× 1.20× 0.74×
모르핀 10 1.04× 1.03× 0.48×

이것이 캡사이신 유발검사가 이 계열의 약력학 바이오마커로 부적절한 이유입니다. ⚠️ 단, 모델의 ATP 이동 폭(1.1–1.2배)은 실험에서 보고된 거의 한 자릿수 log 이동보다 훨씬 작습니다 — 방향과 해리만 읽으십시오.


8. 질환은 부여되지 않고 생성됩니다

어떤 가상 환자도 병든 상태로 초기화되지 않습니다. 모두 건강하게 시작해 유발 인자를 받고 PRERUN일 동안 시뮬레이션됩니다. 등록 시점의 기침은 모델이 준 기침 입니다.

건강한 대상(INSULT0 = 0)의 365일 표류: 24h 기침 빈도 0.37%, 중추 이득 0.084%, loop gain 8×10⁻¹¹%, 캡사이신 C5 0.046%.

표현형 24h 기침 각성 기침 LCQ VAS 중추 이득 캡사이신 C5
건강 (여성) 1.9 2.7 20.5 1 1.00 26.0
건강 (남성) 1.4 1.9 20.6 1 1.00 61.9
난치성 만성기침 21.1 29.4 11.0 55 1.44 17.0
감염 후 (소실됨) 1.8 2.6 20.6 1 0.98 26.3
호산구성 (NAEB/CVA) 16.6 23.1 12.4 45 1.20 18.0
산성 역류 13.9 19.4 13.3 39 1.25 19.7
비산성 역류 13.7 19.0 13.4 38 1.25 19.7
ACEi 기침 11.7 16.3 14.3 33 1.20 14.9
IPF 동반 기침 32.7 45.5 7.9 79 1.56 45.6
등록 시험 모집단 21.8 30.4 10.8 56 1.45 17.0

산성/비산성 역류 쌍이 거의 동일한 기침(13.9 vs 13.7)에서 출발하도록 맞춘 것은 의도적입니다 — PPI 비교가 기준선 차이가 아니라 기전 차이만 반영하게 하기 위해서입니다.


9. 일주기 구조도 생성됩니다

수면 중 기침이 거의 멎는 것은 피질 충동 경로가 꺼지기 때문이고, 아침 상승은 밤사이 점액 축적을 따릅니다. 둘 다 부과되지 않고 나옵니다.

  • 각성 : 24시간 기침 빈도 비 = 1.39
  • 수면 중 최저 = 1.7 coughs/h (각성 시 ~30 대비)
  • 각성 후 정점 = 기상 후 4시간

⚠️ 실제 정점은 기상 직후 인데 모델은 4시간 뒤입니다 — 점액 제거 동역학이 너무 느립니다.


10. 사용법

# 필요 패키지: mrgsolve, ggplot2, shiny
source("rcc_mrgsolve_model.R")

report()                      # 14개 진단 전체 (약 3-5분)

check_baseline()              # 1. 건강 대상 표류 (~0%)
check_phenotypes()            # 2. 자연사가 만들어낸 표현형 기준선
check_bistability()           # 3. 감수성 sweep — 쌍안정성 없음(음성 결과)
check_window()                # 7. ★ 치료 창 — 선택성 sweep
check_eff_vs_effectiveness()  # 8. ITT vs per-protocol (음성 결과)
check_challenges()            # 9. 캡사이신 vs ATP 해리
validate_trials()             # 10. 발표 시험과의 정면 비교
check_early_late()            # 11. 조기 치료 이득 (음성 결과)
check_sensitivity()           # 12. 헤드라인 결과의 민감도
check_pro_dissociation()      # 13. 객관/주관 해리 (방향 수정됨)
check_circadian()             # 14. 일주기 구조

# 개별 시나리오
ic <- settle(pat_trial)                                   # 자연사 pre-run
d  <- daily(run(pat_trial, list(), ev_gefapixant(45),
                days = 84, ic = ic))

# 대시보드
shiny::runApp("rcc_shiny_app.R")

지도 렌더링:

dot -Tsvg rcc_qsp_model.dot -o rcc_qsp_model.svg
dot -Tpng -Gdpi=150 rcc_qsp_model.dot -o rcc_qsp_model.png

newrank=true가 필요합니다. 클러스터 간 순환(예: 바클로펜 → TLESR)이 있어 graphviz 기본 ranking이 trouble in init_rank로 실패합니다.


11. 구현상 중요한 함정 두 가지

① $MAIN은 매 record마다 실행됩니다. 초기조건 블록을 그냥 두면 init()으로 넘긴 상태 벡터를 조용히 덮어씁니다. 730일 자연사 pre-run 전체가 버려지고 건강한 대상이 시뮬레이션되는데, 오류는 나지 않습니다. 모든 *_0 대입은 SETIC 파라미터로 가드되어 있습니다.

② 자기 손상 항은 반드시 포화시켜야 합니다. 기침→기계적 상피 손상을 비례항으로 쓰면 시간당 30회 기침하는 환자가 기도를 10번 벗겨냅니다. 포화 없는 자기 손상은 상위 안정 상태가 아예 존재하지 않는 모델을 만듭니다. 모든 자기 손상 항은 SAT(x, k) 형태이며, 건강한 작동점 주위에 CTOL 불감대가 있습니다.


12. 한계

  • 전형적 대상(typical-subject) 모델 입니다. 기침 횟수는 환자 간 로그정규 분포를 따르며, 이 모델은 기하평균 궤적을 예측할 뿐 반응자 분포를 예측하지 않습니다. 환자 간 변이는 OMEGA 블록이 아니라 파라미터 세트로 제공됩니다.
  • 복약순응도는 집단 평균 노출 배수 로 적용됩니다. ITT 기하평균에는 맞는 근사이고 개별 환자에게는 틀린 근사입니다.
  • P2X3 길항제 4종의 선택성비·IC50·비결합분율은 서로 다른 조건의 전임상 보고에서 수집한 것으로 모델에서 가장 불확실한 파라미터 입니다. 치료 창의 정성적 결과는 견고하지만 예측된 미각 이상반응 %는 그렇지 않습니다.
  • 엘리아픽산트 간독성은 특이체질성이며 용량-반응이 아니라 플래그 로만 포함되었습니다.
  • 언어치료는 LCQ 효과(+1.12 vs +1.53)는 재현하지만 객관적 기침 빈도 효과 (−16.8% vs −41%)는 재현하지 못합니다.
  • 실험적 근거가 없는 파라미터 목록은 rcc_references.md 마지막 표에 정리되어 있습니다.

⚠️ 면책

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