write_nifti_assays() and write_out(format = "nifti") now preserve the
input spatial affine (spacing, origin, orientation) and write scl_slope = 1
for 3D outputs, instead of emitting an identity NeuroSpace. Exported group
maps are now geometrically correct without a manual re-stamp (#6).ols:voxelwise (and therefore one_sample()/group_ols()) now applies
per-sample listwise deletion for non-finite subjects: a single NaN subject
no longer poisons a voxel and an all-NaN subject no longer poisons the whole
map. Samples with too few finite observations are returned as NA, a new
n_obs assay reports the effective sample size, and a summary warning is
emitted when any sample is reduced (#7).one_sample() / group_ols(~ 1) now build the intercept-only design
automatically and no longer require col_data (#1).fixed/random/meta:*, or any weights = "1/var" reduction) now error with an actionable message when applied to a
beta-only GDS whose var assay is the synthetic unit-variance placeholder,
rather than silently producing meaningless group standard errors (#5).reduce() and the ols:voxelwise
topic), the single-contrast scope of gds_from_nifti_maps(), and the
filename pairing contract for nifti_source(beta=, se=) (#2, #3, #4).var = 1 assay with a warning, matching gds_from_neurovols() behavior for raw maps without uncertainty images.gds_from_nifti_maps() workflows and the recommendation to use ols:voxelwise rather than fixed/random-effects meta-analysis when the variance assay is synthetic.gds_from_nifti_maps() contrast relabeling for one-contrast raw-map layouts.gds_from_scalar_maps() / as_scalar_map_gds(), group_ols(), one_sample(), two_sample(), and write_nifti_assays() with a per-file manifest.fmrigds CLI into a plan-oriented interface with probe, plan, preview, run, and list commands.--save-plan / --load-plan, plus repeatable passthrough flags for adapter, reducer, post-hoc, and writer options.cli-workflows vignette covering the main command patterns and advanced control flags.lmm:ri and lmm:ri_slope1.theta_mode = "pooled" and theta_mode = "voxelwise" for shared- vs sample-specific variance parameters.contrast_data_cols, so contrast metadata can be extracted directly from tabular sources.lme4 parity, pooled/voxelwise equivalence for identical responses, and sample-specific theta recovery.lme4-backed restricted LMM parity tests plus a scheduled benchmark workflow.fmrigds name.gds(<data.frame>) now works via the tabular adapter (no temporary files needed).roi_col alias in tabular ingestion to treat ROI/parcel labels as the sample axis.list(beta=..., se=...), directories, or vectors; classification by filename patterns for beta vs se.as_plan.gds() so verbs like reduce()/posthoc() accept realized GDS directly.plan(x) for as_plan(x).as_gds() to accept 2-D inputs and standardized all assays to 3-D [sample × subject × contrast] shapes.var from se (and vice versa when required) in reducer/posthoc preflight.fdr:spatial) posthoc with group-wise Simes + weighted BH; documented usage and options.cov:<term_i>:<term_j>) while retaining attachments for metadata.subjects.gds_plan() and contrasts.gds_plan().nifti_source(beta=NULL, se=NULL) for explicit NIfTI list sources.Guidance for integrators (fmrireg):
gds(df, format="tabular", roi_col="roi") or as_gds(df, mapping=list(roi="roi", ...)) over temporary CSV writes.plan(gds_obj) or as_plan(gds_obj) to chain reduce()/posthoc() on realized results.gds-h5) with probe and block-read support so plans can lazily stream assays from disk.inst/schemas/hdf5.md and wired helpers for writing simple gds stores.compute() now supports sink = "h5" and write_out() queues, emitting provenance-aware gds-h5 stores (with tests)./gds/alignments, rehydrated at load time, and available via align(plan, "<name>").