Skip to content

[Feature] Add IVIM signal reconstruction and RMSE residual map #120

@shamsulalam1114

Description

@shamsulalam1114

Summary

The current IVIM fitting pipeline (fit_ivim) only produces a binary
quality_mask to indicate fitting success/failure. There is no
continuous metric to quantify how well the bi-exponential IVIM model
fits each voxel.

Proposed Addition

Add two new utilities to osipy/ivim/fitting/residuals.py:

  • reconstruct_ivim_signal() — reconstructs the expected IVIM
    bi-exponential signal from fitted D, D*, f, and S0 parameter maps.

  • compute_rmse_map() — computes per-voxel RMSE between the
    observed DWI signal and the reconstructed signal, returning a
    ParameterMap with units a.u..

IVIMFitResult gains an optional rmse_map field, and fit_ivim()
populates it automatically.

Why RMSE?

RMSE gives a continuous quality score per voxel, allowing
downstream users to threshold by fit quality level rather than relying
solely on the binary mask. This is consistent with established IVIM
QC practices (Le Bihan et al. 1988).

Implementation

Already implemented in PR #119.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions