Skip to content

0.9

Choose a tag to compare

@michaelhallquist michaelhallquist released this 26 Aug 12:50
· 60 commits to main since this release
  • Document stage-specific runtime requirements in package metadata, the README, and Quickstart. Add an installed miniature project configuration and an executable local-onboarding vignette that clearly separates no-cluster helpers, submission-free dry runs, and scheduler/container-dependent project execution.
  • Correct ROI-connectivity provenance and execution: estimator-specific filenames are now unique, scheduled extraction honors nested correlation settings, cor.shrink has a stable BIDS entity, and time-series-only extraction supports cor_method = "none".
  • Preserve the one-to-one association between multiple postprocessing input streams and their BIDS descriptions during ROI extraction. Ambiguous vector lengths now fail explicitly instead of selecting or combining unintended inputs.
  • Apply interactively configured ROI masks, preserve every atlas label when an ROI is fully masked, and return schema- and dimension-stable time-series, connectivity, and diagnostic outputs for empty ROIs and entirely masked atlases.
  • Report per-stream ROI-extraction state in project and subject status. Scheduled extraction now writes an explicit manifest of its actual time-series, connectivity, and diagnostic outputs so completion checks do not depend on a directory-wide snapshot.
  • Honor save_ts = FALSE in scheduled extraction and reject contradictory extraction configurations before output is created.
  • Align the CLI, run_project() help, examples, and vignettes with the seven supported submitted stages. BIDS validation remains project-configured but is submitted separately with run_bids_validation(); stream selection and dry-run output now expose resolved settings.
  • Harden public and native interfaces with complete help signatures, working examples, stable empty data-frame schemas, finite image-quantile validation, zero-length and dimension checks, and clearer argument errors.
  • Keep development-only calibration resources, local Codex files, audit reports, prior build products, and Python bytecode caches out of source packages and installed-package tests. Remove the obsolete ROI_TempCorr.R entry point after migrating its useful voxel-retention diagnostics into supported ROI extraction.
  • Stabilize empty-result contracts: extract_bids_info(character()) now returns its complete typed BIDS schema, and get_project_status() returns configured status columns even before any subject jobs exist. image_quantile() now rejects empty, missing, NaN, and infinite probability vectors before reading image data.
  • Improve onboarding and release hygiene: generate Quickstart CLI help from the installed command, document the standalone BIDS-validation boundary consistently, show resolved postprocessing and extraction stream settings during dry runs, and remove the obsolete ROI_TempCorr.R installed entry point after migrating its useful diagnostics into extract_rois().
  • Add optional per-ROI voxel-retention diagnostics to ROI extraction. Reports
    separately track atlas size, optional-mask survival, BOLD-valid voxels,
    minimum-voxel requirements, retention status, and exclusion reasons; the
    scheduled extraction workflow includes requested diagnostics in its explicit
    output manifest.
  • Preserve source FD in notch-filtered calculated confounds and write the
    recomputed series immediately beside it as framewise_displacement_filtered.
    The output respects the configured header setting and logs column order when
    headers are disabled; filtering-based scrubbing and confound regression use
    the filtered FD. Clearly reversed notch bounds are repaired automatically;
    skipped filters are logged and never produce a misleading filtered-FD label.
    When FD is selected as a processed confound, both the source-derived and
    notch-derived FD columns retain all configured BOLD-matched confound
    processing.
  • Add a voxel_psc intensity-normalization mode that uses the existing robust reference-core and eligible-frame policy and applies denominator-guarded baseline-to-100 scaling after spatial processing. Reliable local baselines use ordinary PSC scaling, very low positive baselines use a lower denominator bound, and invalid baselines or those with too few eligible frames use a conservative run-level fallback. The guards do not clip observations or mask voxels; the user's apply_mask decision is preserved, and the multiplier map and guard counts are saved for provenance. Guard counts and percentages within the conservative automask are logged at info level, with complete-grid counts at debug level.
  • Add a user-oriented intensity-normalization vignette documenting the target convention, robust reference-core policy, provenance outputs, QA, and limitations.
  • Replace automask()'s background-sensitive positive-voxel quantile interpolation with an iterative AFNI-style clip estimator and a smoothly varying local threshold field.
  • Match AFNI's automask() peeling more closely with a 17-of-18 NN2 survival rule, layer-aware restoration, and post-peel face-connected reclustering.
  • Replace postprocessing's late 4D-median intensity estimate with an automask-based robust reference core selected from the original positive-scale BOLD image; measure and apply the run factor after masking/smoothing but before AROMA, temporal filtering, confound regression, or timepoint removal, and save the core mask and JSON provenance.
  • Accept postprocess/intensity_normalize/target as the simplified normalization setting while retaining global_median as a backward-compatible alias.
  • Preserve each voxel's pre-AROMA temporal mean during both aggressive and non-aggressive AROMA denoising, retaining the positive baseline intensity used for cross-run scaling.
  • Refactor postprocessing to use job arrays and sentinels for cleanup
  • Add additional templates to prefetch needed by MRIQC
  • Preserve user-specified metadata/sqlite_db values and expose sqlite_db in edit_project().
  • Clean postprocessing scratch workspaces and temporary automask files on errors as well as successful exits.
  • Use exit-time cleanup for temporary FSL postprocessing files generated during temporal filtering, smoothing, confound regression, and brain-mask computation.
  • Add regression tests for editable SQLite database configuration and postprocessing temp-file cleanup after failures.
  • Prefetch resolution-1 T1w and brain-mask assets used by fMRIPrep anatomical reports, including when an output space explicitly requests another resolution.
  • Recalibrate spatial-smoothing validation on held-out BOLD runs from three datasets and resolutions; expected post-smoothing FWHM now conditions on baseline smoothness, program/mask mode, and the voxel-to-kernel ratio.