Object-Oriented Implementation of Dose Escalation Designs
Overview
Implements a wide range of dose escalation designs. The focus is on model-based designs, ranging from classical and modern continual reassessment methods (CRMs) based on dose-limiting toxicity endpoints to dual-endpoint designs taking into account a biomarker/efficacy outcome. Bayesian inference is performed via MCMC sampling in JAGS, and it is easy to setup a new design with custom JAGS code. However, it is also possible to implement 3+3 designs for comparison or models with non-Bayesian estimation. The whole package is written in a modular form in the S4 class system, making it very flexible for adaptation to new models, escalation or stopping rules. Further details are presented in Sabanés Bové et al. (2019) doi:10.18637/jss.v089.i10.
New Features
- Added
StoppingDoseStabilized, a stopping rule that stops when the current next best dose has been administered to a prespecified number of consecutive cohorts. - Additional plotting options for one-dimensional
nextBestmethods are available, including log and equally spaced factor dose scales, lollipop layers instead of bars, and dose-grid or regularly spaced axis ticks.
Enhancements
HierarchicalModelnow compiles exchangeable normal priors in non-centered form for JAGS, including analytic Cholesky transformations for correlated parameter pairs. Non-centered hypermean nodes use a reservedz_mu_prefix so pool names such as"x"and"x_z"cannot generate conflicting JAGS nodes. In thecomparison_deciderexample, this increased the minimum effective sample size across monitored parameters from approximately 450 to 47,000 for 100,000 retained draws, without increasing runtime.
Show all changes in 2.3.0Hide the rest of the changes in 2.3.0
HierarchicalModelandHierarchicalDesignnow support exchangeable"eta"pools forTwoDrugsComboarms. Each combination arm retains its own interaction parameter while sharing hyperparameters, and singleton interaction pools are supported so that the same hierarchical marginal prior can be used with one combination arm.
Miscellaneous
- Next-dose probability plots now identify the increment, safety, and overdose rules and the recommended dose in legends. It is also possible to use a triangle to mark the highest safe dose. Multi-panel plots put overdose information first and align their plotting areas.
- Extended
GeneralSimulationsSummarywith atrue_mtdslot and enhanced summary plotting accordingly. - Extended
SimulationsandSimulationsSummaryclasses with overdose probability at the final selected dose. - Simulation trajectory plots now use stepped blue ribbons to show the minimum and maximum and interquartile ranges alongside the median, with a legend and patient-axis ticks inferred from cohort boundaries. Patient tick positions can also be supplied with the new
patient_scaleargument. - Minor grid lines are suppressed when dose-grid or factor axes are used, making next-dose and simulation plots easier to read.
- The dependency
ggplot2package now needs to have minimum version 3.2.0 instead of previously 3.0.0. This should not be a practical restriction because version 3.2.0 was already released in 2019.
Bug Fixes
examine()forDADesignnow identifies the current cohort incohortand lists one cohort index per additional hypothetical DLT inDLT_cohorts. The numericDLTsearly_1column has been replaced byDLT_scenario, with values"no additional DLTs","late DLTs", and"early DLTs".DLT_timeincludes the onset time of each hypothetical DLT relative to its cohort start and is aligned withDLT_cohorts. Documentation now explains the scenario allocations and thatDLTscan include patients from earlier cohorts. The method also correctly counts eligible patients, evaluates both timing scenarios without duplicate allocations, and advances using only the current cohort's zero-DLT recommendation. These fixes remove replacement-length warnings and correct the no-increment stopping logic.
From NEWS.md in the release
Install
Health
- OK13 OK2026-10-14
- ERROR10 OK, 3 ERROR2026-10-05
- OK13 OK2026-08-05
- NOTE12 OK, 1 NOTE2026-08-01
- ERROR8 OK, 1 NOTE, 4 ERROR2026-07-27
Show 5 earlier changesHide 5 earlier changes
- NOTE11 OK, 2 NOTE2026-07-16
- OK13 OK2026-06-09
- ERROR12 OK, 1 ERROR2026-06-08
- OK12 OK2026-04-25
- NOTE11 OK, 3 NOTE2026-03-10
Documentation
- Help pages
- 433 (78 internal)includes a package overview page
- Examples that run
- 100%226 run in a plain check · 1 only when donttest examples are enabled (R CMD check --as-cran)
- Exported functions with examples
- 72%
- Documented parameters
- 98%
- Return-value docs
- 29%
- Help pages citing references
- 3% with a bibliography file
- Backfill cohorts HTML
- Combination designs
- Comparison with the decider package HTML
- crmPack: Object-oriented implementation of CRM designs
- Describing `crmPack` Objects HTML
- Model-based Dose Escalation Designs in R with crmPack (JSS manuscript)
- Ordinal CRM HTML
- Parallel computing with extensions HTML
- Rolling CRM Example HTML
- Simulation study example HTML
Show 6 moreHide 6 vignettes
Downloads
Repository
- PRs merged (all time)
- 93%
- Median days to close, 50 most recently updated closed issues
- 115
- Median days to close, 50 most recently updated closed PRs
- 0
Stars over time
Forks over time
Releases over time
Issues over time
PRs over time
Commits over time
Commit identities over time
14 development-tooling and community-health practices detected across 6 families in the upstream repository
Checks run against github.com/openpharma/crmpack on 2026-10-18.
GitHub Pages site last deployed 2026-09-24
pkgdown site last built 2026-09-24, before release 2.3.0 (2026-10-11)
Show all practicesHide 2 practices
This repository shows signs of AI coding tools.
- GitHub Copilotfirst seen 2026-07-06Pull request: opened by its own account
- Codexfirst seen 2026-09-18Seen in the repository: .codex
Dependencies
Installing crmPack adds 68 packages (36 with compiled code, 50 MB of source tarballs). Heaviest: stringi 11 MB, ggplot2 6.0 MB, bslib 5.6 MB.
Code & Tests
People & History
Maintainer since 1.0.2 (2022), previously Giuseppe Palermo (0.2.9 to 1.0.0) and Daniel Sabanes Bove (0.1.5 to 0.2.7)
Pick two releases to compare their code metrics.
- 2.3.0Latest2026-10-11 · current release · diff ↗ ·
added 3 exports
.DefaultStoppingDoseStabilized, .StoppingDoseStabilized, StoppingDoseStabilized - 2.2.12026-07-27 · diff ↗
- 2.2.02026-07-05 · diff ↗ ·
added 69 exports
.ArmCondition, .ArmConditionAll, .ArmConditionAny, .ArmConditionList, .ArmFinishedCondition, .ArmMinDoseCondition, .ComboSimulations, .ComboSimulationsSummary, .DataCombo, .DefaultArmCondition, .DefaultArmConditionAll, .DefaultArmConditionAny, .DefaultArmConditionList, .DefaultArmFinishedCondition, .DefaultArmMinDoseCondition, .DefaultComboSimulations, .DefaultComboSimulationsSummary, .DefaultDataCombo, .DefaultDesignArm, .DefaultDesignCombo, .DefaultHierarchicalData, .DefaultHierarchicalDesign, .DefaultHierarchicalModel, .DefaultHierarchicalSamples, .DefaultHierarchicalSimulations, .DefaultHierarchicalSimulationsSummary, .DefaultIncrementsComboCartesian, .DefaultIncrementsComboOneDrugOnly, .DefaultNoArmCondition, .DefaultTITELogisticLogNormalSub and 39 more - RR 4.6.0 released · 2026-04-24
- 2.1.02026-01-30 · diff ↗ ·
added 37 exports
.Backfill, .CohortSizeRandom, .DefaultBackfill, .DefaultCohortSizeRandom, .DefaultOpening, .DefaultOpeningAll, .DefaultOpeningAny, .DefaultOpeningList, .DefaultOpeningMinCohorts, .DefaultOpeningMinDose, .DefaultOpeningMinResponses, .DefaultOpeningNone, .DefaultRecruitment, .DefaultRecruitmentRatio, .DefaultRecruitmentUnlimited, .Opening, .OpeningAll, .OpeningAny, .OpeningList, .OpeningMinCohorts, .OpeningMinDose, .OpeningMinResponses, .OpeningNone, .Recruitment, .RecruitmentRatio, .RecruitmentUnlimited, Backfill, CohortSizeRandom, OpeningAll, OpeningAny and 7 more - 2.0.22026-01-08 · diff ↗
- 2.0.12025-12-04 · diff ↗
- 2.0.02025-11-29 · diff ↗ ·
removed 17 exports
%~%, .AllModels, .IncrementMin, .IncrementsNumDoseLevels, .Model, .StoppingGstarCIRatio, ExpEff, IncrementMin, IncrementsNumDoseLevels, StoppingGstarCIRatio, biomLevel, getMinInfBeta, matchTolerance, multiplot, sampleSize, setSeed, writeModeladded 283 exports
%>%, .CohortSizeOrdinal, .CrmPackClass, .DADesign, .DALogisticLogNormal, .DASimulations, .DataDA, .DataGrouped, .DataOrdinal, .DefaultCohortSize, .DefaultCohortSizeConst, .DefaultCohortSizeDLT, .DefaultCohortSizeMax, .DefaultCohortSizeMin, .DefaultCohortSizeOrdinal, .DefaultCohortSizeParts, .DefaultCohortSizeRange, .DefaultDADesign, .DefaultDALogisticLogNormal, .DefaultDASimulations, .DefaultData, .DefaultDataDA, .DefaultDataDual, .DefaultDataGeneral, .DefaultDataGrouped, .DefaultDataMixture, .DefaultDataOrdinal, .DefaultDataParts, .DefaultDesign, .DefaultDesignGrouped and 253 more - RR 4.5.0 released · 2025-04-11
- 1.0.62024-06-26 · diff ↗
- RR 4.4.0 released · 2024-04-24
- 1.0.52024-02-04 · diff ↗
- 1.0.42024-01-23 · diff ↗
- RR 4.3.0 released · 2023-04-21
- 1.0.32022-09-03 · diff ↗ ·
added 78 exports
.AllModels, .CohortSizeConst, .CohortSizeDLT, .CohortSizeMax, .CohortSizeMin, .CohortSizeParts, .CohortSizeRange, .Data, .DataDual, .DataMixture, .DataParts, .Design, .DualDesign, .DualEndpoint, .DualEndpointBeta, .DualEndpointEmax, .DualEndpointRW, .DualResponsesDesign, .DualResponsesSamplesDesign, .DualSimulations, .DualSimulationsSummary, .EffFlexi, .Effloglog, .GeneralData, .GeneralModel, .GeneralSimulations, .GeneralSimulationsSummary, .IncrementMin, .IncrementsNumDoseLevels, .IncrementsRelative and 48 more - 1.0.22022-04-25 · diff ↗
Show 21 earlier eventsHide 21 earlier events
- RR 4.2.0 released · 2022-04-22
- RR 4.1.0 released · 2021-05-18
- RR 4.0.0 released · 2020-04-24
- 1.0.02019-06-13 · diff ↗
- RR 3.6.0 released · 2019-04-26
- 0.2.9
- RR 3.5.0 released · 2018-04-23
- 0.2.72018-03-13 · diff ↗
- unarchivedReturned to CRAN2018-02-16
- 0.2.6
- archivedRemoved from CRAN2018-01-27it depends on the archived 'BayesLogit'
- 0.2.1
- RR 3.4.0 released · 2017-04-21
- 0.2.02016-07-16 · diff ↗
- RR 3.3.0 released · 2016-05-03
- 0.1.9
- 0.1.82016-02-17 · diff ↗
- 0.1.72016-01-26 · diff ↗
- 0.1.62015-12-22 · diff ↗ ·
removed 2 exports
StoppingGstarsamplesCIRatio, StoppingTDsamplesCIRatioadded 3 exports
DataMixture, LogisticLogNormalMixture, StoppingHighestDose - 0.1.52015-11-12
- RR 3.2.0 released · 2015-04-16
Package metadata
- First published
- 2015-11-12
- Total releases
- 23 / 11 yrs
- License
- GPL (>= 2) OSI
- Minimum R
- ≥ 4.1.0
- Download size
- 7.8 MB
Cite
Cite this package
Run in R for the authors' entry:
citation("crmPack")The package provides a citation file, so citation() returns the authors' own entry.
It points to 10.18637/jss.v089.i10.
Cite the R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
From data release v2026-10-21, which the citation names so these numbers can be found later. More on citing and the projects behind them.