구강점막염은 약이 "가지고 있는" 독성이 아니다. 재생 상피의 수지 결산 실패다.
구강 점막은 컨베이어 벨트다.
S → P1 → P2 → P3 → D → 탈락(shed)
│ 증폭 구획 분화된
클론원성 (transit- 장벽
기저세포 amplifying) (post-mitotic)
궤양은 정확히 D가 장벽이 연속성을 유지하는 역치 아래로 떨어져 있는 동안에만 존재한다.
그리고 모든 세포독성 부하 — 알킬화제든, 대사길항제든, 광자든 — 는 이 벨트의 증식 쪽(S, P) 을 때리고 분화된 쪽(D) 은 건드리지 않는다. 이 하나의 비대칭이 질환 전체를 만든다.
- 부하는 장벽 수명 한 번 동안 보이지 않는다. 그러고 나서 장벽이 무너지는데,
이유는 탈락한 것을 대체할 것이 도착하지 않았기 때문이다. 잠복기는 신호전달의
수수께끼가 아니라
1/k_shed의 문제다. - 궤양은 벨트가 다시 채워질 때까지 지속된다.
이 모델은 그 벨트를 50개의 미분방정식으로 쓰고, 실행하고, 자기 주장이 어디서 버티고 어디서 무너지는지를 계산으로 확인한다.
모든 숫자는 om_python_reference.py를 실제로 실행해서 나온 것이며 전문은
om_reference_output.txt에 있다.
원래 주장은 "발병 시점은 손상 항이, 지속 기간은 재생 항이 소유한다"였다.
손상 항(sens)과 재생 항(lamS)을 각각 2배 폭으로 흔들어 2×2로 검정했다.
| 항암방사선 70 Gy + 시스플라틴 | 발병 시점 변동 | 지속 기간 변동 |
|---|---|---|
| 손상 항 2배 변화 | 193.7% | 139.8% |
| 재생 항 2배 변화 | 74.9% | 148.2% |
| 분리비 | 2.59 | 1.06 |
발병 시점은 손상 항이 2.6배 더 크게 움직인다 — 주장의 앞 절반은 산다. 지속 기간은 두 항이 거의 똑같이 움직인다 — 뒤 절반은 죽는다. 되돌아보면 당연하다. 지속 기간은 깊이에서 기어 올라오는 시간이고, 깊이를 정하는 것은 손상 항이다. 방어 가능한 진술은 더 약한 쪽이다.
발병 시점은 손상 항의 것이다. 지속 기간은 공유되며, 재생 항만이 세포독성 용량을 줄이지 않고 그것을 단축할 수 있다.
이 약한 진술이 값을 하는 곳이 8절이다. 항암 용량이 이미 고정된 환자에게 줄 수 있는 약과 없는 약을 가르는 것이 바로 이 구분이다.
가이드라인이 말하는 기전은 "얼음이 국소 혈류를 줄여 약물 전달을 낮춘다"이다. 모델에 점막을 생리학적 크기의 관류제한 구획(평형 시간상수 약 2분)으로 넣고 6시간 냉각을 두 갈래로 분해했다.
| 6시간 냉각 | 점막 AUC | 중증 지속 기간 |
|---|---|---|
| 냉각 없음 | 0.5192 | 6.00 일 |
| 두 갈래 모두 | 0.5173 | 0.00 일 |
| 혈류 갈래만 (Q10 = 1) | 0.5173 | 5.90 일 |
| 온도 갈래만 (fQ = 1) | 0.5192 | 0.00 일 |
혈류를 78% 줄여도 점막 AUC는 0.4% 밖에 떨어지지 않고 임상 효과는 거의 없다(6.00 → 5.90일). 2분 만에 혈장과 평형에 도달하는 조직은 혈류를 잘라서 보호할 수 없다 — 혈류는 평형의 속도를 바꿀 뿐 노출량을 바꾸지 않는다. 효과 전부를 나르는 것은 알킬화 화학과 세포주기 진행에 걸리는 Q10이다.
얼음은 입 안에 있는 동안에만 작용한다. 그러므로
이득 = (1 − f_cryo) × (얼음 창 안에 들어오는 손상 AUC 비율)
= (1 − f_cryo) × (1 − 2^(−T_ice / t½))
동일한 30분 냉각을 노출 길이만 다른 세 요법에 걸었다.
| 요법 | 점막 AUC 감소 | 최대 궤양 면적 (냉각 / 무냉각) |
|---|---|---|
| 5-FU 볼루스 425 mg/m² d1-5 (t½ 12분) | 18.4% | 0.000 / 0.164 |
| 멜팔란 200 mg/m² (t½ 1.2시간) | 4.4% | 0.538 / 0.677 |
| 5-FU 96시간 지속주입 | 0.1% | 0.961 / 0.962 |
MASCC/ISOO가 볼루스 5-FU와 고용량 멜팔란에는 한랭요법을 권고하고 지속주입 플루오로피리미딘에는 권고하지 않는 패턴이, 반감기와 냉각 창의 겹침만으로 재현된다. 어떤 파라미터도 한랭요법 시험에 맞춰 조정하지 않았다.
2단계에서 쓴 숫자는 딱 하나, Spielberger 2004 위약군의 3/4등급 지속 기간 9일이다. 팔리페르민군은 예측이다.
| 위약 | 팔리페르민 | 관찰값 | |
|---|---|---|---|
| WHO≥3 지속 기간 | 9.00 일 | 6.50 일 | 9 → 3 일 |
| 최대 WHO 등급 | 4 | 3 | 4 → 3/4 |
| 마약성 진통제 사용일 | 11.11 | 8.81 | 11 → 7 |
| 발병 시점 | 11.10 | 11.40 | — |
방향은 맞고 발병 시점은 거의 움직이지 않는다(재생 축 약이 마땅히 그래야 하는
모양이다). 그러나 크기는 과소예측이다(−28% 대 관찰 −67%). eKGF는 구조
파라미터로 두고 팔리페르민군에 맞추지 않았기 때문이며, 맞췄다면 이것은 더 이상
예측이 아니다. 미스로 보고한다.
그리고 저자의 사전 기대가 부호까지 뒤집힌 채로 반박되었다. 지도와 모델 헤더는 모두 라벨의 24시간 분리 요구를 "KGF가 증식 풀을 키워 세포독성에 더 큰 표적을 준다"로 설명했다. 알킬화제/광자 요법에서는 구조적으로 불가능하다 — 둘 다 세포주기 특이 항을 갖지 않고 살상은 풀에 1차이므로, 풀이 커지면 죽는 절대수만 비례해서 커질 뿐 죽는 분율은 변하지 않는다. 페널티가 사라지고 나면 남는 것은 KGF 효과 풀의 2일 반감기뿐이고, 따라서 세포독성에 가까이 줄수록 단조롭게 더 좋다.
| 마지막 사전투여 ↔ 알킬화제 간격 | −1일 | 0일 | +1일 | +3일 |
|---|---|---|---|---|
| 중증 지속 기간 | 3.60 일 | 3.80 | 4.50 | 5.70 |
| 위약 대비 | −60.0% | −57.8% | −50.0% | −36.7% |
모델은 라벨의 분리 요구를 점막 동역학만으로 재현하지 못한다. 그 요구를 지지하는 근거로 읽어서는 안 된다.
페널티가 실재하는 곳은 세포주기 활성 약제다. 볼루스 5-FU에서 결합
파라미터 하나(fcyc_KGF)를 0으로 끄면 팔리페르민은 궤양을 완전히 없앤다
(지속 기간 4.7일 → 0.00일). 결합이 이득의 거의 전부를 먹는다. 그리고 5일짜리
투여 코스는 효과 풀 반감기가 2일인 성장인자와 분리할 수 없다 — 이것이
팔리페르민이 이식 전처치에는 쓰이고 통상 항암요법에는 쓰이지 않는 것에 대한
모델의 설명이다. 전처치는 임펄스라 스케줄을 짤 수 있고, 다일 코스는 아니다.
| 스케줄 | 발병 | 지속 | 종양 BED (Gy10) |
|---|---|---|---|
| 70 Gy / 35 fx / 7주 (표준) | 17.5 | 44.0 | 71.5 |
| 81.6 Gy / 68 fx b.i.d. / 7주 | 12.9 | 52.4 | 79.3 |
| 70 Gy / 35 fx / 6주 (주 6회) | 12.7 | 46.9 | 76.1 |
| 54 Gy / 36 fx t.i.d. / 12일 (CHART형) | 6.7 | 28.0 | 62.1 |
7일 무계획 중단은 점막을 6일 회복시키고(44.0 → 38.0일, d21-28 중단) 종양 BED를 4.7 Gy10 깎는다.
동일한 개입(6시간 냉각)을 기저 중증도만 바꿔가며 두 척도로 측정했다.
| sens | 면적 기준 효과 | WHO 기준 효과 |
|---|---|---|
| 0.70 | −97.8% | 0.0% |
| 1.00 | −97.0% | −100.0% |
| 1.30 | −93.9% | −100.0% |
| 1.70 | −84.9% | −97.9% |
이 절은 천장 효과를 찾으러 쓰였는데 찾은 것은 바닥 효과였다. 순서형 평가변수는 "중증"과 "중증 아님" 사이의 어떤 것도 표현하지 못하므로, 환자를 역치 바로 아래로 내리는 개입과 질환을 없애는 개입이 똑같이 −100%로 기록된다. 연속 평가변수는 둘을 갈라내고, 효과가 중증도에 따라 감쇠한다는 임상적으로 의미 있는 사실(−97.8% → −84.9%)을 보존한다. WHO 등급으로 검정력을 계산한 시험은 자기가 재고 있는 효과의 크기에 대해 눈이 멀어 있다.
이 모델은 여섯 개의 실제 결함을 드러냈고, 전부 고쳐졌으며 코드 주석에 남아 있다.
- 70 Gy 처방이 20 Gy만 전달되었다. 2 Gy 분할은 10분 창으로 전달되는데
적응형 적분기가 60일 구간을 받으면 그 창을 그냥 넘어가 버린다. 전달 선량이
처방이 아니라 적분기의 스텝 배치에 좌우되었다(점막 BED 24 vs 정답 84).
→ 모든 사건 경계를 명시적 적분 구간 경계로 만드는
breakpoints()도입. - 구간 사이에 상태가 전달되지 않았다.
t_eval을 주면sol.y[:,-1]은 구간의 끝이 아니라 마지막 요청 시점이다. 짧은 창마다 상태가 시작값에 얼어붙어 70 Gy 코스가 0 Gy를 전달했다. → 항상 구간 끝을 함께 요청. - 조직이 영구 불임이 되었다.
dS/dt가 S에 비례하므로 S = 0은 흡수 상태다. 발병 시점 목표를 맞추려던 첫 보정이 클론원성 풀을 절멸시켰고, 중증 점막염이 39일간 지속되며 끝내 낫지 않았다. → 빠져 있던 생물학은 정지기(label-retaining) 줄기세포 저장고였다. 추가하니 흡수 상태가 사라지고 재생 축에 두 번째 시상수(kact)가 생겼다. - 보정의 중첩 방향이 틀렸다. 발병 시점으로 효력을 고정하려 했는데, 임펄스 부하에서 발병 시점은 효력에 거의 평평하다(효력 33% 변화에 6.70 → 6.45일). 지속 기간이 용량-반응 전부를 진다(5.55 → 8.60일). → 측정된 민감도가 지시하는 대로 배정을 뒤집었다. 이 실수가 3번 결함을 드러냈다.
- 과분할이 과분할이 아니었다.
fx_per_week = 10을 하루 한 분할로 표현하면 68분할이 34일이 아니라 68일에 걸쳐 퍼진다. 전체 치료 기간이야말로 변경 분할 비교의 핵심이므로, 그 arm은 라벨과 다른 질문에 답하고 있었다(과분할 arm의 종양 BED가 표준보다 낮게 나왔다). → 진짜 b.i.d./t.i.d. 지원 추가. - 집단 시뮬레이션이 조용히 0을 보고했다. 시뮬레이션 지평 인자가 스케줄
생성기로 새어 들어가 모든 워커가
TypeError로 죽었고, 발생률이 예외가 아니라 0.000으로 보고되었다. → 인자를 먼저 꺼내고, 실패를 세어 보고.
추가로 개념적 오류 하나: 1단계는 결정론적 환자를 중증 점막염 지속 기간
38일에 맞췄는데, 그 숫자는 중증 점막염이 실제로 생긴 환자에게만 정의된다.
따라서 1단계 환자는 중앙값 등록 환자가 아니라 중앙값 이환 환자이고, 그
환자를 중심으로 놓은 집단의 발생률은 34–43%가 아니라 100%에 가깝다.
→ 집단에 위치 파라미터(sens_med = 0.628)를 두고 방사선 단독 발생률에
맞췄다.
| 검정 | 결과 |
|---|---|
| TNF → NF-κB 양성 되먹임 루프 이득 | 0.067 – 0.292, 모두 < 1 (발산 없음) |
| 처방 선량 전달의 정확성 | 70 Gy/35 fx → 점막 BED 84.0000 (이론값 84.0000) |
| 적분기 수렴 (rtol 1e-7 vs 1e-9) | 최대 궤양 면적 차이 4.0e-06 |
| 무약물 정상상태가 진짜 끌개인가 | 60일 장벽 표류 1.3e-06, 궤양 면적 6.1e-06 |
여덟 개의 발표된 숫자를 여덟 개의 파라미터에 썼다. 정확히 결정된 적합이므로 1절의 일치는 증거가 아니라 산수다. 증거는 2절 이후다.
| 단계 | 파라미터 | 쓴 숫자 | 값 |
|---|---|---|---|
| 1 | greg |
HDM 중증 발병 6.5일 | 5.849 |
| 1 | pot_mel |
HDM 중증 지속 6.0일 | 23.22 |
| 1 | rad_pot |
항암방사선 발병 19.0일 | 0.5051 |
| 1 | lamS |
항암방사선 지속 38.0일 | 0.06047 |
| 2 | cy_equiv |
Spielberger 위약군 지속 9일 | 50.14 mg/m² |
| 3 | sens_med |
Trotti 방사선 단독 발생률 34% | 0.6283 |
| 3 | pot_cis |
Trotti 항암방사선 발생률 43% | 15.63 |
| 4 | pot_5fu |
볼루스 5-FU 궤양성 구내염 5일 | 1.839 |
적합이 닫히지 않는 곳도 그대로 보고한다: HDM 발병 시점은 목표 6.5일에 대해 모델 7.50일이다. 나머지 세 개는 6.00 / 18.90 / 38.20으로 목표에 든다.
pot_mtx는 어떤 것에도 구속되지 않는다. 메토트렉세이트는 완결성을 위해
(동종이식 GVHD 예방) 실려 있지만 17개 시나리오 중 어디에도 등장하지 않으므로
그 효력은 자리표시자이며, 그렇게 표시해 두었다.
pot_cis의 식별성 주의: 발생률이 좁은 구간에서 0.33 → 1.00으로 오르므로 이
파라미터는 그 띠 안으로만 고정된다. 시스플라틴 기여의 크기에 의존하는 주장은
그만큼 약하다.
| 파일 | 내용 |
|---|---|
om_qsp_model.dot |
기계론적 지도 소스 — 165 노드 · 18 클러스터 · 237 엣지 |
om_qsp_model.svg / .png |
렌더링 (dot -Tsvg / dot -Tpng -Gdpi=150) |
om_python_reference.py |
실행되는 참조 구현 — 50 ODE, 구간별 적분기 |
om_calibrate.py |
4단계 보정 (중첩 이분법 + 병렬 가상 집단) |
om_analysis.py |
12개 절의 실험 — 위의 모든 숫자를 생산 |
om_reference_output.txt |
그 실행 결과 전문 |
calib.log |
보정 로그 (실패한 시도 포함) |
om_calibration.json |
적합된 8개 값 — R/Python 양쪽이 여기서 읽는다 |
om_mrgsolve_model.R |
mrgsolve 모델 — 50 ODE, 17 시나리오 |
om_mrgsolve_template.R · mkmrgsolve.py |
생성 템플릿과 생성기 (R/Python 파라미터 드리프트 방지) |
om_shiny_app.R |
Shiny 대시보드 — 15개 탭 |
om_references.md |
115편, 전부 PubMed에서 실시간 해석 |
mkrefs.py |
그 문헌 목록의 생성기 |
python3 om_calibrate.py 120 # 보정 (수십 분)
python3 om_analysis.py # 12개 절 전부 → om_reference_output.txt
python3 mkmrgsolve.py # om_mrgsolve_model.R 생성
python3 mkrefs.py # 문헌 목록 재해석 (네트워크 필요)
dot -Tsvg om_qsp_model.dot -o om_qsp_model.svg
dot -Tpng -Gdpi=150 om_qsp_model.dot -o om_qsp_model.pnglibrary(mrgsolve); library(dplyr)
mod <- mread("om_mrgsolve_model.R")
out <- mod %>% data_set(scen_hdm_cryo(6)) %>% mrgsim(end = 45, delta = 0.05)
plot(out, ULC + WHO + VAS + ANC ~ time)
shiny::runApp("om_shiny_app.R")| # | 시나리오 | 발병 | 지속 | 최대 면적 | 통증 AUC |
|---|---|---|---|---|---|
| 1 | HDM 200 mg/m², 예방 없음 | 7.50 | 6.00 | 0.677 | 50.9 |
| 2 | HDM 140 mg/m² (감량) | — | 0.00 | 0.163 | 24.5 |
| 3 | HDM 200 + 한랭요법 30분 | 7.90 | 4.40 | 0.538 | 43.6 |
| 4 | HDM 200 + 한랭요법 6시간 | — | 0.00 | 0.020 | 4.4 |
| 5 | HDM 200 + 팔리페르민 (분리) | 8.90 | 1.80 | 0.385 | 36.3 |
| 6 | HDM 200 + 팔리페르민 (동시) | — | 0.00 | 0.295 | 30.2 |
| 7 | HDM 200 + 광생체조절 (매일) | — | 0.00 | 0.090 | 10.8 |
| 8 | HDM 200 + 글루타민 | — | 0.00 | 0.323 | 28.6 |
| 9 | HDM 200 + 한랭 + 팔리페르민 | — | 0.00 | 0.017 | 2.1 |
| 10 | TBI-VP16-Cy 전처치 (위약) | 11.10 | 9.00 | 0.836 | 59.5 |
| 11 | TBI-VP16-Cy + 팔리페르민 | 11.40 | 6.50 | 0.675 | 46.3 |
| 12 | 두경부 70 Gy/35 fx + 시스플라틴 | 17.50 | 44.00 | 0.996 | 267.2 |
| 13 | 두경부 70 Gy/35 fx, 방사선 단독 | 18.90 | 38.10 | 0.987 | 226.7 |
| 14 | 두경부 과분할 81.6 Gy/68 fx b.i.d. | 12.90 | 52.40 | 0.997 | 303.6 |
| 15 | 두경부 항암방사선 + 벤지다민 | 19.20 | 38.90 | 0.992 | 235.7 |
| 16 | 5-FU 볼루스 425 mg/m² d1-5 | — | 0.00 | 0.164 | 23.8 |
| 17 | 5-FU 96시간 지속주입 4000 mg/m² | 5.80 | 13.40 | 0.962 | 83.3 |
("—" = 중증(WHO≥3) 점막염에 도달하지 않음. 2·4·6·7·8·9·16번의 0.00은
계측기의 바닥 효과이며 100% 예방이라는 주장이 아니다. 6절과 8절 참조.)
- R 툴체인이 없는 환경에서 작성되었다.
om_mrgsolve_model.R과om_shiny_app.R은 실행된 Python 참조 구현을 방정식 단위로 반영하지만 그 자체로는 실행되지 않았다. 첫mread()를 구문 검사로 취급할 것. - 팔리페르민 효과 크기는 과소예측된다(−28% 대 관찰 −67%).
eKGF를 팔리페르민군에 맞추면 사라지지만, 그러면 예측이 아니게 된다. - 결정론적 환자가 WHO≥3 역치 바로 위에 앉아 있어서(최대 면적 0.68, 역치 0.35) 순서형 평가변수에서 바닥 효과가 만연하다. 발생률형 주장은 표가 아니라 가상 집단에서 해야 한다.
- 한랭요법의 온도 갈래는
Q10 = 2.5,ΔT = 13 °C를 구조적으로 가정한다. 어떤 한랭요법 시험에도 맞추지 않았으므로 3절의 패턴은 예측이지만, 효과의 절대 크기는 이 두 수에 직접 비례한다. - 점막 미생물총, 통증, 골수억제 축은 각각 최소 구조로만 들어 있다.
om_references.md의 해당 절이 그 단순화의 대가를 가늠할 근거를 준다. - 방사선의 세포주기 의존성은 LQ 형식 안에 넣지 않았다(살상이 풀에 1차). 이것이 4절에서 알킬화제/광자 요법에 표적확대 페널티가 없다는 결론의 구조적 전제다.
교육 및 연구 목적의 정성적·반정량적 QSP 모델입니다. 공개 문헌과 임상시험 데이터를 바탕으로 구성되었으나 독립적으로 검증·인증되지 않았으며, 실제 임상 의사결정, 처방, 또는 규제 제출에 직접 사용해서는 안 됩니다.
