- The minimal risk weighting strategy has been added to
gs_design_rd()andgs_power_rd()for risk difference design (#611, #614, thanks to @LittleBeannie). - The
sequential_pval()function has been added to calculate the sequential p-value for a AHR group sequential design (#605, thanks to @LittleBeannie).
- The text summary of a stratified design now reports the correct enrollment duration and hazard ratios (#617, #619, thanks to @jdblischak).
- The
gs_design_ahr()function has been updated to allow outputting spending time (#602, thanks to @LittleBeannie).
- Documentation has been migrated to roxygen2 7.3.3 for improved maintainability and consistency (#601, thanks to @jdblischak).
- An example demonstrating how to update a stratified design at the time of analysis has been added to the
gs_update_ahr()function documentation (#608, thanks to @LittleBeannie).
- Additional developer tests of
gs_design_ahr()have been added (#604, thanks to @LittleBeannie).
- The vignette discussing the futility boundary design is finalized (#583, thanks to @LittleBeannie)
- An example calculating expected events for multiple strata is added (#597, thanks to @LittleBeannie)
- The documentation of common parameters is unified by
@inheritparams(#598, thanks to @LittleBeannie) - A contributing guide with overview of package architecture is added (#596, thanks to @jdblischak)
- The S3 classes are re-factored (#584, thanks to @jdblischak)
- The input parameters are not displayed when printing the objects (#586, thanks to @jdblischak)
text_summary()supports design objects with spending functions specified as character strings (#587, thanks to @yihui).- The attribute assignment
uninteger_is_fromis fixed into_integer()(#591, thanks to @jdblischak) text_summary()is updated to support fixed designs fromgs_design_ahr()(#592, thanks to @jdblischak)
- The
gs_power_wlr()function now includes anh1_spendingargument, allowing users to specify a spending under the alternative hypothesis (#565, thanks to @LittleBeannie). - The following functions now support
info_scaleargument:fixed_design_ahr(),fixed_design_fh(),fixed_design_mb(), andfixed_design_rd()(#571, thanks to @LittleBeannie). - Functions for fixed designs with integer sample sizes now return the average HR in their output, providing a more complete summary of the design characteristics. (#572, thanks to @LittleBeannie).
- The documentation for
gs_design_npe()andgs_power_npe()has been consolidated into a single topic for improved clarity and easier navigation. (#567, thanks to @LittleBeannie). - The package codebase has been updated to use the native R pipe (
|>) exclusively, removing themagrittrdependency and aligning with modern R practices. (#577, thanks to @jdblischak).
- The spending of the WLR design has been corrected. The default spending of a WLR design is information fraction. (#557, thanks to @LittleBeannie).
- A new function,
gs_cp_npe(), is now available for calculating simple conditional power under NPH. A vignette has been published on the pkgdown website (#510, #539, #545, thanks to @LittleBeannie). - A new design summary function
gs_bound_summary()is available with similar output structure asgsDesign::gsBoundSummary()and supporting for multiple alpha (#468, #522, #537, thanks to @jdblischak). - Textual summary of AHR designs are available via the
text_summary()(#526, thanks to @LittleBeannie).
- The integer event is rounded in IAs and rounded up in FA as defaults in
to_integer()(#483, thanks to @LittleBeannie). - The integer sample size is rounded to the nearest multiple of randomization ratio + 1 when
round_up_final = TRUE(#488, thanks to @LittleBeannie).. - The updated design can be derived with the input of events per analysis per interval (#499, thanks to @LittleBeannie).
- Bound functions and spending functions can be provided through their names (character strings) now,
e.g.,
gs_design_ahr(..., upper = "gs_spending_bound", upar = list(sf = "sfLDOF", ...))(#509, thanks to @yihui). - The
footnoteargument ofas_gt()can take the valueFALSEto disable footnotes (#514, thanks to @yihui). - Optimized the functions
expected_accural(),expected_time(),gs_design_ahr(),gs_design_combo(),gs_design_npe(),gs_design_wlr(),pw_info(),ppwe(),s2pe(), andgs_bound()(#528, thanks to @yihui). - Weights of a WLR design functions can be provided as string now (#533, thanks to @LittleBeannie).
- Correct the statistical information of WLR-integer designs in
to_integer()(#478, thanks to @LittleBeannie). - Correct the calculation
info_fracings_design_wlr()wheninfo_scale = "h0_info"(#485, #486, thanks to @LittleBeannie). - Add the
h1_spendingargument togs_power_ahr()(#518, thanks to @LittleBeannie)
- Add the developer tests of
gs_cp_npe()(#519, thanks to @shiyuskaya)
- Fix the bug of
gs_design_rd()wheninfo_scale = "h0_h1_info"(#402, thanks to @LittleBeannie). - Fix the bug of
gs_spending_combo()to enable HSD spending function (#444, thanks to @LittleBeannie). - Fix the bug of
fixed_design_maxcombo()regarding the upper bounds (#445, thanks to @elong0527). - Fix the bug of
gs_design_wlr()when the design is driven by information fraction only (#446, thanks to @LittleBeannie). - Fix the bug of
pw_info()when there are many piecewise HRs (#460, thanks to @LittleBeannie).
-
The
gs_update_ahr()function (test version) is updated to- Enable unchanged futility bounds when it is fixed at the original design (#408, thanks to @LittleBeannie).
- Allow boundary updates when only certain interim analysis data is available (#436, thanks to @LittleBeannie).
- Allow boundary updates when alpha changes by keeping the same
info_scaleas the original design (#470, @LittleBeannie).
-
Rounding of integer design is updated (#488, #484, #486, thanks to @LittleBeannie).
-
Integer design (i.e., integer sample size and events) is updated to ensure exact integer sample size and events (#452, #460, thanks to @LittleBeannie and @yihui).
-
Change the information fraction displayed at the summary-gt table from under H1 to H0 for logrank tests (#439, thanks to @LittleBeannie).
-
Add the sample size as the output of
ahr()andpw_info()(#427, #433, thanks to @LittleBeannie).
- Enable passing named vector of
col_decimalsandanalysis_decimalstosummary.gs_design()(#403, #431, @jdblischak).
- Add robust check if
loweris equivalent togs_b(#413, thanks to @jdblischak ) - The
summary(),as_gt()as_rtf(), andto_integer()functions are refactored (#448, #449, #450, #465, #461, thanks to @yihui). - Remove the
full_alphaargument fromas_rtf.gs_design()(#458, thanks to @yihui). - Other coding practice improvement worth mentioning (#409, #412, #429, #437, #440, #447, #453, #464, #467, $475, thanks to @yihui, @nanxstats, and @jdblischak).
- Update the documentation of
gs_b()(#415, @jdblischak)
- More developer tests of
gs_power_ahr()are added (#420, @LittleBeannie). - More developer tests of
summary()are added (#422, #426, thanks to @yuliasidi, @jdblischak and @LittleBeannie). - Independent tests of
ahr_blinded()are added (#435, thanks to @DMuriuki). - More developer tests of
to_integer()are added (#476, thanks to @LittleBeannie).
- The
gs_update_ahr()function is now available for efficacy and futility boundary update based on blinded estimation of treatment effect (#370).
- Fix the accrual parameters bugs in
gs_design_wlr()depending on npsurvSS (#344, #356). - Fix
gs_design_ahr()to incorporate information fraction driven design when number of analyses >= 4 (#358).
- Zero failure rate in some but not all intervals is acceptable as input (#360).
- Study with duration > 100 units are executable when event accrual is slow (#368).
- A new vignette introducing how to do the boundary update is available (#278, #364, #366).
- A new vignette bridging gsDesign2 to the 6 test types of gsDesign is available.
- The pkgdown website is re-organized to providing better view for users (#341).
- Independent testing of
as_gt()is added (#337). - Restructure tests to make them self-contained (#347).
- The
as_rtf()method is now available forfixed_designandgs_designobjects for generating RTF table outputs (#278).
gs_power_wlr()andto_integer()now check and convert integer sample size more rigorously (#322).gs_design_*()now handle exceptions explicitly when all hazard ratio is set to 1 throughout the study (#301).fixed_design_rd()will not generate warnings due to the previous default value change ofh1_spending(#296).
gs_power_ahr()now runs twice as fast by using data.table and other performance optimizations (#295), enhanced by similar improvements ings_info_ahr()andpw_info()(#300).- Enrollment and failure rate input constructors and validators are refactored to check only the format instead of the class. This change reduces the number of warning messages and catches real exceptions as errors properly (#316).
- Nested functions are refactored into reusable internal functions, to improve code rigor, avoid potential scoping pitfalls, and facilitate debugging (#235).
- For fixed designs, the variable names of the table outputs from
to_integer()andsummary()are updated (#292).
- Add a new vignette statistical information under null and alternative hypothesis (#289).
- Improve
define_enroll_rate()anddefine_fail_rate()documentation by adding detailed descriptions and improving code examples (#302). - The function reference page now has dedicated sections for piecewise exponential distributions and computing trial events (#258).
- Use the four trailing dashes convention to standardize code comment section format (#308).
- Tidy up namespace by removing rlang from and adding stats to
Imports(#307, #325). - Qualify namespaces in tests to avoid
library()calls (#332). - Fortify the GitHub Actions workflows by limiting the token usage only when necessary and enabling manual trigger of workflow runs (#326).
- Update GitHub Actions workflows to the latest versions from upstream (#330).
- Split
fixed_design()into a group offixed_design_*()functions for enhanced modularity (#263). gs_design_rd()andgs_power_rd()now have updated options of weighting for stratified design (#276).ppwe()now accepts two argumentsdurationandrateinstead of a data framefail_rate(#254).- Unexport helper functions
gridpts(),h1(), andhupdate()(#253).
- Introduce
define_enroll_rate()anddefine_fail_rate()as new input constructor functions to replace the tibble inputs (#238). - Add a new function
pw_info()which calculates the statistical information under the piecewise model (#262).
- Add a vignette showing the canonical joint distribution of Z-score and B-values under null and alternative hypothesis for the AHR test (#246).
- Refactor
expected_event()to improve computational performance (@jdblischak, #250). - Move the source code of the legacy version from
inst/totests/testthat/as developer tests (#269).
- Add CRAN download counts badge (#215).
- Update documentation of
gs_design_rd()(#220). - Format footnote numbers using decimal notation (#222).
- Split C++ functions into individual
.cppand header files (#224).
- Fix the digits display in
summary()(#231).
- Update the calculation of upper/lower bounds at the final analysis in MaxCombo tests (#217).
- Update the
fixed_design()function in the application of stratified design when using the Lachin and Foulkes method (#211). - Correct the
fixed_design()function in the application ofrmst(#212). - Rename the
info_scaleargument options fromc(0, 1, 2)toc("h0_h1_info", "h0_info", "h1_info")to be more informative and make the default value ("h0_h1_info") clear (#203). - Add missing global functions/variables (#213).
- Fix outdated argument names and use canonical style for text elements in
README.md(#198). - Add a CRAN downloads badge to
README.mdto show the monthly downloads (#216).
- Fix the calculation of the futility bounds in
gs_power_ahr()(#202).
- Move imported dependencies from
SuggeststoImports. - Remove redundant dependencies from
Suggests. - Update the GitHub Actions workflows to their latest versions from upstream.
- Add a rule to
.gitattributesfor GitHub Linguist to keep the repository's language statistics accurate.
- Export functions
gridpts(),h1(),hupdate(), andgs_create_arm()to avoid the use of:::in code examples. - Fix the write path issue by moving the test fixture generation script to
data-raw/which is not included in the package.
First submission to CRAN in March 2023.
- Passes lintr check for the entire package (#150, #151, #171).
- Improve the documentation (#161, #163, #168, #176).
check_fail_rate()when only 1 number infail_rateis > 0 (#132).gs_power_ahr()when study duration is > 48 months (#141).fixed_design()for event-based design (#143).gs_design_combo()when test only applies to part of the analysis (#148).gs_info_rd()for variance calculation (#153).summary()for capitalized first letter in the summary header (#164).
GitHub release in December 2022.
- Merges gsDesign2 v0.2.1 and gsdmvn.
- Updates API to follow the new style guide in
vignette("style"). See the detailed mapping between the old API and new API in #84.
- Supports organized summary tables and gt tables.
- Power/sample size calculation for risk difference.
- Integer sample size support (#116, #125).
- Adds
fixed_design()to implement different methods for power/sample size calculation. - Adds
info_scalearguments togs_design_*()andgs_power_*(). - Adds RMST and milestone methods to fixed design.
expected_accrual()for stratified population.gs_spending_bound()when IA is close to FA (#40).gs_power_bound()when applied in the MaxCombo test (#62).gs_design_npe()for type I error (#59).
- Adds and re-organizes vignettes.
GitHub release in August 2022.
- The release before merging with
Merck/gsdmvn.
GitHub release in May 2022.
- Supports the Biometrical Journal paper "A unified framework for weighted parametric group sequential design" by Keaven M. Anderson, Zifang Guo, Jing Zhao, and Linda Z. Sun.
GitHub release in May 2021.
- Updated AHR vignette to introduce average hazard ratio concept properly.
- Added arbitrary distribution vignette to demonstrate
s2pwe(). - Corrected calculations in
AHR()when using stratified population. - Release for Regulatory/Industry Symposium training.
GitHub release in December 2019.
- Added vignette for
eEvents_df()explaining the methods thoroughly. - Updated
eEvents_df()to simplify output under optionsimple = FALSE.
GitHub release in December 2019.
- Updated
docs/directory to correct the reference materials on the website. - Minor fixes in
eAccrual().
GitHub release in November 2019.
- Moved new simulation functions to the simtrial package
(
simfix(),simfix2simPWSurv(),pMaxCombo()).
GitHub release in November 2019.
- Tried to make
AHR()andsimfix()more compatible with each other. - Improved vignette for group sequential design.
- Added pkgdown website for documentation and vignettes.
- Added support functions for to support approximation using and visualization of the piecewise model.
GitHub release in October 2019.
- Update
AHR()to output trial duration, expected events and average hazard ratio in a tibble. - Vignette AHRvignette demonstrating sample size computations for fixed design under non-proportional hazards assumptions.
- Vignette gsNPH demonstrating sample size computations for group sequential design under non-proportional hazards assumptions.
- Initial implementation of
pMaxCombo()to compute p-value for MaxCombo test; pMaxComboVignette demonstrates this capability.
GitHub release in September 2019.
- Computations based on piecewise constant enrollment and piecewise exponential failure rate.
- Expected event count calculation for each different hazard ratios in
eEvents_df(). - Average hazard ratio computation based on expected event counts in
AHR(). - Vignette demonstrating fixed sample size computation with simulation to verify power.