# The easiest way to get crmPack is to install it from cran:
install.packages("crmPack")crmPack: Dose Escalation Trial Design, Simulation and Analysis
A validated, open source, free-of-charge R software package
crmPack is a comprehensive validated, open source, free-of-charge R software package for:
- Dose escalation trial planning
- Dose escalation trial design evaluation and simulation
- Dose escalation trial data analysis
Functional Range
- Dose escalation trial design, simulation and analysis
- Binary, time-to-event, dual efficacy/safety, ordinal outcomes
- Backfill cohorts
- >15 different models
- >14 different recommendation options
- >19 different stopping rules
- >9 cohort size rules
- >9 increment rules
- Reporting functionality (using knitr)
Installation
Installation from CRAN
Installation of the Developer Version
To use a feature from the development version, you can install the development version of crmPack from GitHub.
# install.packages("pak")
pak::pak("openpharma/crmPack")Learn To Use crmPack
We recommend two ways to learn how to use crmPack:
- Use the crmPack vignettes
- Book a training: www.rpact.com/services
Vignettes
- The open access vignettes are hosted at crmPack.org/vignettes
- They are also hosted on the GitHub pages website at openpharma.github.io/crmPack/
Online Help
The online documentation (help files) can be opened here: openpharma.github.io/crmPack/latest-tag/reference
Inline Help
# display the manual of the package
crmPackHelp()Getting Started
library(crmPack)
# display the manual of the package
crmPackHelp()
# Define the dose grid.
empty_data <- Data(doseGrid = c(1, 3, 5, 10, 15, 20, 25, 40, 50, 80, 100))
# Initialize the CRM model.
model <- LogisticLogNormal(
mean = c(-0.85, 1),
cov = matrix(c(1, -0.5, -0.5, 1), nrow = 2),
ref_dose = 56
)
# Choose the rule for selecting the next dose.
my_next_best <- NextBestNCRM(
target = c(0.2, 0.35),
overdose = c(0.35, 1),
max_overdose_prob = 0.25
)
# Choose the rule for the cohort size.
my_size_1 <- CohortSizeRange(
intervals = c(0, 30),
cohort_size = c(1, 3)
)
my_size_2 <- CohortSizeDLT(
intervals = c(0, 1),
cohort_size = c(1, 3)
)
my_size <- maxSize(my_size_1, my_size_2)
# Choose the rule for stopping.
my_stopping_1 <- StoppingMinCohorts(nCohorts = 3)
my_stopping_2 <- StoppingTargetProb(
target = c(0.2, 0.35),
prob = 0.5
)
my_stopping_3 <- StoppingMinPatients(nPatients = 20)
my_stopping <- (my_stopping_1 & my_stopping_2) | my_stopping_3
# Choose the rule for dose increments.
my_increments <- IncrementsRelative(
intervals = c(0, 20),
increments = c(1, 0.33)
)
# Initialize the design.
design <- Design(
model = model,
nextBest = my_next_best,
stopping = my_stopping,
increments = my_increments,
cohort_size = my_size,
data = empty_data,
startingDose = 3
)
# Define the true function.
my_truth <- function(dose) {
alpha0 <- 7
alpha1 <- 8
ref_dose <- 56
stand_log_dose <- log(dose / ref_dose)
plogis(alpha0 + alpha1 * stand_log_dose)
}
# Run the simulation on the desired design.
# We only generate 1 trial outcome here for illustration, for the actual study
# this should be increased of course.
options <- McmcOptions(
burnin = 100,
step = 1,
samples = 2000
)
time <- system.time(my_sims <- simulate(design,
args = NULL,
truth = my_truth,
nsim = 1,
seed = 819,
mcmcOptions = options,
parallel = FALSE
))[3]User Concept
Workflow
The typical dose escalation trial design simulation workflow is as follows:
- Define the dose grid using the
Data()function - Initialize the model using one of the model functions, e.g.,
LogisticLogNormal() - Choose the rules for
- next dose recommendation using one of the
NextBestfunctions, e.g.,NextBestNCRM() - cohort size using one of the
CohortSizefunctions, e.g.,CohortSizeRange() - stopping using one of the
Stoppingfunctions, e.g.,StoppingMinCohorts() - dose increments using one of the
Incrementsfunctions, e.g.,IncrementsRelative()
- next dose recommendation using one of the
- Initialize the design using the
Design()function - Define the true dose-response relationship as a function
- Run the simulation using the
simulate()function
RPACT Connect
Connecting you to insights, downloads, and premium support now also for crmPack: connect.rpact.com
Validation
Please contact us to learn how to use crmPack on FDA/GxP-compliant validated corporate computer systems and how to get a copy of the formal validation documentation that is customized and licensed for exclusive use by your company, e.g., to fulfill regulatory requirements.
About
crmPack is a comprehensive validated1 R package for dose escalation trial design, simulation and analysis. It has been developed as an open source collaboration since 2014. Please see here for the full list of authors, copyright holders and how to cite the package correctly.
Since September 2025, the crmPack package is maintained and supported by RPACT.
For more information please see the benefits of the Service Level Agreement
- RPACT is a company which offers
- enterprise software development services
- technical support for the crmPack package
- consultancy and user training for clinical research using R
- validated software solutions and R package development for clinical research
For more information please visit www.rpact.com/services
Contact
- For general requests please send an email to
- Please send your support request to
- Or use our contact information at www.rpact.com/contact
Bugs and Issues
Please use the github bug report form to submit bug descriptions and issues in a systematic way: github.com/openpharma/crmPack/issues
Footnotes
The
crmPackvalidation documentation is available exclusively for our RPACT customers and supporting companies. For more information please see the Service Level Agreement↩︎
