The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
Wrapped software name in single quotes in DESCRIPTION: ‘Shiny’, per CRAN policy on package and software name formatting.
Added six methodology references to DESCRIPTION in CRAN-required format (authors, year, doi/ISBN): O’Hagan et al. (2006), Box (1980), Oakley and O’Hagan (2010), Schmidli et al. (2014), Ibrahim and Chen (2000), Spiegelhalter et al. (1994).
Added \value documentation tag to four exported
print methods: print.bayprior(),
print.bayprior_conflict(),
print.bayprior_conflict_mv(), and
print.bayprior_power_prior(). Each documents that the
function returns the input object invisibly, called for its side effect
of printing a formatted summary.
Restored par() settings after use in the
robust-priors vignette. The par(oldpar) call was
incorrectly placed before the for loop and
legend(). Moved to after all plotting operations, per CRAN
policy.
Removed LICENSE file and | file LICENSE
from DESCRIPTION. The GPL-3 licence does not require an additional
file.
Updated inst/WORDLIST: added biom,
doi, and ss — fragments extracted by the spell
checker from DOI strings in the DESCRIPTION references field.
.Rbuildignore pattern for
cran-comments.md. The pattern
^^cran-comments\\.md$$ (double caret, double dollar) never
matched the file, so it was included in every previous tarball. Fixed to
the correct regex ^cran-comments\.md$ and verified absent
from the v0.2.11 tarball.Switched Language from en-US to
en-GB in DESCRIPTION to correctly reflect the British
English used throughout the package (sceptical, colour, behaviour,
normalised etc.). British spellings are now handled by the en-GB
dictionary and no longer need to be in
inst/WORDLIST.
Replaced “Kullback-Leibler divergence” in DESCRIPTION with
“information divergence”. Kullback and Leibler are proper nouns not in
any standard dictionary and cannot be resolved via
inst/WORDLIST for CRAN’s DESCRIPTION spell check.
Updated inst/WORDLIST: added HR, Inf, Var, heatmaps,
prior’s, R’s, VignetteBuilder, Poisson, etc. Removed British spellings
now covered by en-GB dictionary.
inst/WORDLIST. These
are proper nouns (the Kullback-Leibler divergence is named after
statisticians Solomon Kullback and Richard Leibler) and are standard
terminology in Bayesian statistics. Flagged as possibly misspelled by
CRAN’s automated pre-check in v0.2.8.Resolved the persistent “Package has a VignetteBuilder field but
no prebuilt vignette index” NOTE that appeared across v0.2.4–v0.2.7.
Root cause: ^build$ was incorrectly added to
.Rbuildignore, which excluded
build/vignette.rds from the tarball. This file is generated
by R CMD build during vignette processing and is the exact
file R CMD check looks for (tools/R/QC.R). Removing
^build$ from .Rbuildignore resolves the note
permanently.
Revised Description field in DESCRIPTION to remove
all regulatory body references and abbreviations. The description now
describes what the software does. Regulatory context is retained in
vignettes and README.
Resolve EMA in DESCRIPTION. The EMA
acronym (European Medicines Agency) was flagged as a possible
misspelling in the DESCRIPTION file, causing a CRAN resubmission
WARNING.
Updated inst/WORDLIST.
Updated inst/WORDLIST to include all
package-specific terms flagged by the spelling checker, and package
infrastructure terms (golem, shinydashboard, knitr, pandoc). Resolved
spelling.Rout vs spelling.Rout.save mismatch
in tests.
Changed Language field in DESCRIPTION from
en-US to en-GB to reflect the package’s
consistent use of British English spelling throughout documentation and
vignettes (sceptical, colour, behaviour, centred).
Added prebuilt vignette index (inst/doc/index.html)
to resolve the “no prebuilt vignette index” NOTE reported by CRAN’s
automated pre-check on Windows and Debian.
Removed all Unicode characters from R source files that caused LaTeX PDF generation errors on CRAN’s Windows and Debian build servers. Affected characters: U+2014 em dash (replaced with –), U+2212 Unicode minus (replaced with -), U+221E infinity (replaced with Inf), U+2019/U+2018 curly quotes (replaced with ’), and others. All replacements made in comments and roxygen documentation only – no functional code changed.
Added inst/WORDLIST declaring package-specific
acronyms (EMA, FDA, CrI, MAP, Mahalanobis, Bhattacharyya, SHELF, PFS,
PK) that were flagged as possibly misspelled in the DESCRIPTION
file.
Rebuilt prebuilt vignette index via
devtools::build_vignettes() to resolve the “no prebuilt
vignette index” NOTE.
robust_prior() — added @details
section explaining that the vague component is always Normal,
making cross-family mixtures (e.g. Beta + Normal) structurally
inevitable for non-Normal informative priors. Clarifies that mixture
mean and SD are always computed in closed form; only the density (used
for plotting) is approximated numerically. Updated
@examples to include a Beta informative prior case with
suppressWarnings().
elicit_mixture() — added
@details section documenting the same numerical
density approximation behaviour at the lower level where mixtures are
first constructed. Notes that suppressWarnings() should
only be used after verifying the mixture is appropriate, not as a
blanket silence.
Robust Mixture density plot — warning redirected from
console to UI. The “Components have different distribution
families. Mixture densities computed numerically.” warning is now
intercepted and surfaced as an amber showNotification() in
the Shiny app rather than printed to the R console. The warning is
informative — it signals numerical approximation rather than closed-form
density computation — and should be visible to the analyst. Previously
it was suppressed entirely, which was not ideal.
Poisson data type in Power Prior Calibration — the power prior module now supports Poisson/count endpoints alongside Binary and Continuous. Uses the Gamma-Poisson conjugate update (same closed-form formula as Gamma-continuous).
Prior-data compatibility warning in Power Prior — an amber alert now appears when the active prior family is incompatible with the selected data type (e.g. Normal prior with binary data, Beta prior with Poisson data), guiding users to re-elicit with an appropriate family before calibrating.
Mahalanobis module limitations documented — the Multivariate Conflict Setup panel now shows an inline note clarifying that the test assumes multivariate Normal summary statistics, that proportion/HR endpoints should be entered on the log-odds/log scale, and that k > 2 endpoints are a planned extension.
base_prior reactive — introduced
shared$base_prior (written only by elicitation and pooling)
alongside active_prior() (written by all modules).
Sensitivity analysis, Robust Mixture, and Power Prior reset observers
now watch base_prior() instead of
active_prior(), eliminating the self-invalidation loop that
wiped results immediately after they were produced.
Robust mixture compounding SD bug fixed — the
robust prior fit handler now always uses base_prior() as
the informative component. Previously, repeated clicks used the previous
robust mixture as the input, causing the vague SD to compound
exponentially across clicks.
Added tests/testthat/test-robust.R — 33 tests
covering robust_prior(), sceptical_prior()
(all three families and strength levels),
calibrate_power_prior() (all methods and data types),
elicit_exponential(), elicit_weibull(),
plot.bayprior_power_prior(), and
print.bayprior_power_prior().
Added tests/testthat/test-validation.R — 10 tests
covering all four functions in validation_utils.R.
Added skip_on_ci() to all shinytest2
Chromote tests to prevent 30-second timeout failures in non-interactive
and CI environments.
@details to conflict_mahalanobis()
documenting the multivariate Normal assumption, required scale
transformations for proportion and HR endpoints, and the bivariate (k =
2) limitation.Three-state auto theme — theme now cycles Auto →
Dark → Light on toggle. In Auto mode the app follows the OS
prefers-color-scheme setting, which most operating systems
tie to time of day. The button label shows the active state and whether
it is following the OS or set manually (e.g. Auto (dark),
Dark (manual)). Switching back to Auto removes the stored
preference and resumes OS tracking.
Disabled downstream buttons — analysis buttons
(Run Diagnostics, Run Sensitivity Analysis, Build robust/sceptical/power
prior, Compute consensus prior) are now greyed out with a
not-allowed cursor when no prior has been fitted. Hovering
shows the tooltip “Fit a prior in Prior Elicitation first”.
Buttons re-enable immediately when a prior is fitted. The Mahalanobis
Conflict Setup button is intentionally excluded as it does not require
an elicited prior.
Prior summary card in sidebar — the active prior badge now shows a mini stats table with Mean, SD, and 95% CrI (where available) below the distribution family and label. Updates reactively on every prior change. Mixture priors show Mean and SD only (no closed-form CrI).
Diagnostic tooltips — each conflict value box (Box p-value, Surprise index, Overlap coefficient) now has an info icon that displays a plain- language explanation on hover, useful for non-statistician stakeholders.
plot_tornado() and
plot_sensitivity() following the axis label formatting
change in v0.2.1 (snake_case -> title case).plot_tornado() and
plot_sensitivity() package functions directly (not just the
Shiny layer), so label formatting applies when functions are called from
R as well as in the app.bayprior vX.X.X) now displayed in the
sidebar footer.pkgload::load_all() from app.R —
it was a development-only line that caused startup failure on
shinyapps.io.renv::snapshot(type = "explicit") to deployment
workflow to prevent dev tools (pkgload,
pkgbuild, callr, desc) from
entering renv.lock.Added elicit_exponential() — elicits an
Exponential(rate) prior for constant hazard rates and Poisson rate
priors. Supports "moments" (mean to rate),
"rate" (direct), and "quantile" (1D
optimisation) methods. The Exponential distribution is conjugate for
Poisson and survival data via Gamma-Poisson/Exponential
updating.
Added elicit_weibull() — elicits a Weibull(shape,
scale) prior for non-constant hazard survival times (OS, PFS). Supports
"moments" (2D Nelder-Mead), "params" (direct
shape and scale), and "quantile" (2D Nelder-Mead) methods.
Posteriors are approximated via Normal matching.
Added "poisson" data type to
prior_conflict(), sensitivity_grid(), and
sensitivity_cri(). Supports count/adverse-event-rate
endpoints: list(type = "poisson", x = 12, n = 100) (events
/ person-time). Conjugate update:
Gamma(shape + x, rate + n).
Added "survival" data type to
prior_conflict(), sensitivity_grid(), and
sensitivity_cri(). Supports OS/PFS hazard rate endpoints:
list(type = "survival", x = 20, n = 400) (events / total
follow-up time). Conjugate update:
Gamma(shape + x, rate + n) (Gamma-Exponential).
Added density and x-range support for Exponential and Weibull
distributions in plot.bayprior(). Previously these
distributions rendered blank density plots; they now display
correctly.
Added comprehensive validation layer across all modules:
.check_prior_data_compat() — warns when a prior family
is atypical for the chosen data type (e.g. Beta prior + Poisson
data)..check_pooling_compat() — blocks pooling of
distributions with incompatible supports (e.g. Beta + Normal); warns for
same-support cross-family pooling (e.g. Gamma + Exponential)..check_sensitivity_compat() — warns for
single-parameter families (Exponential) and cross-family mixtures;
blocks incompatible-support mixture sensitivity..validation_alert() — renders Bootstrap alert boxes for
inline UI feedback in the Shiny app.Sensitivity analysis is now fully independent of conflict diagnostics. The Sensitivity Analysis module has its own data entry UI (data type selector, events/n for binary, mean/SD/n for continuous, events/exposure for Poisson, events/follow-up for survival) that auto-populates the correct type from the active prior family. Previously, running conflict diagnostics was required before sensitivity analysis could proceed.
All Shiny modules now reset outputs automatically on
input change, preventing stale results from being displayed
alongside new inputs. Each module uses
observeEvent(list(...)) watching all its relevant inputs to
reset result reactives immediately. The active prior sidebar indicator
is preserved during elicitation input changes (only the density plot and
parameter table reset; shared$current_prior is retained
until a new prior is explicitly fitted).
Fixed prior_report() producing blank figures in Word
(.docx) reports. knitr was writing absolute figure paths to the
markdown; pandoc could not resolve them. Fixed by using
fig.path = "figures/" (relative) with
base.dir = tmp_dir for docx/pdf, and
knitr::image_uri for HTML.
Fixed prior_report() failing for PDF with
“tikzfill.image.sty not found”. Added
tinytex::tlmgr_install() recommendation in documentation.
The default-image-extension: pdf Quarto default is now
overridden to png via YAML injection in the pre-executed
markdown.
Fixed mixture prior hyperparameters section in
prior_report.qmd rendering as literal markdown
(## Hyperparameters not available) rather than as formatted
text. Added #| results: asis to the
fitted-params chunk and updated to show a component summary
table for mixture priors.
Fixed mod_conflict_mahal.R containing a stale
duplicate definition of mod_conflict_ui that was overriding
the correct 4-choice version in mod_conflict.R (files
sourced alphabetically, mahal comes after conflict). Removed the
duplicate; mod_conflict_mahal.R now only contains
mod_mahal_ui and mod_mahal_server.
bayprior-package.R to document all six
distribution families, all four data types for conflict diagnostics and
sensitivity, and the new validation functions.Fixed prior_report() failing on remote platforms
(shinyapps.io, Posit Connect) due to Quarto spawning a subprocess that
could not find the bayprior package. The report now uses a
two-step approach: knitr::knit() executes all R code in the
current session, then
quarto::quarto_render(execute = FALSE) handles formatting
via pandoc only. No R subprocess is spawned in the second step
(#1).
Fixed mod_sensitivity: sensitivity analysis no
longer requires conflict diagnostics to have been run first. The module
now has its own data entry UI (data type, events/n for binary; mean/SD/n
for continuous) that auto-selects the correct type based on the prior
family (Beta → binary, others → continuous). Previously the fallback
always used type = "continuous", causing conjugate updating
to fail for Beta priors and returning NA for all grid
evaluations.
Fixed “Using data from Conflict Diagnostics” label appearing even
when no conflict diagnostics had been run. The label is now generated
inside renderUI conditionally on
shared$conflict.
Fixed non-ASCII characters (─, —) in
R/app_ui.R causing an R CMD check WARNING. All box-drawing
and em-dash characters replaced with ASCII equivalents.
Fixed prior_report() missing @param
documentation for prior_plot, overlay_plot,
tornado_plot, and heatmap_plot, causing an R
CMD check WARNING about undocumented arguments.
Added robust_prior, sceptical_prior,
power_prior, robust_plot,
sceptical_plot, and power_plot arguments to
prior_report(). When supplied, robust and sensitivity
priors appear as a dedicated section in the report with parameter tables
and density plots. The compliance checklist row “Robust / sceptical
prior computed” is automatically marked Complete.
Added bayprior hex logo to the Shiny app header and browser
favicon. Logo is served from
inst/app/www/favicon.png.
elicit_beta(), elicit_normal(),
elicit_gamma(), elicit_lognormal(),
elicit_roulette(), elicit_mixture()aggregate_experts()prior_conflict(),
conflict_mahalanobis()sensitivity_grid(), sensitivity_cri()robust_prior()sceptical_prior()calibrate_power_prior()prior_report()Added Quarto GitHub Pages documentation site at
https://ndohpenngit.github.io/bayprior/ with six rendered
vignettes, a Changelog page, and a Cheat Sheet. Site auto-rebuilds on
every push to main via GitHub Actions.
Updated all six vignettes to document new
prior_report() arguments, the sensitivity analysis CrI
toggle, and the robust priors report integration.
Updated README.md with live app badge, and
Documentation section linking to the GitHub Pages site.
run_app()These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.