openpharma / crmPack

Object-Oriented Implementation of CRM Designs
https://openpharma.github.io/crmPack/
20 stars 10 forks source link

Improve examples that use a rigid design #679

Open Puzzled-Face opened 1 year ago

Puzzled-Face commented 1 year ago

The Trial Sanity Checks vignette investigates a Design used in many example files throughout crmPack. The design is rigid. Here is the output from running examine on the design:

   dose DLTs nextDose  stop increment
1     3    0        5 FALSE        67
2     3    1        1 FALSE       -67
3     5    0       10 FALSE       100
4     5    1        3 FALSE       -40
5    10    0       20 FALSE       100
6    10    1       10 FALSE         0
7    20    0       25 FALSE        25
8    20    1       20 FALSE         0
9    25    0       25 FALSE         0
10   25    1       25 FALSE         0
11   25    0       25 FALSE         0
12   25    1       25 FALSE         0
13   25    0       25 FALSE         0
14   25    1       25 FALSE         0
15   25    0       25 FALSE         0
16   25    1       25 FALSE         0
17   25    0       25 FALSE         0
18   25    1       25 FALSE         0
19   25    0       25 FALSE         0
20   25    1       25 FALSE         0
21   25    0       25 FALSE         0
22   25    1       25 FALSE         0
23   25    0       25 FALSE         0
24   25    1       25 FALSE         0
25   25    0       25 FALSE         0
26   25    1       25 FALSE         0
27   25    0       25 FALSE         0
28   25    1       25 FALSE         0
29   25    0       25 FALSE         0
30   25    1       25 FALSE         0
31   25    0       25 FALSE         0
32   25    1       25 FALSE         0
33   25    0       25 FALSE         0
34   25    1       25 FALSE         0
35   25    0       25 FALSE         0
36   25    1       25 FALSE         0
37   25    0       25 FALSE         0
38   25    1       25 FALSE         0
39   25    0       25  TRUE         0
40   25    1       25  TRUE         0

The rigidity is caused by the Increments rule preventing escalation from 25 to 40. Fixing this issue is straightforward, but after this is done, the design remains rigid at 50. This time, the problem is that the prior is relatively informative and pessimistic at this point.

The futility stopping rule is also rather limiting. The maximum number of patients permitted is low relative to the number of cohorts needed to traverse the dose grid.

It would be better to update the documentation so that a more reasonable trial design is used to illustrate the methodology.

To do:

Puzzled-Face commented 1 year ago

This table attempts to identify the files that are potentially affected:

Example Dose grid Increment Model Futility
Design-class-DADesign   Y Y  
Design-class-Design Y Y Y Y
Design-class-DesignGrouped Y Y Y Y
Design-class-DualDesign Y Y    
design-method-examine-DADesign   Y Y  
design-method-examine-Design   Y Y Y
design-method-examine-DualDesign   Y    
design-method-simulate-DADesign   Y Y  
design-method-simulate-Design Y   Y  
design-method-simulate-Design   Y   Y
design-method-simulate-DualDesign Y      
helpers-jags_get_data     Y  
helpers-jags_get_model_inits     Y  
mcmc     Y  
Model-class-DALogisticLogNormal     Y  
Model-class-LogisticNormal Y      
Model-method-dose     Y  
Model-method-prob     Y  
Rules-class-StoppingAny       Y
Rules-class-StoppingList       Y
Rules-class-StoppingAll       Y
Rules-class-StoppingSpecificDose       Y
Rules-class-StoppingMinPatients       Y
Rules-class-IncrementsMin   Y    
Rules-class-IncrementsRelative   Y    
Rules-method-maxDose-IncrementsMin   Y    
Rules-method-maxDose-IncrementsRelative   Y    
Rules-method-nextBest-NextBestDualEndpoint   Y    
Rules-method-nextBest-NextBestMTD   Y Y  
Rules-method-nextBest-NextBestNCRM   Y Y  
Rules-method-nextBest-NextBestNCRM-DataParts     Y  
Rules-method-nextBest-NextBestNCRMLoss   Y Y  
Rules-method-nextBest-NextBestProbMTDLTE   Y Y  
Rules-method-size-CohortSizeConst   Y    
Rules-method-size-CohortSizeDLT   Y Y  
Rules-method-size-CohortSizeMax   Y Y  
Rules-method-size-CohortSizeMin   Y Y  
Rules-method-size-CohortSizeParts     Y  
Rules-method-size-CohortSizeRange   Y    
Rules-method-stopTrial-StoppingAll   Y    
Rules-method-stopTrial-StoppingAny   Y    
Rules-method-stopTrial-StoppingCohortsNearDose   Y    
Rules-method-stopTrial-StoppingHighestDose   Y    
Rules-method-stopTrial-StoppingList   Y    
Rules-method-stopTrial-StoppingLowestDoseHSRBeta   Y Y  
Rules-method-stopTrial-StoppingMinCohorts   Y    
Rules-method-stopTrial-StoppingMinPatients   Y    
Rules-method-stopTrial-StoppingMTDCV   Y Y  
Rules-method-stopTrial-StoppingMTDdistribution   Y    
Sample-methods-approximate     Y  
Sample-methods-fit     Y  
Sample-methods-get     Y  
Sample-methods-plot     Y  
Samples-mthod-fitPEM-DALogisticLogNormal     Y  
Simulations-method-plot-DualSimulations Y Y    
Simulations-method-plot-DualSimulationsSummary Y Y    
Simulations-method-plot-SimulationsSummary Y Y Y Y
Simulations-method-show-DualSimulationsSummary   Y    
Simulations-method-show-ReportLabels   Y Y  
Simulations-method-show-SimulationsSummary Y Y   Y
Simulations-method-stopTrial-StoppingMissingDose   Y    
Simulations-method-stopTrial-StoppingPatientsNearDose   Y    
Simulations-method-stopTrial-StoppingTargetBiomarkers   Y    
Simulations-method-stopTrial-StoppingTargetProb   Y    
Simulations-method-summary Y Y Y Y
Simulations-method-summary-DualSimulations Y Y    
Simulations-method-windowLength-SafetyWindowConst   Y    
Simulations-method-windowLength-SafetyWindowSize   Y    

A Y in the Dose grid column indicates that the file contains c(1, 3, 5, 10, 15, 20, 25, 40, 50, 80, 100). Similarly, Increment - c(1, 0.33); Model - ref_dose = 56 and Futility - StoppingMinPatients(nPatients = 20).