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.colwidth
s 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()
div
s 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.