- Major rewrite of
plot_estimated_dose_curve()
function.
- Delta method calculations are now all done via
msm::deltamethod()
.
- Added progress and alert notifications to UI.
- Added {markdown} as suggested dependency.
- Added {cli} as dependency.
- Tweaked references section in {pkgdown} site to only include exported functions organised by topic/usage.
- Use consistently genomic conversion factor or
genome_factor
across all functions, help dialogues, and reports.
- Added R-CMD check GitHub Action.
- Added vignettes.
New features
- Return
conf_int
in estimate_*()
family of functions.
- Parse
est_full_doses$type
in plot_estimated_dose_curve()
function so unused assessments are not shown in legend.
- Added
match_names()
function to match est_doses list names when calling plot_estimated_dose_curve()
.
- Updated
plot_estimated_dose_curve()
to automatically build est_full_doses
object from list of dose estimation results, added parse_conf_int_text()
auxiliary function.
Bug fixes
- Correct dispersion index value on
estimate_whole_body_delta()
when there’s no aberrations.
- Fixed issue in missing count data in DOCX fitting report.
- Removed double calculation of
cov_est
in estimate_partial_dolphin()
.
- Wrapped mixed Poisson model dose estimation in
try()
to ensure convergence (up to 5 tries).
- Mixed Poisson model
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.
- Fixed
gamma
and gamma_error
parsing when calling estimate_hetero_mixed_poisson()
in mod_estimation_results_server()
.
- Wrap unicode characters (
\uxxxx
) in rlang::as_utf8_character()
to avoid “unable to translate to native encoding” warning on Windows.
New functions
get_deltamethod_std_err()
: auxiliary function to wrap all msm::deltamethod()
calls.
Improvements
- Fixed order of output case data columns in
calculate_aberr_table()
so they match the final output in Shiny.
- Renamed
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.
- Added
count-data-rodriguez-2004.csv
for total translocations from Rodriguez et al. (2004) https://doi.org/10.1667/RR3198.
- Updated translocations fitting unit tests to use data from Rodriguez et al. (2004) https://doi.org/10.1667/RR3198.
- Rewrote
calculate_aberr_power()
to remove {purrr} dependency and reduce computation time by 4.
- Replaced
message()
calls with appropriate cli::cli_*()
calls.
- Split quasi-Poisson from automatic fitting in
fit_glm_method()
, as it is otherwise confusing.
- Updated
\sigma
to \hat{\sigma}
in fix_count_data_names()
and respective tests.
- Updated unit tests to test individual values both in dose-effect fitting and dose estimation.
- Use
*-fitting-results-*.rds
instead of *-fitting-data-*.rds
when exporting RDS objects in mod_fitting_results_server()
.
UI Improvements
- Added new
side-widget-*
CSS classes to better style file download/format buttons.
- Added
widget_sep_vert()
function.
- Use new
sep-widget_*
CSS classes in fitting UI modules.
- Updated report help modals text.
- Using new
side-widget-*
CSS classes in dose estimation UI modules.
- Added progress notifications to calculations via
shiny::Progress
.
- Updated
_pkgdown.yml
and simplified extra.css
thanks to Bootstrap 5 support in {pkgdown} 2.0.0.
- Added unit tests for to check code coverage and to validate that the code performs as expected.
- Major revision of the fitting and dose estimation pipelines, introducing new auxiliary functions to reduce duplicated code.
- Major simplification of report rendering process; abandoned HTML output.
- Added custom {pkgdown} theme for more consistent branding.
- Added preliminary citation to README.
- Moved packages required only for reports to
Suggests
field in DESCRIPTION
file.
New features
- Added irradiation conditions input to dose-effect fitting modules.
- Reports include conditional formatting of
u
-value and other formatting refinements.
- Added
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.
Bug fixes
- Fixed unexported
calculate_aberr_var()
function.
- Stopped using weights in fitting algorithms (
glm
and glm.nb
). Fixes #20, addresses part of #14 as well.
- Fixed aggregated count data column parsing in
fix_count_data_names()
function.
- Fixed case data parsing issue when
.csv
file is not perfectly formatted.
- Fixed issue with manual fitting curve input (fixes #23).
- Fixed bug in
calculate_yield_infimum()
where infima were being calculated for yield estimate only (fixes #26).
- Fixed wrong calculation of aberrations
X
for Ck
when k>=10
(fixes #27).
- Fixed
fix_count_data_names()
to properly correct Ck>=C10
(related to issue #27).
- Added “where” to global variables (see https://github.com/r-lib/tidyselect/issues/201).
New functions
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.
Function refactoring
- Refactored
get_decision_threshold()
function to calculate_decision_threshold()
, and added calculate_decision_threshold_table()
wrapper function.
- Refactored
calculate_decision_threshold_*()
functions to remove input
argument.
- Refactored
get_*()
translocation functions to calculate_*()
for better consistency.
- Refactored
get_*_dose_curve()
functions to plot_*_dose_curve()
for more clarity.
- Refactored
get_model_statistics()
to calculate_model_stats()
.
- Refactored
get_fit_*()
functions to fit()
and fit_*_method()
.
Improvements
- Added Oliveira citation on
get_fit_maxlik_method()
function.
- Fixed Gaëtan’s name order in citation and contributors list.
- Updated README and About body text.
- Renamed source R files for better naming consistency.
- Changed structure of modules to
mod_<calc_type>_<aberration>_*()
.
- Generalised
get_model_statistics()
function so that local get_model_statistics()
definition could be removed from mod_estimate_fit_curve_server()
module.
- Multiple (18 files)
<aberration>-<module>-<format>.Rmd
report templates have been merged into <module>-<format>.Rmd
(4 files).
- Use
correct_negative_vals()
to ensure correct dose estimation when X < Xc
in translocations assay.
- Replaced all
*_at()
and *_if()
occurrences by their {dplyr} 1.0.0 equivalents.
UI Improvements
- Replaced
column(width = X)
calls by col_X()
in UI modules.
- Added
tabitem-container
class to tabItem()
page containers for fixed max-width
while keeping responsive UI.
- Added
col-inner-textinput-*
CSS classes for Irradiation conditions textInput()
widgets’ containers.
- Added
sep-widget-download
and sep-widget-format
CSS classes to unify download and format select buttons into a single widget.
- Removed all non-ASCII characters.
- Major overhaul of reports.
- Added “Report bug” button on home screen and cleaned up
dashboard_*()
code.
- Removed dependencies on {stringr} package.
- Initial
utils::citation()
support via CITATION file.
- Minimal version of R bumped to 3.5.0.
- Minimal version of {dplyr} bumped to 1.0.0.
Bug fixes
- Replaced
C
, α
, β
variables (and derivatives) by coeff_C
, coeff_alpha
, coeff_beta
.
- Fixed error in genome_fraction parsing for translocations in
estimate_partial_dolphin()
.
- Fixed count/case data standard error column names replacements.
- Fixed minipage issue when using more than 12 columns in {knitr} tables with column name replacements, by using
format = "latex", escape = FALSE
parameters in kable()
call.
- Suppress YAML warning when using
!expr
in PDF reports. See https://github.com/rstudio/rstudio/issues/7545.
New functions
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.
Reports improvements
- New PDF reports, which are now the default output format.
- Improved HTML reports styling.
- Added explicit M-FISH usage in translocation reports.
- Added assay name in report titles.
Bug fixes
- Count and case data calculations are performed using
calculate_aberr_*()
functions. Fixes #8.
- Fixed missing {dplyr} namespace in
n()
function call.
- Fixed mismatched use of
awesomeCheckbox()
and switchInput()
in confounders input.
New functions
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.
New features
- App is now a {golem} R package.
- Migrated UI from {shinydashboard} to {bs4Dash}.
- Modals are now built with {bsplus} instead of {shinyBS}.
- Functions and internal data are documented using {roxygen2}.
- Added {pkgdown} support to build {biodosetools}’s website automatically.
- All custom theming is done through SASS and CSS instead of R code injection.
New functions
- New
include_help()
for help dialogues
- New
help_modal_button()
function to help build modal trigger buttons on boxes’ titles.
- New
load_rmd_report()
function to use in server downloadHandler()
.
- Moved
get_genome_fraction()
as its own exported function.
Fixes
- Fixed #7. Overestimate error of lambda when dispersion is smaller than 1.
- Fixed missing icon on sidebar.
- Fixes in collapse button paddings.
- Fixed
tabBox
parameters.
- Using
rlang::.data$
to avoid “no visible binding for global variable” warnings.
- Fixed
bsplus::bs_modal()
calls in output$estimate_results_ui
.
- Removed input as parameter in calculation functions.
- Fixed style of help button on
box
/tabBox
headers.
- Updated old “biodosimetry-uab” URLs to “biodosetools-team”.
Improvements
- Stop exporting auxiliary
include*()
functions used on the app only.
- Moved
widget_label()
to widgets.R.
- Refactored
inner_column()
function.
- Refactored UI modules names.
- Refactored server functions and renamed R scripts.
- Updated reports.
- Using
load_rmd_report()
on mod_estimate_results_server()
module.
- Added DNA Content Fractions of Human Chromosomes (IHGSC) data.
- Updated
dna_content_fractions
call on mod_trans_fraction_to_full_genome_server()
module.
- Added support for
tabBox
on help_modal_button()
widget.
- Added indentation to all module
rhandsontable()
calls.
- Stop exporting
get_decision_threshold()
function temporarily.
- “Stains color options” boxes don’t use
inner_column()
anymore.
- Updated
NEWS.md
headers so they can be parsed by {pkgdown}.
UI Improvements
- Removed
experiment_select
selectInput()
from sidebar. Every assay is listed on the “Aberration assays” sidebarMenu()
.
- Loading all UI modules in
dashboard_body()
.
- Navbar now uses
rightUi
and leftUi
parameters, as well as skin = "light"
.
- Switched from
shinyBS::bsButton()
to shiny::actionButton()
for calling modal dialogues.
- New CSS style sheet for {shinydashboard}.
- Deleted old CSS files for {bs4Dash}.
- New fonts CSS stylesheet.
- New CSS stylesheets for fixes of existing classes and definition of custom classes.
- Added
hot-improved
CSS class for rHandsontableOutput()
.
- Moved custom widgets classes from
theming.R
to custom.css
.
- Tweaks in
box
, awesome-checkbox
, and sidebar submenus CSS styles.
- Replaced
theme_button_status()
function by proper SASS to CSS compilation.
- Finished SASS box header colors.
- Using SASS modules to reconstruct
biodose_style.css
.
- Moved treeview-menu style to
sidebar.scss
.
- Added checkboxes SASS style.
- Added missing
col-inner-*
CSS classes.
- Added app version on sidebar footer with custom
sticky-footer
CSS class.
- Switched to a single stylesheet, being everything built by SASS modules.
- Added custom style to
radiobuttons
.
Bug fixes
- Added required {pander} package to generate DOCX reports.
All calculations functions previously provided in inst/app/calcs
have been made proper functions on the package.
New functions
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.
“New” 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).
New features
- Made var-cov matrix optional on dose estimation inputs.
- Fixed calculations to make var-cov matrix optional on dose estimation inputs.
Fixes
- Added additional package dependencies to
DESCRIPTION
file.
- Following the ISO, renamed detection limits to decision threshold.
Changes
- Disabled decision thresholds (for now).
- Hide AIC as a relative quality statistic of the dose estimation.
- Added mean and variance to count data tables in fitting module.
The app is now available as an R package on GitHub (not submitted to CRAN yet).
New functions
runApp()
for launching Biodose Tools.
%>%
imported from {magrittr}.
Fixes
- Fixed variance calculation for count data.
- Provide fallback method for NB2 when using constraint-maxlik-optimization.
New features
- Initial implementation of micronuclei, adding support in UI and server functions.
- Implemented negative binomial fitting calculation for micronuclei count data.
- Initial detection limit implementation for translocations.
- Added DOCX support for dicentrics and translocations.
New functions
- New
bs4MyTabPanel()
widget to remove unnecessary padding on tabCards
’ panels.
Fixes
- Fixed
colwidth
s for detection limits.
- Fixed unnecessary recalculation of
num_cols
for chromosome tables in translocations modules.
- New subdirectory structure for help dialogues.
- Added buttons and example tables in help dialogues.
- Updated documentation link.
Improvements
- Added
button_fit
dependency for detection limits calculation.
- Updated fitting reports (new hot structures & dynamic widths).
- Moved calculation functions from fitting and estimation modules to their own files in a new
calcs
directory.
- Translocations reports are complete now.
Changes
- Disable sourcing
translations.R
for now (until {shiny-i18n} is implemented).
New features
- Added manual input of translocations name.
- Implemented dynamic calculation of hot width for counts, cases, and chromosome data tables.
- Implemented manual input of translocation frequency to be subtracted from the observed yield.
- Started detection limit calculation in fitting module.
- Implemented Delta method for whole-body estimation.
- Added calculation of standard error of
Fg
for translocations’ dose estimation module.
Fixes
- Fixed dependency of the “Calculate fitting” button in the translocation module.
- Fixed calculations for whole and partial body estimations for translocations module.
- Fixed colors on chromosome hot table example.
- Fix genomic conversion factor not being read when doing fitting.
- Fix
Fp -> y
when using dicentrics in dose estimation module.
- Fixed detection limit calculation.
- Fixed dose estimation in detection limits function.
- Corrected correction of FISH to Full genome when inputting manual fitting curve in dose estimation modules.
- Corrected reading of translocations fit curve values in dose estimation module.
Improvements
- Tweaked variable names and order in cases data for translocations dose estimation.
- Updated
help_colors_dialog
for translocations modules.
- New module for auxiliary
rhandsontable()
tables used in help dialogues.
- New help dialogues for translocations modules.
- Consistent use of
genome_fraction
in variables related to the genomic conversion factor/fraction of genome hybridised.
- ggplot2 curve generation is now wrapped inside a function on the dose estimation modules.
- Finished confounders help dialogue.
- New aberration calculation method using
purrr::map_df()
instead of a nested loops, which is about 10 times faster.
- Make clear in translocations dose estimation module that the coefficients are from the full genome.
- Added highly protracted exposure.
- Implemented calculation of detection limits from data.
- Added dose calculation to detection limits section.
- Changed
σ
to \sigma
in help dialogues.
- Added units to result tables.
- Code clean-up on delta method for whole-body dose estimation.
- Updated plot CI text generation on legend to account for new Delta method and for separate whole-body & heterogeneous error method selection.
- CONTRIBUTORS.md is now displayed as a modal.
- Using ORCID for authors when possible.
- Updated institution links in contributors files.
UI Improvements
- Improved
side-widget-tall
bottom margins.
- Moved translocation frequency
selectInput()
next to Calculate Fitting button for better UX.
- New
hot-improved
CSS class for better hot tables’ formatting.
- All hot tables are using
hot-improved
class now.
- New contributors list style and custom CSS style for tables.
- Added experiment/aberration name on tab body title to avoid confusions.
- Improved “About” tab paddings.
- Improve widths of color columns in chromosome tables.
- Narrower color columns in chromosome tables.
- All hot tables’ widths are dynamic or exact now.
- Improved small action buttons style on help dialogues.
- New results color to differentiate from main color.
- Updated UI to adapt for new Delta method for whole-body estimation.
- Updated translocations UI to adapt for new Delta method for whole-body estimation.
- Added CI for Dolphin dose estimation UI.
- Added (work in progress) Micronuclei into UI.
- Hide language selector until shiny-i18n is implemented.
New features
- Start translocations dose estimation module and report.
- Allow using M-Fish color scheme in translocations fitting module.
- Added method to convert from translocations measured by FISH to full genome.
- Implemented confounders modifications for translocations in
generalEstimateCaseHotTable()
module.
Improvements
- New chromosome table structure.
transChromosomeTable()
and transFractionToFullGenomeCalc()
have been moved to transGeneralModule.R
, as they are reused in the dose estimation module.
- Using new chromosome table UI and server modules for translocations dose estimation.
- Merged “repeated” fitting modules into a
generalFittingModules.R
file.
- Merged
*FittingResults()
modules into generalFittingResults()
module.
- Updated translocations fitting report to new chromosome table structure.
- New
generalEstimateFittingCurveHotTables()
and generalEstimateFittingCurve()
modules.
- New
globalVariables.R
with global_fitting_formulas
list.
- Added translocations-specific code in
generalEstimateFittingCurve()
module to take into account used translocation frequency.
- New inputs for used translocation frequency and genomic conversion factor in manual fitting input in dose estimation module.
- Moved dose estimation to
generalEstimateResults()
module.
- Modify translocations
(X - Xt)
for whole-body and partial-body dose estimation.
- Added readOnly status to
Xt
, yt
, yt_err
variables on rhandsontable()
for translocations case data.
UI improvements
- New
innerColumn
to use inside cards/boxes.
- New
widgetLabel()
function for labels above widgets without default label.
- Replaced old labels by new
widgetLabel()
function.
- Finished confounders UI in translocations dose estimation module.
- New
mySwichInput()
function based on shinyWidgets::switchInput()
with sideLabel
and custom status colors.
- Moved from
awesomeCheckbox()
to mySwitchInput()
in all UI modules.
- Moved fitting curve input in translocations’ dose estimation module to the top.
Fixes
- Fix minor error in calculation of infimum yield values.
- Fixed “Color options” card and color_list object for chromosome table generation.
- Fixed missing type argument in
get_model_statistics()
in dose estimation module.
- Deleted heterogeneous estimation for translocations.
New features
- Conditional tabs in sidebar by implementing
bs4MyConditionalSidebarMenuItem()
function.
- Implemented AIC calculation for different dose estimation assessments.
- Added ZIP archive with sample data for testing.
- New dynamic
bs4TabCard()
using renderUI()
and session$ns()
to show different tabs depending on user input.
- Implemented manual calculation of case parameters (
N
, X
, y
, y_est
, DI
, u
) in dose estimation module.
Improvements
- Disabled automatic calculation of
N
, X
, DI
, u
to avoid broken input issues when running the deployed app.
- Added
CONTRIBUTORS.md
file.
- Removed {fontawesome} package requirement.
- Added translocation frequency and genomic conversion factor to translocations fitting report.
- Chromosome table included in reports.
- Major rewrite of {ggplot2} plot in dose estimation module.
- Added Dolphin CI info into plot when using partial-body assessment.
- Changed display of CI in plot for dose estimation.
- Genomic conversion factor is used in
transFittingResults()
module for calculations instead of modifying the value of N
in transFittingHotTable()
.
- Added theoretical calculation of model-specific statistics (
glm
method) on fitting module.
- Added renormalisation of data for proper calculation of model-specific statistics in fitting module.
- Added theoretical model-specific statistics calculation for constraint
maxlik
optimization method in fitting module.
- Added global
get_model_statistics()
to translocations fitting module.
UI improvements
- Cleaner version of
topButton()
for help button and help modals on fitting and dose estimation modules..
- More informative model summary dialogue in fitting module.
- Better output of genomic conversion factor.
- “Partial” is now “Partial-body”. Better titles in dose estimation results card.
- New
bs4MyTabCard()
function with topButton and noPadding capabilities.
Fixes
- Fixed problem with fit_formula_raw when using linear model. Disabled
*-no-int
models until Dolphin can deal with them.
- Fixed rendering problem in Firefox (and potentially other browsers) with count data
rhandsontable()
using 100% of the card’s height.
- Fixed dose estimation
rhandsontables()
div
s on Firefox having height = 100%
of the card’s own height.
- Fixed height error in cases data table in dose estimation module in Firefox.
- Fixed
glm_results object
issue in get_model_statistics()
function.
First public beta for laboratories and research centres.
New features
- Initial support of reports.
- Implemented selection of CI for dose estimation (83%-83% & 95%-95%).
- Added method selection for partial body exposure estimation.
- Fixed formatting of variance covariance matrices when rendered by
rHandsontableOutput()
.
- Linear models compatibility for partial-body (Dolphin) and heterogeneous dose estimation.
- Experimental version of new Maximum Likelihood Estimation method for dose-effect fitting.
- Manual input of fitting coefficients and var/cov matrix for dose estimation.
Improvements
- Added format/MIME type validation for file inputs.
- Render fitting formula using MathJax.
- Format curve depending on selected assessment/method (use appropriate CI) on dose estimation.
- Check if yield projection into dose is mathematically possible. Negative values of yield or dose are changed to zero as well.
- Added modification to Merkle’s yield error function when using protracted exposures.
- Implemented protracted exposure for partial body dose estimation.
- Added automatic Poisson/quasi-Poisson selection on fitting.
- Correct p-values depending on fitting model dispersion.
- Added automatic correction of confidence intervals to use “simplified” Merkle’s method if necessary.
Fixes
- Fixed calculation of full genome.
- Fixed alignment of conditional error/method inputs for dose estimation.
- Changed “base” to “estimate” on CI tables for dose estimation.
- Fixed
bs4TabCard()
bug.
Version presented in second Team Meeting at Munich.
New features
- Migrated UI from {shinydashboard} to {bs4Dash}.
- Added data, plot, and results export options.
- Added modal dialogues using {shinyBS}.
- Dose estimation modules for dicentrics.
- Complete implementation of dicentrics analysis.
- Experimental fitting for translocations assay.
First draft and proof of concept presented to the RENEB team at Barcelona.
Features
- UI built using {shinydashboard}.
- Fitting modules for dicentrics.
- Dynamic input tables powered by {rhandsontable}.