Skip to main content

Module chi_sep_ilsqr

Module chi_sep_ilsqr 

Source
Expand description

χ-separation via the original Shin 2021 projected-CG algorithm.

Faithful implementation of the algorithm in the Supplementary Methods of Shin et al. 2021 (the SNU-LIST toolbox ships it compiled as chi_sep_iLSQR.p / chi_sep_MEDI.p, so this is a paper-based port). The minimization is

argmin_{χ+, χ−} ‖ Wr·{R2' − (Dr,pos·|χ+| + Dr,neg·|χ−|)}
                 + i·2π·Wf·{f − Df ∗ (χ+ + χ−)} ‖₂² + reg(χ+, χ−)
                 subject to χ+ ≥ 0, χ− ≤ 0

where Wf is an SNR weight from the GRE magnitude and Wr = Wf/10 where R2’ is unreliable (R2’ > 30 Hz or < 1 Hz). Because the R2’ term is real and the field term imaginary, the complex norm decouples into two independent least-squares terms; with the sign constraints enforced (|χ+| = χ+, |χ−| = −χ−) both are linear in (χ+, χ−). The regularization is edge-masked L1 total variation (MEDI-style, IRLS-linearized here):

reg = 2λ1‖M_Mag ∇(χ+ + χ−)‖₁ + λ1‖M_R2' ∇χ+‖₁ + λ1‖M_R2' ∇χ−‖₁

with M_Mag a binary edge mask from the magnitude and M_R2' one from the R2’ map. The solution is initialized from the voxelwise 2×2 system {Dr,pos·χ+ − Dr,neg·χ− = R2', χ+ + χ− = χ_QSM} using a conventional QSM reconstruction — the toolbox’s chi_sep_iLSQR name refers to feeding it an iLSQR QSM ([crate::inversion::ilsqr]); per the QSM-CI diagnostic the QSM must be reconstructed from the same local field with matching conventions, not supplied externally. Iteration is Gauss-Newton/CG with sign projection each step; it stops when ‖χⁿ⁺¹ − χⁿ‖/‖χⁿ‖ < tol on χ_total or at max_iter.

Reference: Shin, H., et al. (2021). “χ-separation: Magnetic susceptibility source separation toward iron and myelin mapping in the brain.” NeuroImage, 240:118371 (Supplementary Methods, “Algorithm for χ-separation”).

Structs§

ChiSepIlsqrParams
Parameters for chi_sep_ilsqr.
Ws 🔒
Shared buffers for the operator applications (all length n unless noted).

Constants§

TWO_PI 🔒

Functions§

apply_operator 🔒
Apply the Gauss-Newton operator to dx = [d+; d−]:
cg_solve 🔒
Standard CG on the doubled system.
chi_sep_ilsqr
χ-separation (Shin 2021, projected Gauss-Newton/CG).
chi_sep_ilsqr_core 🔒
irls_weights 🔒
IRLS weights Vr = 1/sqrt(|M·∇χ|² + eps) for one TV term.