Released: April 2026
grs_validate() — added
skip_if_not_installed("pROC") guard to all logistic-path
tests so the suite passes cleanly when pROC is absentops_toy() data where possible — runnable
examples unwrapped, long-running examples (>5s) wrapped in
\donttest{}, network-dependent examples remain in
\dontrun{}VignetteBuilder field corrected in
DESCRIPTIONdev (3
jobs), main (6 jobs), release (8 jobs,
--as-cran), and weekly (scheduled every
Saturday 21:00 CST, full CRAN-like matrix)_R_CHECK_DEPENDS_ONLY_ matrix to verify Suggests
packages are correctly declaredReleased: March 26, 2026
ops_snapshot() — removed Unicode character
Δ from documentation to fix LaTeX PDF manual build on
CRANtest-plot.R — added skip_on_cran() to
plot_tableone() rendering tests that caused a 20-minute
hang on Windows CRANplot_forest() and plot_tableone() examples
are now fully runnable (removed \dontrun{} wrapper;
save = FALSE throughout)README.md — updated Codecov badge URL; fixed
CONTRIBUTING.md and README_zh.md links to full
GitHub URLsinst/WORDLIST with Biobank to
suppress false-positive spelling NOTE on CRANReleased: March 25, 2026
derive_followup() — coerce date columns to
IDate before pmin() to avoid type
mismatchinstall.Rmd — corrected vignette cross-references.assert_*() input
validation helperscli::cli_abort() calls now use
call = NULL for cleaner error messagesplot_tableone() — auto-coerce data.table
input to data.frameget-started.Rmd and README updated for
accuracyReleased: March 13, 2026
ops_withdraw() — exclude UKB withdrawn participants
from a cohort data.table by EIDops_snapshot() gains column-tracking helpers:
cols(), diff(), remove(), and
set_safe_cols()plot_tableone() — new png_scale,
pdf_width, and pdf_height parameters for
fine-grained output controlfetch_file() — enforce RAP-only guard; updated
testsgrs_score() — fix -icmd argument format;
skip script upload if file already exists on RAPops_withdraw()ops_withdraw()broom to DESCRIPTION Imports and
ops_setup() dependency checkReleased: March 10, 2026
ops_setup() — check and report the local environment
(R, dx-toolkit, dxpy) healthops_toy() — generate synthetic UKB-style cohort or
forest-plot data for testing and demos; includes GRS columns and cancer
self-report fieldsops_na() — summarise missing-value rates per column
with threshold-based filtering and cli progress
feedbackops_snapshot() — record and display a history of
dataset row/column counts across pipeline stepscli::cli_abort() calls now pass
call = NULL to suppress internal call-stack noise in error
messagesops_toy(): added cancer self-report fields
(p20001, p20006) and corrected
sr_codes → text label mappingvignette("smoking_lung_cancer"))docs/)importFrom(stats, rnorm, runif),
importFrom(utils, object.size), and pct_na to
globalVariables()builds/ to .RbuildignoreReleased: March 6, 2026
Initial release of ukbflow — a RAP-native R workflow for UK Biobank analysis.
auth_login() — authenticate to RAP via dx-toolkit
tokenauth_logout() — revoke current sessionauth_status() — check current login stateauth_list_projects() — list accessible RAP
projectsauth_select_project() — set active RAP projectfetch_ls() / fetch_tree() — browse RAP
project file structurefetch_file() — download files from RAP to localfetch_url() — generate pre-signed download URLsfetch_metadata() — retrieve UKB field metadata
(field.tsv, encoding.tsv)fetch_field() — retrieve UKB field-level metadata for
specific field IDsextract_ls() — list available UKB datasets on RAPextract_pheno() — synchronously extract phenotype
fields from a RAP datasetextract_batch() — submit a DNAnexus table-exporter job
to extract phenotype fieldsjob_wait() — poll job status until completionjob_status() / job_ls() /
job_path() / job_result() — monitor and locate
RAP jobsdecode_values() — convert integer codes to
human-readable labelsdecode_names() — rename
p{field}_i{instance}_a{array} columns to descriptive
namesderive_missing() — recode UKB informative-missing
labels to NAderive_covariate() — standardise common covariates
(age, BMI, TDI, etc.)derive_cut() — create ordered factor variables from
numeric cutpointsderive_hes() — derive disease phenotypes from Hospital
Episode Statistics (ICD-10)derive_cancer_registry() — derive cancer phenotypes
from UK cancer registry (ICD-10)derive_death_registry() — derive phenotypes from death
registry (primary + secondary causes)derive_first_occurrence() — derive phenotypes from UKB
First Occurrence fieldsderive_selfreport() — derive disease phenotypes from
self-reported illness codesderive_icd10() — merge multi-source ICD-10 case
definitions across all registersderive_case() — merge arbitrary multi-source case
definitionsderive_followup() — compute follow-up time with
competing event supportderive_timing() — classify prevalent vs. incident
casesderive_age() — compute age at eventassoc_linear() — linear regression with automatic
three-model frameworkassoc_logistic() — logistic regression with automatic
three-model frameworkassoc_coxph() — Cox proportional hazards with automatic
three-model frameworkassoc_coxph_zph() — test proportional hazards
assumptionassoc_competing() — Fine-Gray competing risks
regressionassoc_subgroup() — subgroup analysis with interaction
likelihood-ratio testassoc_trend() — dose-response trend analysis across
ordered categoriesassoc_lag() — landmark / lag-time sensitivity
analysisgrs_check() — validate and reformat a GWAS summary
statistics weight filegrs_bgen2pgen() — submit parallel BGEN → PGEN
conversion jobs on RAPgrs_score() — submit distributed plink2 GRS scoring
jobs on RAPgrs_standardize() — standardise GRS columns to mean =
0, SD = 1grs_validate() — validate GRS distribution and
association with known risk factorsplot_forest() — publication-ready forest plots with
customisable CI columns and p-value formattingplot_tableone() — Table 1 baseline characteristics
figure