posologyr

Model-Informed Precision Dosing (MIPD) with R

https://github.com/levenc/posologyr

Science Score: 39.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.5%) to scientific vocabulary

Keywords

bayesian model-informed-precision-dosing pharmacokinetics precision-medicine therapeutic-drug-monitoring
Last synced: 6 months ago · JSON representation

Repository

Model-Informed Precision Dosing (MIPD) with R

Basic Info
Statistics
  • Stars: 15
  • Watchers: 2
  • Forks: 1
  • Open Issues: 2
  • Releases: 10
Topics
bayesian model-informed-precision-dosing pharmacokinetics precision-medicine therapeutic-drug-monitoring
Created almost 5 years ago · Last pushed 8 months ago
Metadata Files
Readme Changelog License

README.Rmd

---
output: github_document
---



```{r, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.path = "man/figures/README-",
  out.width = "100%"
)
set.seed(1)
```

# posologyr [](https://github.com/levenc/posologyr/)


[![R-CMD-check](https://github.com/levenc/posologyr/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/levenc/posologyr/actions/workflows/R-CMD-check.yaml)
[![CRAN status](https://www.r-pkg.org/badges/version/posologyr)](https://CRAN.R-project.org/package=posologyr)


## Overview

Personalize drug regimens using individual pharmacokinetic (PK) and pharmacokinetic-pharmacodynamic (PK-PD) profiles. By combining therapeutic drug monitoring (TDM) data with a population model, `posologyr` offers accurate posterior estimates and helps compute optimal individualized dosing regimens.

Key dosage optimization functions in `posologyr` include:

+ `poso_dose_conc()` estimates the optimal dose to achieve a target concentration at any given time
+ `poso_dose_auc()` estimates the dose needed to reach a target area under the concentration-time curve (AUC)
+ `poso_time_cmin()` estimates the time required to reach a target trough concentration (Cmin)
+ `poso_inter_cmin()` estimates the optimal dosing interval to consistently achieve a target Cmin 

Individual PK profiles can be estimated with or without TDM data:

+ `poso_estim_map()` computes Maximum A Posteriori Bayesian Estimates (MAP-BE) of individual PK parameters using TDM results
+ `poso_simu_pop()` samples from the the prior distributions of PK parameters

`posologyr` leverages the simulation capabilities of the
[rxode2](https://github.com/nlmixr2/rxode2) package.

## Installation

You can install the released version of `posologyr` from
[CRAN](https://CRAN.R-project.org) with:

``` {r eval = FALSE}
install.packages("posologyr")
``` 

You can install the development version of `posologyr` from 
[GitHub](https://github.com/) with:

```{r eval = FALSE}
# install.packages("remotes")
remotes::install_github("levenc/posologyr")
```

## Bayesian dosing example

To determine the optimal dose of gentamicin for a patient with `posologyr`, you will need:

1. A prior PK model, written in `rxode2` mini-language

In this example, a gentamicin PK from the literature 

```{r}
mod_gentamicin_Xuan2003 <- function() {
  ini({
    THETA_Cl  = 0.047
    THETA_V   = 0.28
    THETA_k12 = 0.092
    THETA_k21 = 0.071
    ETA_Cl  ~ 0.084
    ETA_V   ~ 0.003
    ETA_k12 ~ 0.398
    ETA_k21 ~ 0.342
    add_sd  <- 0.230
    prop_sd <- 0.237
  })
  model({
    TVl   = THETA_Cl*ClCr
    TVV   = THETA_V*WT
    TVk12 = THETA_k12
    TVk21 = THETA_k21
    
    Cl    = TVl*exp(ETA_Cl)
    V     = TVV*exp(ETA_V)
    k12   = TVk12*exp(ETA_k12)
    k21   = TVk21 *exp(ETA_k21)
    
    ke    = Cl/V
    Cp    = centr/V
    
    d/dt(centr)  = - ke*centr - k12*centr + k21*periph
    d/dt(periph) =            + k12*centr - k21*periph

    Cp ~ add(add_sd) + prop(prop_sd) + combined1()
  })
}
```

2. A table of the patient's TDM data, in a format similar to the data for NONMEM

```{r}
patient_data <- data.frame(ID=1,
                           TIME=c(0.0,1.0,11.0),
                           DV=c(NA,9,2),
                           AMT=c(180,0,0),
                           DUR=c(0.5,NA,NA),
                           EVID=c(1,0,0),
                           ClCr=38,
                           WT=63)
patient_data
```


### Individual PK profile

With these two elements, you can estimate and plot and the individual concentrations over time.

```{r}
library("posologyr")
```

```{r map_plot}
#| fig.alt: >
#|   Plot of the individual profile
patient_map <- poso_estim_map(patient_data,mod_gentamicin_Xuan2003)
plot(patient_map$model,Cc)
```

### Dose optimization

We will optimize the gentamicin dosage for this patient to meet two criteria:

+ A peak concentration of 12 mg/L, 30 minutes after a 30-minute infusion.
+ A trough concentration of less than 0.5 mg/L.

The time required to reach a residual concentration of 0.5 mg/L can be estimated as follows:

```{r}
poso_time_cmin(patient_data,mod_gentamicin_Xuan2003,tdm=TRUE,
               target_cmin = 0.5)
```

The dose required to achieve our target concentration can then be determined for an infusion at H48.

```{r}
poso_dose_conc(patient_data,mod_gentamicin_Xuan2003,tdm=TRUE,
               target_conc = 12,duration=0.5,time_dose = 48,time_c = 49)
```

In conclusion a dose of 240 mg 48 h after the first injection would be appropriate to meet our 2 criteria.

More examples can be found at: https://levenc.github.io/posologyr/

## Performance of the MAP-BE algorithm in posologyr
`posologyr` showed comparable performance to NONMEM MAP estimation with option `MAXEVAL=0`:

* Pharmaceutics **2022**, 14(2), 442; [doi:10.3390/pharmaceutics14020442](https://doi.org/10.3390/pharmaceutics14020442)
* Supporting data: [https://github.com/levenc/posologyr-pharmaceutics](https://github.com/levenc/posologyr-pharmaceutics)

Owner

  • Name: Cyril Leven
  • Login: levenc
  • Kind: user
  • Location: Brest, France

GitHub Events

Total
  • Issues event: 7
  • Watch event: 2
  • Issue comment event: 8
  • Push event: 5
  • Pull request event: 4
Last Year
  • Issues event: 7
  • Watch event: 2
  • Issue comment event: 8
  • Push event: 5
  • Pull request event: 4

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 3
  • Total pull requests: 1
  • Average time to close issues: 3 months
  • Average time to close pull requests: 4 days
  • Total issue authors: 3
  • Total pull request authors: 1
  • Average comments per issue: 2.33
  • Average comments per pull request: 1.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 2
  • Pull requests: 1
  • Average time to close issues: 7 days
  • Average time to close pull requests: 4 days
  • Issue authors: 2
  • Pull request authors: 1
  • Average comments per issue: 1.0
  • Average comments per pull request: 1.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • levenc (3)
  • mattfidler (2)
  • crgfn (1)
  • andreasmeid (1)
  • mat194 (1)
  • Theodore-Loach (1)
  • Martin-Umpierrez (1)
Pull Request Authors
  • mattfidler (4)
Top Labels
Issue Labels
bug (2) enhancement (2) documentation (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • cran 288 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 6
  • Total maintainers: 1
cran.r-project.org: posologyr

Individual Dose Optimization using Population Pharmacokinetics

  • Versions: 6
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 288 Last month
Rankings
Stargazers count: 17.5%
Forks count: 21.5%
Dependent packages count: 28.3%
Average: 29.8%
Dependent repos count: 36.9%
Downloads: 44.8%
Maintainers (1)
Last synced: 6 months ago

Dependencies

DESCRIPTION cran
  • R >= 3.5.0 depends
  • data.table * imports
  • mvtnorm * imports
  • rxode2 * imports
  • stats * imports
  • ggplot2 * suggests
  • knitr * suggests
  • lotri * suggests
  • magrittr * suggests
  • rmarkdown * suggests
  • testthat >= 3.0.0 suggests
  • tidyr * suggests
.github/workflows/R-CMD-check.yaml actions
  • actions/checkout v3 composite
  • r-lib/actions/check-r-package v2 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite