write_results() now exports statistical maps as NIfTI volumes via format = "nifti" (or format = c("h5", "nifti")), reusing the same BIDS entity and filename machinery as the HDF5 backend. This removes the need to hand-roll loops over coef_image() + neuroim2::write_vol().
Added coef_images(), a plural companion to coef_image() that returns a named list of NeuroVols for every coefficient of a given type ("estimates", "contrasts", or "F") and statistic.
Bug Fixes
write_results() now labels F-contrast maps as fstat/fpval instead of reusing the tstat/pval labels. F statistics follow an F distribution (not Student’s t), so mixing them under a tstat label produced mislabeled maps and, under strategy = "by_stat", could collide t- and F-contrast outputs in a single file. t- and F-contrasts are now written to separate, correctly labeled files.
fmrireg 0.1.2
Changes
Moved PDF report generation (report.fmri_lm) to the standalone fmrireport package. Use fmrireport::report() for report rendering.
Bug Fixes
Fixed low-rank/sketch residual degrees of freedom to use original timepoints (T - p) instead of sketch rows.
Replaced placeholder fit_contrasts.fmri_lm() outputs with computed standard errors, test statistics, and p-values.
Consolidated duplicate meta-analysis pathways to shared implementations and removed inconsistent behavior across runwise/chunkwise pooling.
Fixed F-contrast meta pooling to combine evidence via p-values rather than averaging F statistics.
Fixed thread-safety issue in C++ meta kernels by deferring Paule-Mandel non-convergence warnings until after OpenMP regions.
Added bounds validation and safer inverse fallback in sketch kernels to prevent unsafe indexing and hard failures on ill-conditioned data.
Improved AR pipeline consistency for whitened covariance/fitted/residual handling and unified AR effective-df calculations.
Added regression coverage for fit_contrasts.fmri_lm() to prevent placeholder-stat regressions.
fmrireg 0.1.1
Bug Fixes
Fixed glm_lss() tests that incorrectly expected specific Cholesky decomposition errors.
Fixed convolution test with non-strictly-increasing onsets within blocks.
Fixed testthat API usage (expect_lt/expect_gt no longer use deprecated info argument).
Fixed latent_dataset API usage: now uses get_latent_scores() instead of deprecated get_data().
Changed glm_lss()use_cpp parameter default from TRUE to FALSE (C++ implementation retired; fmrilss package now used).
Added fmrireg.suppress_deprecation option check to all deprecated functions for cleaner test output.
Added tests/testthat/setup.R to suppress expected deprecation warnings during testing.
Suppressed expected kmeans convergence warnings in landmark SRHT tests.
Internal
Test warnings reduced from 129 to 31 (remaining warnings are from external packages).
fmrireg 0.1.0
Breaking Changes
Design Matrix Column Naming: The naming scheme for columns in design matrices generated by event_model() has been completely revised for consistency and clarity.
All column names now strictly follow the format: term_tag + _ + condition_tag + [_b## basis suffix].
term_tag: Automatically generated from variable names (e.g., var1_var2) or user-provided id= in hrf(), sanitized (dots become underscores), and made unique with # suffix if needed (e.g., cond, cond#1).
condition_tag: Represents factor levels (e.g., Factor.Level), continuous basis columns (e.g., poly_RT_01, z_RT), or interactions joined by _ (e.g., Factor.Level_poly_RT_01).
_b##: Optional suffix added only when the HRF has multiple basis functions (e.g., _b01, _b02).
The previous style argument ("compact", "qualified", "uid") in design_matrix() is removed. Only the single canonical format is produced.
Scripts or analyses that relied on matching previous column name formats (e.g., using Var[Level], Var:Level, :basis[]) will need to be updated to use the new term_tag_Condition.Tag_b## format.
Major Changes
Regressor System Refactoring:
Introduced a new internal S3 class Reg for representing regressors.
The main regressor() function now uses Reg internally but maintains backward compatibility (returns class c("regressor", "Reg", "list")).