한 문장 요약 — 혈장 칼슘은 저장량이 아니라 네 개 플럭스의 잔차이고, 그 플럭스는 시간 척도가 전혀 다른 세 개의 시계(신장 = 시간, 장 = 하루, 뼈 = 며칠) 위에서 돕니다. 신장이라는 배수구에는 천장이 있는데, 고칼슘혈증 자체가 그 천장을 끌어내립니다 — 그래서 위기는 큰 숫자가 아니라 분기(bifurcation) 이고, 수액이 하는 일은 칼슘을 빼는 것이 아니라 천장을 다시 올려놓는 것입니다.

140개 노드 · 18개 서브그래프 클러스터 · 222개 엣지 — 크게 보려면 SVG를 클릭
dCa_ECF/dt = J_res − J_form + J_gut − U_Ca
| | | |
시계 3 (뼈, 2–5일) ─────┘ | └── 시계 1 (신장, 몇 시간)
시계 2 (장, 하루) ──────┘
ECF 칼슘 풀은 36 mmol밖에 안 되는데 사구체는 하루에 259 mmol을 여과합니다 — 하루에 일곱 번 완전히 갈아치우는 셈입니다. 모든 치료는 이 네 항 중 정확히 하나를 움직이고, 빠르면서 동시에 근본적인 약은 없습니다.
| 치료 | 움직이는 항 | 효과 발현 | 지속 |
|---|---|---|---|
| 생리식염수 | 시계 1 (신장) | 몇 시간 | 주입하는 동안만 |
| 칼시토닌 | 시계 1 + 3 | 몇 시간 | 48시간 (수용체 하향조절) |
| 졸레드론산 | 시계 3 (뼈) | 2–4일 | 약 4주 |
| 데노수맙 | 시계 3 (뼈) | 4–10일 | 약 4주, 신기능 무관 |
| 글루코코르티코이드 | 시계 2 (+3) | 2–4일 | 칼시트리올 기전에서만 |
| 항암치료 | 입력 자체를 제거 | 몇 주 | 유일하게 계속 좋아짐 |
칼시토닌 + 비스포스포네이트라는 지침 조합은 더하기 화학이 아니라 두 시계 사이의 계주(relay) 입니다. 모델이 그 인계 구간을 그대로 재현합니다 (note C):
| 치료 후 시간 | 식염수 | 식염수+ZA | 식염수+CT+ZA | 칼시토닌 몫 |
|---|---|---|---|---|
| 6 h | 3.350 | 3.307 | 3.120 | 0.188 |
| 12 h | 3.218 | 3.114 | 2.946 | 0.167 |
| 48 h | 3.228 | 2.898 | 2.831 | 0.067 |
| 96 h | 3.215 | 2.728 | 2.703 | 0.025 |
| 7 d | 3.233 | 2.641 | 2.634 | 0.007 |
같은 구간에서 칼시토닌 수용체 가용성 R_CT는 1.00 → 0.51 (12 h) → 0.26 (24 h) →
0.11 (48 h) 로 떨어졌다가 7일째 0.45로 회복합니다. 이득은 전부 첫 48시간에 쓰이고,
그 48시간이 바로 비스포스포네이트가 아직 듣지 않는 구간입니다. 이 상보성은 맞춘 것이
아닙니다 — CT_KOUT은 칼시토닌 반응 지속시간에서, ZOL_KUP은 비스포스포네이트 발현
시간에서 각각 독립적으로 정했습니다.
총 칼슘을 고정해 놓고 나머지(용적·AQP2·증상·GFR·뼈·부갑상선)를 전부 평형시킨 뒤 정상상태 요중 칼슘을 읽으면, 곡선은 포화하는 게 아니라 꺾여 내려옵니다 (note A):
| 고정한 Ca | 요중 Ca | GFR | ECF 용적 | FE_Ca | 요량 |
|---|---|---|---|---|---|
| 2.40 | 5.20 | 180.0 | 1.000 | 2.01% | 2.01 L/일 |
| 2.80 | 16.80 | 179.1 | 0.995 | 5.60% | 1.82 |
| 3.00 | 22.40 | 177.7 | 0.988 | 7.05% | 1.52 |
| 3.20 | 27.16 | 175.2 | 0.976 | 8.17% | 1.15 |
| 3.40 | 13.04 | 120.1 | 0.838 | 5.43% | 0.84 |
| 3.60 | 2.22 | 60.8 | 0.733 | 1.75% | 0.60 |
| 3.80 | 0.00 | 28.2 | 0.653 | 0 | 0.49 |
3.2에서 3.6 사이에 신장은 배출 능력의 92%를 잃습니다. 그리고 그 원인이 바로 배출하려던 그 칼슘입니다 (CaSR → AQP2 하향조절 → 신성 요붕증, 그리고 오심·구토 → ECF 수축 → 근위세뇨관 Na⁺/Ca²⁺ 재흡수 항진 + GFR 저하 → 여과 부하 감소 → 칼슘 상승).
조절되지 않는 칼슘 유입(J_EXO)을 쓸어 올리며 정상상태가 사라지는 지점을 이분법으로
찾으면 안장-마디 분기(saddle-node) 가 나옵니다 (note B):
| 조건 | 분기점 (mmol/일) | 그때 Ca | 무엇에 걸려 무너지나 |
|---|---|---|---|
| 기저 (지지요법 없음) | 23.07 | 3.008 | 순환 허탈 |
| + 식염수 1.2 L/일 | 40.90 | 3.549 | 신 배출 용량 |
| + 식염수 2.4 L/일 | 51.43 | 4.964 | 신 배출 용량 |
| 원위 Tm +60% (PTHrP의 신장 작용만) | 10.92 | 3.020 | 순환 허탈 |
| 원위 Tm +60% + 식염수 2.4 L/일 | 39.75 | 4.972 | 신 배출 용량 |
| 티아지드 | 20.04 | 3.011 | 순환 허탈 |
| AQP2 억제 제거 | 25.62 | 3.073 | 신 배출 용량 |
| 오심·구토 팔 제거 | 31.84 | 3.202 | 신 배출 용량 |
| 잔존 신단위 60% / 30% | 12.89 / 7.25 | 2.777 / 2.651 | 순환 허탈 |
이 표에서 네 가지를 읽을 수 있습니다.
- 식염수는 1.2 L/일만으로 허용 유입을 거의 두 배로 늘리고, 실패 양식 자체를 바꿉니다 — 순환 허탈이 아니라 단순한 신 배출 용량 초과로. 수액이 왜 1차 치료인지가 이 문장입니다.
- PTHrP의 신장 작용만으로도 (모델 어디에도 파골세포를 한 개도 더 넣지 않고) 분기점이 23.07 → 10.92로 절반 아래로 떨어집니다. 체액성 종양은 골용해성 종양의 절반도 안 되는 골흡수량으로 같은 환자를 넘어뜨립니다.
- 티아지드는 분기점의 13% 를 깎습니다 — "피하라"의 정량 버전.
- 농축능 장애를 지우면 분기점이 11% 움직이고, 오심·구토 팔을 지우면 38% 움직입니다. 이 고리에서 지배적인 것은 신장 쪽이 아니라 위장관 쪽이라는 뜻이고, 이것은 검증 가능한 예측이며 통상적인 설명이 강조하는 바와 다릅니다.
치료 직전(day 12), 총 칼슘이 똑같은데 생리는 전혀 다릅니다 (note D):
| 체액성 (PTHrP) | 국소 골용해성 | 이소성 PTH | 칼시트리올 | |
|---|---|---|---|---|
| 총 칼슘 | 3.550 | 3.550 | 3.547 | 2.835 |
| 이온화 칼슘 | 1.716 | 1.715 | 1.713 | 1.404 |
| PTH (pmol/L) | 1.20 | 1.20 | 10.99 | 2.44 |
| PTHrP (pmol/L) | 14.28 | 0.50 | 0.50 | 0.50 |
| 1,25D (pmol/L) | 89 | 64 | 113 | 415 |
| 인 (mmol/L) | 0.86 | 1.38 | 0.91 | 1.19 |
| 골흡수 J_res | 20.5 | 34.3 | 18.6 | 13.3 |
| 장 흡수 J_gut | 0.26 | −0.58 | 1.09 | 12.73 |
| 요중 칼슘 U_Ca | 5.9 | 17.0 | 5.2 | 16.9 |
| FE_Ca | 2.2% | 6.5% | 2.1% | 5.6% |
| 원위 칼슘 Tm | 43.3 | 26.3 | 41.4 | 30.4 |
| CTX (ng/mL) | 0.897 | 1.502 | 0.817 | 0.582 |
골흡수 행과 요배설 행을 나란히 읽어 보십시오. 골용해성 환자는 같은 칼슘에 도달하기 위해 체액성 환자보다 67% 더 많은 뼈를 녹여야 합니다 — PTHrP가 수도꼭지를 여는 동시에 배수구를 잠갔기 때문입니다 (원위 Tm 26.3 → 43.3, +65%). 리간드 하나가 같은 방향으로 두 가지 일을 합니다.
장 팔이 다른 세 칸에서 무엇을 하고 있는지도 보십시오: 0.26, −0.58, 1.09 mmol/일. 식욕부진과 억제된 1,25D가 이미 이 팔을 닫아버렸고, 골수종에서는 아예 음수입니다. "칼슘 보충제를 끊어라"는 거의 항상 옳고 거의 항상 부족합니다.
치료 결과는 추가 가정 없이 따라 나옵니다:
| 시나리오 | 최저 Ca | Ca<2.70 유지 일수 | CTX 최저 |
|---|---|---|---|
| 체액성 + 식염수 + ZA (s05) | 2.635 | 15.0 | 0.153 |
| 골용해성 + 식염수 + ZA (s11) | 2.402 | 25.9 | 0.302 |
| 칼시트리올 + ZA (s12) | 2.599 | 28.5 | 0.109 |
| 칼시트리올 + 프레드니솔론 (s13) | 2.411 | 22.4 | 0.382 |
마지막 두 행이 핵심입니다. 칼시트리올 기전에서 프레드니솔론은 졸레드론산보다 더 깊고 더 빠른 최저치에 도달하면서(2.411 vs 2.599, 정상화까지 0.85일 vs 1.50일) 골흡수는 세 배 덜 억제합니다(CTX 0.382 vs 0.109). 두 약은 서로 다른 팔에서 일하고 있고, 모델은 어느 팔이 병을 지고 있는지 말할 수 있습니다.
맞춘 것이 아닙니다. day 12의 순 유입(J_res − J_form + J_gut)은 체액성 13.18, 골용해성 24.23 mmol/일 — 같은 혈장 칼슘에 대해 거의 두 배 차이입니다. 그리고 완전히 따로 계산한 note B의 분기점은 체액성 신장 표현형에서 10.92, PTHrP가 손대지 않은 신장에서 23.07 입니다. 두 기전 모두 자기 자신의 분기점을 비슷한 상대 폭으로 막 넘어선 자리에 있습니다. 그래서 이렇게 다른 두 생리가 같은 숫자에 도착합니다. 두 계산은 파라미터를 공유하지만, 어느 쪽도 다른 쪽에 맞춰 조정되지 않았습니다.
졸레드론산은 혈류가 파골세포로 배달하지 않습니다. 하이드록시아파타이트에 결합한 뒤 골흡수가 일어나는 동안 파골세포에 세포내이입되므로, 흡수 속도는 약이 없애려는 바로 그 플럭스에 비례합니다:
uptake = ZOL_KUP × (뼈 표면의 약) × (J_res / J_res_normal)
한 항에서 세 가지 관찰이 동시에 나옵니다 (note E/F):
| 투여 시점 J_res | 세포내 최고 농도 | 최고 도달일 | CTX 최저/기저 |
|---|---|---|---|
| 8.0 (정상 회전) | 0.418 | 8.40 | 0.190 |
| 20.5 (체액성) | 0.610 | 6.15 | 0.170 |
| 34.3 (골용해성) | 0.725 | 4.85 | 0.201 |
뼈가 아플수록 약이 더 빨리, 더 많이 스스로 실립니다. 그리고 흡수가 멈추면 배달도
멈추고, 표면 잔량은 기질에 매장되며(ZOL_BURY), 세포내 약물은 15일 반감기로 사라집니다 —
그래서 한 번 투여로 4주가 갑니다. 용량-반응이 위쪽에서 납작해지는 것도 같은 항 때문입니다:
| 용량 | 최저 Ca | 30일 중 정상칼슘 일수 |
|---|---|---|
| 1 mg | 2.763 | 0.0 |
| 2 mg | 2.686 | 5.6 |
| 4 mg | 2.635 | 15.0 |
| 8 mg | 2.604 | 23.2 |
| 16 mg | 2.587 | 26.4 |
4 → 8 mg는 8.2일을 사고, 8 → 16 mg는 3.2일밖에 못 삽니다. 천장을 만드는 것은 표적 점유가 아니라 배달 단계입니다.
잔존 신단위 30%에서 출발하면 같은 종양이 3.55가 아니라 4.40 mmol/L로 나타납니다 (분기점이 23.1 → 7.25로 내려갔으므로). 그 배경 위에서:
| 최저 Ca | 정상칼슘 일수 | 결과 | |
|---|---|---|---|
| 졸레드론산 (s09) | 2.967 | 0.0 | day 46에 붕괴 경계 도달 |
| 데노수맙 (s10) | 2.621 | 7.7 | 붕괴 없음 |
데노수맙에는 처분 경로 어디에도 신장 단계가 없고, 스스로를 배달하는 데 골흡수를 필요로 하지도 않습니다. 이 파일에서 두 항흡수제가 결정적으로 갈리는 유일한 비교이며, 모델은 가정된 효력 차이가 아니라 처분 구조에서 그 결론에 도달합니다.
"푸로세미드는 해롭다"가 아닙니다. 더 구체적인 이야기입니다.
| 시나리오 | 최저 Ca | 정상칼슘 일수 | 결과 |
|---|---|---|---|
| s05 충분한 식염수 + ZA | 2.635 | 15.0 | — |
| s15 충분한 식염수 + ZA + 푸로세미드 | 2.254 | 19.2 | 이득 |
| s23 불충분한 식염수(1.2 L/일) + ZA | 2.642 | 14.0 | — |
| s16 불충분한 식염수 + ZA + 푸로세미드 | 3.453 | 0.0 | day 2.6 붕괴 경계 |
푸로세미드는 실제로 칼슘 배설을 늘리고 모델도 그렇게 말합니다. 동시에, 아래에서 용적을 채워주지 않으면 회복 가능한 병을 사흘 안에 순환 허탈로 바꿔 놓을 수 있습니다. 둘 중 어느 쪽이 되는지를 정하는 변수는 이뇨제가 아닙니다. 1970년 Suki의 원 보고는 철저한 용적 보충과 함께 이루어졌고, 2008년 LeGrand의 체계적 검토는 그렇지 않은 관행을 비판했습니다 — 모델은 두 문헌을 모순 없이 같은 표 안에 놓습니다.
"진짜 등가값" = 알부민 40 g/L에서 같은 이온화 칼슘을 주는 총 칼슘.
| 알부민 | 총 칼슘 | 이온화 | Payne 보정 | 진짜 등가값 | Payne 오차 |
|---|---|---|---|---|---|
| 35 | 3.55 | 1.879 | 3.65 | 3.76 | −0.11 |
| 30 | 3.55 | 1.997 | 3.75 | 3.99 | −0.24 |
| 25 | 3.55 | 2.130 | 3.85 | 4.26 | −0.41 |
| 22 | 3.55 | 2.219 | 3.91 | 4.44 | −0.53 |
| 25 | 2.40 | 1.440 | 2.70 | 2.88 | −0.18 |
오차는 상수 오프셋이 아니라 저알부민혈증과 칼슘 값 양쪽에 따라 커집니다. 이 보정식이 가장 못 미더운 환자가 바로 이 보정식이 만들어진 이유였던 환자입니다. 시나리오 18은 동역학 버전입니다 — 알부민 22 g/L 환자에게 같은 종양이 생기면 총 칼슘은 더 낮게(3.42 vs 3.55), 이온화 칼슘은 훨씬 더 높게(2.06 vs 1.72) 나타납니다.
pH도 같은 규모로 작용합니다: 총 칼슘 3.00, 알부민 40에서 이온화 칼슘은 pH 7.30에 1.563, pH 7.50에 1.437. 따라서 구토성 알칼리증은 악순환 안에 들어 있는 진짜 음성 되먹임 팔 입니다 — 용적을 파괴하면서 이온화 칼슘은 보호합니다.
| 파일 | 내용 |
|---|---|
mah_qsp_model.dot · .svg · .png |
기계론적 지도 — 140 노드, 18 클러스터, 222 엣지 |
mah_mrgsolve_model.R |
50-ODE mrgsolve 모델, 205 파라미터, 23개 시나리오, 보정 노트 A–J |
mah_shiny_app.R |
10-탭 Shiny 대시보드 (천장 곡선·분기점 계산 포함) |
mah_references.md |
105편, 전 PMID를 NCBI E-utilities로 확인 |
| # | 시나리오 | 무엇을 보는가 |
|---|---|---|
| 1 | 건강 대조군 (90일) | 정확한 정상상태 (모든 변수 0.2% 미만 드리프트) |
| 2 | 체액성 무치료 | 자연 경과 → 붕괴 경계 |
| 3 | + 식염수 단독 | 빠른 팔 하나만으로 어디까지 가는가 |
| 4 | + 식염수 + 칼시토닌 | 첫 48시간, 그리고 빈용성 |
| 5 | + 식염수 + 졸레드론산 4 mg | 표준 |
| 6 | + 칼시토닌 + 졸레드론산 | 지침 3제 — 계주 구간 |
| 7 | 졸레드론산 단독 (식염수 없이) | 느린 팔만으로는 왜 부족한가 |
| 8 | + 식염수 + 데노수맙 | 더 깊고 더 오래 |
| 9 / 10 | 신부전(30%)에서 ZA vs 데노수맙 | 약 선택이 뒤집히는 지점 |
| 11 | 골용해성 + ZA (칼슘 일치) | THESIS 3의 핵심 비교 |
| 12 / 13 | 림프종에서 ZA vs 프레드니솔론 | 어느 팔이 병을 지고 있는가 |
| 14 | 이소성 PTH + 시나칼셋 + ZA | PTH 의존성 기전 |
| 15 / 16 / 23 | 푸로세미드 × 용적 보충 정도 | 이뇨제 논쟁의 해소 |
| 17 | 혈액투석 (저칼슘 투석액) | 뼈보다 빠르게 빼는 유일한 수단 |
| 18 | 알부민 22 g/L | 총 칼슘과 이온화 칼슘의 괴리 |
| 19 / 20 | 부동 · 티아지드 | 침전 요인의 정량 |
| 21 | + 유효한 항암치료 | 완충이 아니라 입력 제거 |
| 22 | 졸레드론산 q28d 2회 | 재투여 간격 |
- 모든 ODE를 Python/scipy(LSODA, rtol 1e-7) 로 독립 구현하여 보정했습니다.
- 그 다음 R 파일의
$ODE블록을 기계적으로 추출해g++ -Wall로 컴파일(경고 없이 통과, 50개 도함수 전부 대입 확인)하고 4차 Runge-Kutta, 스텝 0.002일로 적분했습니다. - 네 개 시나리오 × 60일에 걸쳐 두 구현은 모든 상태변수와 모든 파생량에서 0.0005% 이내로 일치합니다.
- 건강 대조군은 구성상 정확한 정상상태입니다 —
KL_BASE,KO_BASE,PTG_SYN,K1A,D25_IN,MG_FE,ORAL_H2O,GUT_SEC를 각각 도함수 0이 되도록 해석적으로 풀어서 넣었지, 맞춘 것이 아닙니다. 90일 동안 총 칼슘 +0.004%, PTH +0.10%, 1,25D −0.18%, 파골세포 수 −0.03%, 자유 RANKL −0.07%, CTX −0.03% 드리프트. - 재현되는 기준값: 총 칼슘 2.400 · 이온화 1.1995 · 여과 부하 259 mmol/일 · 요중 칼슘 5.21 mmol/일 · FE_Ca 2.01% · GFR 180 L/일 · 요량 2.02 L/일 · 골 회전 양방향 8.0 mmol/일 · 순 장 흡수 5.22 mmol/일 · 분절별 재흡수 근위 65% / TAL 25% / 원위 8%.
감염·혈전·과응고·진통·골전이 기하학·골격 관련 사건(SRE)·턱뼈 괴사·급성기 반응·심방세동· 디곡신 상호작용·사망 모델이 없습니다. "붕괴 경계"(ECF 결손 38% 초과 또는 총 칼슘 5.0 mmol/L 초과)는 보정 영역의 가장자리이지 사망 예측이 아닙니다. 종양은 저항성도 이질성도 전이 동역학도 없는 로지스틱 구획 하나이고, 시나리오 21의 항암치료는 "입력이 제거되었다"로 읽어야지 특정 요법의 시뮬레이션이 아닙니다. 뼈는 단일 리모델링 구획이라 소주골과 피질골을 구분하지 않으므로 골절 위험에 대해 할 말이 없습니다. 모든 파라미터는 개인차 없는 집단 점추정치입니다 — 이 모델은 기전과 그 순서를 재현하지, 개별 환자를 재현하지 않습니다.
문헌으로 뒷받침되지 않은 모델링 선택은 mah_references.md §17에
따로 적어 두었습니다. 그 중 가장 불확실하면서 결과에 가장 크게 영향을 주는 것은
구토 팔(VOM_MAX) 입니다 — note B에 따르면 분기점은 농축능 장애(11%)보다 이 팔(38%)에
훨씬 민감하므로, 측정할 가치가 가장 큰 파라미터이자 모델이 가장 자신 없는 파라미터입니다.
# 모델
source("mah_mrgsolve_model.R")
out <- run_scenario("s05") # 체액성 + 식염수 + 졸레드론산
plot(mah, out, "Ca_tot,iCa,J_res,U_Ca,CTX,vol")
# 대시보드
shiny::runApp("mah_shiny_app.R")# 지도 다시 그리기
dot -Tsvg mah_qsp_model.dot -o mah_qsp_model.svg
dot -Tpng -Gdpi=150 -Gsize="80,50" mah_qsp_model.dot -o mah_qsp_model.png
⚠️ 본 모델은 교육 및 연구 목적의 QSP 모델입니다. 공개 문헌을 바탕으로 구성되었으나 독립적으로 검증·인증되지 않았으며, 실제 임상 의사결정·처방·규제 제출에 직접 사용해서는 안 됩니다.