deploy-shiny.yml CI workflow.dev/shiny-redirect shiny app to redirect
biodosetools-v3 at shinyapps.io to version hosted by
Bundesamt für Strahlenschutz.moduleServer(), as recommended
in {shiny} >= 1.5.0 (see
https://shiny.rstudio.com/articles/modules.html).golem_utils_ui.R and related unit tests to
match {golem} 0.3.x (see
https://github.com/ThinkR-open/golem/commit/61b9063f65006bc9b15dd2f1e535466c45d25424).parse_model_formula(),
list_fitting_formulas(), and help dialogues.solve()
call.gardner_confidence_table data
(deprecated in 585e7b4).get_cov_ZIP_ML() to match expressions on
manuscript, introducing minor calculation optimisation.fit_maxlik_method() by removing unused local
variables and redundant calls.message() to
cli::cli_alert_warning() in fit() function
when switching from glm() to ML optimization.match_names() to return input x,
akin to match.arg() from {base}.mod_estimation_micro_ui().mean and std_err column renaming to
calculate_aberr_table() when type = "case"
depending on new aberr_module parameter.aberr_module validation using
match.arg() in *_aberr_table(),
estimate_*(), prepare_maxlik_count_data(),
fit*() functions.names_from_model_formula() and
parse_model_formula().app_config.R and
test-golem-recommended.R unit tests.load_rmd_report().testServer() unit tests for all
mod_*_server() modules.mod_fitting_*_ui.R modules.as_tibble() in
calculate_aberr_table() for consistency with count
data.cli::cli_alert_info()
call.pi_estimate value in
est_metaphases_frac data frame in
estimate_partial_body_dolphin(), as pointed out by
Gaëtan.match_names() not correctly stopping,
and added unit tests for it.calculate_aberr_table() when
type = "case".est_metaphases_frac data frame to explicitly
return f (1 - pi_est) in
estimate_partial_body_dolphin() (closes #29)..data calls inside {tidyselect}
selections (see
https://www.tidyverse.org/blog/2022/10/tidyselect-1-2-0/).data-raw.model_formula with no intercept in
parse_model_formula(),
names_from_model_formula(),
prepare_maxlik_count_data(),
fit_maxlik_method(), and
mod_estimation_fit_curve_hot_server().golem_utils_server.R.calculate_decision_threshold*() functions and
mentions in UI and server modules, as this will be rewritten from
scratch.calculate_decision_threshold from
_pkgdown.yml.plot_estimated_dose_curve()
function.msm::deltamethod().genome_factor across all functions, help dialogues, and
reports.conf_int in estimate_*() family of
functions.est_full_doses$type in
plot_estimated_dose_curve() function so unused assessments
are not shown in legend.match_names() function to match est_doses list
names when calling plot_estimated_dose_curve().plot_estimated_dose_curve() to automatically
build est_full_doses object from list of dose estimation
results, added parse_conf_int_text() auxiliary
function.estimate_whole_body_delta() when there’s no
aberrations.cov_est in
estimate_partial_dolphin().try() to
ensure convergence (up to 5 tries).estimate_hetero_mixed_poisson()
uses exact delta methods for dose and fraction irradiated, as described
in paper by Pujol et al. (2016) https://doi.org/10.1667/RR14145.1.gamma and gamma_error parsing when
calling estimate_hetero_mixed_poisson() in
mod_estimation_results_server().\uxxxx) in
rlang::as_utf8_character() to avoid “unable to translate to
native encoding” warning on Windows.get_deltamethod_std_err(): auxiliary function to wrap
all msm::deltamethod() calls.calculate_aberr_table() so they match the final output in
Shiny.count-data-IAEA.csv to
count-data-barquinero-1995.csv from Barquinero et
al. (1995) https://doi.org/10.1016/0027-5107(94)00150-4.count-data-rodriguez-2004.csv for total
translocations from Rodriguez et al. (2004) https://doi.org/10.1667/RR3198.calculate_aberr_power() to remove {purrr}
dependency and reduce computation time by 4.message() calls with appropriate
cli::cli_*() calls.fit_glm_method(), as it is otherwise confusing.\sigma to \hat{\sigma} in
fix_count_data_names() and respective tests.*-fitting-results-*.rds instead of
*-fitting-data-*.rds when exporting RDS objects in
mod_fitting_results_server().side-widget-* CSS classes to better style
file download/format buttons.widget_sep_vert() function.sep-widget_* CSS classes in fitting UI
modules.side-widget-* CSS classes in dose estimation
UI modules.shiny::Progress._pkgdown.yml and simplified
extra.css thanks to Bootstrap 5 support in {pkgdown}
2.0.0.Suggests
field in DESCRIPTION file.u-value and
other formatting refinements.biodosetools_version element to Shiny App’s
exported *-fitting-data-YYY-MM-DD.rds files.fit() function allows to optionally select
"glm" or "maxlik" algorithms. If
"glm" if selected, the original tryCatch()
routine will be executed.calculate_aberr_var() function.glm and
glm.nb). Fixes #20, addresses part of #14 as well.fix_count_data_names() function..csv file is not
perfectly formatted.calculate_yield_infimum() where infima
were being calculated for yield estimate only (fixes #26).X for
Ck when k>=10 (fixes #27).fix_count_data_names() to properly correct
Ck>=C10 (related to issue #27).inner_column(), to fix padding of boxes inside
columns.widget_sep(), to insert
div(class = "widget-sep", br()) calls.widget_sep_vert() to insert
div(style = "height: 8px;") calls.names_from_model_formula(), to parse
rhandsontable() Unicode row and column coefficient
names.parse_model_formula() to get raw and TeX formulae from
model_formula.calculate_trans_rate_sigurdson() and
calculate_trans_rate_manual() to calculate translocation
rates.calculate_aberr_table() wrapper, to calculate
aberration tables for count and cases data.init_aberr_table(), to initialise aberration
distribution tables in fitting and estimation server modules.list_fitting_formulas(), to replace global
global_fitting_formulas object.generalise_fit_coeffs() and
generalise_fit_var_cov_mat(), used internally in estimation
functions instead of using general_fit_* as
parameters.get_decision_threshold() function to
calculate_decision_threshold(), and added
calculate_decision_threshold_table() wrapper function.calculate_decision_threshold_*() functions
to remove input argument.get_*() translocation functions to
calculate_*() for better consistency.get_*_dose_curve() functions to
plot_*_dose_curve() for more clarity.get_model_statistics() to
calculate_model_stats().get_fit_*() functions to fit()
and fit_*_method().get_fit_maxlik_method()
function.mod_<calc_type>_<aberration>_*().get_model_statistics() function so that
local get_model_statistics() definition could be removed
from mod_estimate_fit_curve_server() module.<aberration>-<module>-<format>.Rmd report
templates have been merged into
<module>-<format>.Rmd (4 files).correct_negative_vals() to ensure correct dose
estimation when X < Xc in translocations assay.*_at() and *_if() occurrences
by their {dplyr} 1.0.0 equivalents.column(width = X) calls by
col_X() in UI modules.tabitem-container class to tabItem()
page containers for fixed max-width while keeping
responsive UI.col-inner-textinput-* CSS classes for Irradiation
conditions textInput() widgets’ containers.sep-widget-download and
sep-widget-format CSS classes to unify download and format
select buttons into a single widget.dashboard_*() code.utils::citation() support via CITATION
file.C, α, β variables
(and derivatives) by coeff_C, coeff_alpha,
coeff_beta.estimate_partial_dolphin().format = "latex", escape = FALSE parameters in
kable() call.!expr in PDF reports.
See https://github.com/rstudio/rstudio/issues/7545.fix_coeff_names(), to fix coefficient names in
reports.fix_count_data_names(), to fix count/case data column
names in PDF reports.to_title(), to replace
stringr::str_to_title() using base R.calculate_aberr_*() functions. Fixes #8.n() function
call.awesomeCheckbox() and
switchInput() in confounders input.calculate_aberr_power(), which supersedes internal
aberr_calc() function in server modules.calculate_aberr_mean().calculate_aberr_var().calculate_aberr_disp_index().calculate_aberr_u_value().Initial migration of the app into a {golem} R package. This means Biodose Tools is also available as a regular R package in case the user wants to build their own R scripts. This also reduced lots of code redundancies, and made the code a lot more robust.
include_help() for help dialogueshelp_modal_button() function to help build modal
trigger buttons on boxes’ titles.load_rmd_report() function to use in server
downloadHandler().get_genome_fraction() as its own exported
function.tabBox parameters.rlang::.data$ to avoid “no visible binding for
global variable” warnings.bsplus::bs_modal() calls in
output$estimate_results_ui.box/tabBox
headers.include*() functions used on
the app only.widget_label() to widgets.R.inner_column() function.load_rmd_report() on
mod_estimate_results_server() module.dna_content_fractions call on
mod_trans_fraction_to_full_genome_server() module.tabBox on
help_modal_button() widget.rhandsontable()
calls.get_decision_threshold() function
temporarily.inner_column()
anymore.NEWS.md headers so they can be parsed by
{pkgdown}.experiment_select selectInput()
from sidebar. Every assay is listed on the “Aberration assays”
sidebarMenu().dashboard_body().rightUi and leftUi
parameters, as well as skin = "light".shinyBS::bsButton() to
shiny::actionButton() for calling modal dialogues.hot-improved CSS class for
rHandsontableOutput().theming.R to
custom.css.box, awesome-checkbox, and
sidebar submenus CSS styles.theme_button_status() function by proper SASS
to CSS compilation.biodose_style.css.sidebar.scss.col-inner-* CSS classes.sticky-footer CSS class.radiobuttons.All calculations functions previously provided in
inst/app/calcs have been made proper functions on the
package.
calculate_yield() new wrapper of
yield_fun(), R_factor(), and
yield_error_fun().calculate_yield_infimum() function to calculate infima
of yields given a curve.project_yield() merged version of the
project_yield_estimate(),
project_yield_lower(), and
project_yield_upper() functions.get_decision_threshold().get_fit_dose_curve().get_fit_glm_method().get_fit_maxlik_method().get_fit_results().get_model_statistics().prepare_maxlik_count_data().AIC_from_data().correct_boundary().correct_conf_int().correct_negative_vals().correct_yield().get_estimated_dose_curve().protracted_g_function().R_factor().yield_error_fun().yield_fun().estimate_hetero().estimate_partial_dolphin().estimate_whole_body_delta().estimate_whole_body().Unofficial release (wasn’t changed on DESCRIPTION file).
This includes some of the changes discussed with David in Stockholm
(ERPW19).
DESCRIPTION
file.The app is now available as an R package on GitHub (not submitted to CRAN yet).
runApp() for launching Biodose Tools.%>% imported from {magrittr}.bs4MyTabPanel() widget to remove unnecessary
padding on tabCards’ panels.colwidths for detection limits.num_cols for
chromosome tables in translocations modules.button_fit dependency for detection limits
calculation.calcs directory.translations.R for now (until
{shiny-i18n} is implemented).Fg for
translocations’ dose estimation module.Fp -> y when using dicentrics in dose estimation
module.help_colors_dialog for translocations
modules.rhandsontable() tables used in
help dialogues.genome_fraction in variables related
to the genomic conversion factor/fraction of genome hybridised.purrr::map_df()
instead of a nested loops, which is about 10 times faster.σ to \sigma in help
dialogues.side-widget-tall bottom margins.selectInput() next to
Calculate Fitting button for better UX.hot-improved CSS class for better hot tables’
formatting.hot-improved class now.generalEstimateCaseHotTable() module.transChromosomeTable()
and transFractionToFullGenomeCalc() have been moved to
transGeneralModule.R, as they are reused in the dose
estimation module.generalFittingModules.R file.*FittingResults() modules into
generalFittingResults() module.generalEstimateFittingCurveHotTables() and
generalEstimateFittingCurve() modules.globalVariables.R with
global_fitting_formulas list.generalEstimateFittingCurve() module to take into account
used translocation frequency.generalEstimateResults()
module.(X - Xt) for whole-body and
partial-body dose estimation.Xt, yt,
yt_err variables on rhandsontable() for
translocations case data.innerColumn to use inside cards/boxes.widgetLabel() function for labels above widgets
without default label.widgetLabel() function.mySwichInput() function based on
shinyWidgets::switchInput() with sideLabel and
custom status colors.awesomeCheckbox() to
mySwitchInput() in all UI modules.get_model_statistics()
in dose estimation module.bs4MyConditionalSidebarMenuItem() function.bs4TabCard() using renderUI()
and session$ns() to show different tabs depending on user
input.N,
X, y, y_est, DI,
u) in dose estimation module.N, X,
DI, u to avoid broken input issues when
running the deployed app.CONTRIBUTORS.md file.transFittingResults() module for calculations instead of
modifying the value of N in
transFittingHotTable().glm method) on fitting module.maxlik optimization method in fitting
module.get_model_statistics() to translocations
fitting module.topButton() for help button and help
modals on fitting and dose estimation modules..bs4MyTabCard() function with topButton and
noPadding capabilities.*-no-int models until Dolphin can deal with them.rhandsontable() using 100% of the card’s
height.rhandsontables()
divs on Firefox having height = 100% of the
card’s own height.glm_results object issue in
get_model_statistics() function.First public beta for laboratories and research centres.
rHandsontableOutput().bs4TabCard() bug.Version presented in second Team Meeting at Munich.
First draft and proof of concept presented to the RENEB team at Barcelona.