## 1. PKPDsim 패키지 개요
**PKPDsim**은 약동학(Pharmacokinetics, PK) 및 약력학(Pharmacodynamics, PD) 모델링과 시뮬레이션을 위한 R 패키지로, 차등방정식(ODE) 및 ADVAN 스타일 분석적 방정식을 지원합니다.
- **버전**: 1.4.1 (2025년 4월 17일 기준)
- **주요 기능**: 약물 투여 레지멘 생성, 약동학 시뮬레이션, 공변량 반영, 잔차 변동성 분석, NONMEM/nlmixr 호환
- **의존성**: R (>= 4.0.0), Rcpp, data.table, jsonlite 등
- **URL**: [GitHub](https://github.com/InsightRX/PKPDsim), [InsightRX 문서](https://insightrx.github.io/PKPDsim/)
---
## 2. 대한민국 임상 현실에서의 항암제 투약 스케줄링
대한민국에서 항암제 투약 스케줄링은 암의 종류, 병기, 환자 상태, 부작용 관리, 그리고 건강보험심사평가원(HIRA) 및 대한항암요법연구회(KCSG) 가이드라인을 기반으로 진행됩니다. 주요 단계는 다음과 같습니다:
1. **환자 평가 및 진단**: 암 유형, 병기(TNM 분류), 유전자 돌연변이(예: EGFR, KRAS), 체중, 간/신기능, 동반질환 확인.
2. **치료 계획 수립**: 항암제 선택(세포독성, 표적, 면역항암제), 투여 경로(IV, 경구), 투여량(mg/m²), 주기(예: 3주) 설정.
3. **시뮬레이션 및 최적화**: PK-PD 모델링으로 약물 농도와 효과 예측(여기서 PKPDsim 활용 가능).
4. **투여 및 모니터링**: 병원 내 투여 후 부작용(오심, 골수 억제) 모니터링, 혈액검사로 상태 점검.
5. **효과 평가 및 조정**: 6-8주 후 CT/PET-CT로 종양 반응 평가, 필요 시 약제/용량 조정.
**특수성**:
- HIRA의 "항암화학요법 투여기준"에 따라 1군/2군 약제 사용 제한.
- 대형 병원(예: 세브란스, 국립암센터)에서 표준화된 프로토콜 사용, 중소 병원은 경험적 접근.
- 환자 순응도 및 데이터 부족으로 맞춤형 치료의 임상 적용 제한.
---
## 3. PKPDsim의 주요 기능 및 활용 가능성
PKPDsim은 항암제 투약 스케줄링과 약동학 분석에 다음과 같은 기능을 제공합니다:
- **레지멘 생성**: `new_regimen`으로 투여량, 간격, 횟수, 주입 시간 정의.
- **공변량 처리**: `new_covariate`, `covariates_table_to_list`로 체중, 간기능, 유전자형 등 반영.
- **시뮬레이션**: `sim`으로 약물 농도 예측, `calc_auc_analytic`으로 AUC 계산.
- **변동성 분석**: `add_ruv`, `cv_to_omega`로 잔차 및 개체 간 변동성 모델링.
- **모델 호환성**: `pkpdsim_to_nlmixr`, `translate_ode`로 NONMEM/RxODE와 통합.
---
## 4. 종양학, 생물정보학, 종양내과에서의 PKPDsim 적용 시나리오
### 시나리오 1: 종양학 연구자 - 도세탁셀 투여 스케줄 최적화
- **목표**: 유방암 환자군에 도세탁셀(100 mg/m², 3주 간격) 투여 시 골수 억제 부작용 최소화.
- **활용**: 체중(65 kg), 간기능(AST 30 IU/L)을 공변량으로 반영하여 약물 농도 및 AUC 예측.
- **결과**: 주입 시간을 3시간으로 설정 시 Cmax가 독성 임계값(5 mg/L) 미만으로 유지됨을 확인.
- **코드 예제**:
```R
regimen <- new_regimen(amt = 100 * 1.7, interval = 21 * 24, n = 3, type = "infusion", t_inf = 3)
covariates <- new_covariate(value = list(WT = 65, AST = 30), implementation = "interpolate")
parameters <- list(CL = 33 * (65/70) * (30/40), V = 80, Q = 15, V2 = 250)
mod <- new_ode_model("pk_2cmt_iv")
sim_data <- sim(ode = mod, parameters = parameters, regimen = regimen, covariates = covariates, t_obs = seq(0, 504, by = 4))
auc_data <- calc_auc_analytic(f = "2cmt_iv_infusion", regimen = regimen, parameters = parameters)
```
### 시나리오 2: 생물정보학자 - 파클리탁셀 개체 간 변동성 분석
- **목표**: 폐암 환자 100명의 CYP2C8 유전자형에 따른 파클리탁셀 클리어런스 차이 분석.
- **활용**: `covariates_table_to_list`로 환자 데이터 전처리, `sim`으로 다중 환자 시뮬레이션.
- **결과**: CYP2C8 MUT 환자의 클리어런스가 20% 감소, 투여량 조정 권고.
- **코드 예제**:
```R
patient_data <- data.frame(id = 1:100, WT = rnorm(100, 70, 10), CYP2C8 = sample(c("WT", "MUT"), 100, replace = TRUE))
cov_list <- covenants_table_to_list(covariates_table = patient_data, covenants_implementation = list(WT = "interpolate", CYP2C8 = "locf"))
parameters <- list(CL = 25 * (patient_data$WT/70) * ifelse(patient_data$CYP2C8 == "WT", 1, 0.8), V = 60, Q = 10, V2 = 200)
omega <- c(0.3, 0.1, 0.3)
regimen <- new_regimen(amt = 200, interval = 24, n = 7, type = "infusion", t_inf = 3)
mod <- new_ode_model("pk_2cmt_iv")
sim_data <- sim(ode = mod, parameters = parameters, omega = omega, regimen = regimen, covariates = cov_list, n_ind = 100)
```
### 시나리오 3: 종양내과 의사 - 환자 맞춤형 빈크리스틴 투여
- **목표**: 림프종 환자에게 빈크리스틴(1.5 mg/m², 7일 간격) 투여 시 신경독성 최소화.
- **활용**: `new_covariate`로 CrCL(90 mL/min) 반영, `apply_duration_scale`로 주입 시간 조정.
- **결과**: 주입 시간을 1시간에서 2시간으로 연장 시 신경독성 위험 감소.
- **코드 예제**:
```R
regimen <- new_regimen(amt = 1.5 * 1.7, interval = 7 * 24, n = 4, type = "infusion", t_inf = 1)
covariates <- new_covariate(value = list(CrCL = 90), implementation = Replacelocf")
parameters <- list(CL = 20 * (90/100), V = 50, Q = 8, V2 = 150)
mod <- new_ode_model("pk_2cmt_iv")
sim_data <- sim(ode = mod, parameters = parameters, regimen = regimen, covariates = covariates, t_obs = seq(0, 168, by = 4))
```
---
## 5. 대안 패키지 특징
|패키지|특징|
|---|---|
|**pkpdsim**|입문자 친화, 가볍고 빠름|
|**PySB**|시스템 생물학 모델링|
|**Tellurium**|SBML 지원|
|**SimBiology (MATLAB)**|산업 표준 수준|
|**nlmixr2 (R)**|population PK 최강|
---