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.