Skip to main content

Module ilsqr

Module ilsqr 

Source
Expand description

iLSQR: Iterative LSQR for QSM with streaking artifact removal

Reference: Li, W., Wang, N., Yu, F., Han, H., Cao, W., Romero, R., Tantiwongkosi, B., Duong, T.Q., Liu, C. (2015). β€œA method for estimating and removing streaking artifacts in quantitative susceptibility mapping.” NeuroImage, 108:111-122. https://doi.org/10.1016/j.neuroimage.2014.12.043

Reference implementation: https://github.com/kamesy/QSM.m

The algorithm consists of 4 steps:

  1. Initial LSQR solution with Laplacian-based weights
  2. FastQSM estimate using sign(D) approximation
  3. Streaking artifact estimation using LSMR
  4. Artifact subtraction

StructsΒ§

IlsqrParams
Parameters for the iLSQR algorithm.

FunctionsΒ§

axpy πŸ”’
axpy_complex πŸ”’
Complex axpy: y += a * x
compute_laplacian πŸ”’
Compute Laplacian of a 3D field using mask-adaptive finite differences
dipole_kspace_weights_ilsqr πŸ”’
K-space weights for FastQSM (Equation 10)
fastqsm_step πŸ”’
Step 2: FastQSM estimate
fgrad_masked πŸ”’
Mask-adaptive forward gradient (matching MATLAB’s gradfm_mex)
gradient_weights_component πŸ”’
gradient_weights_ilsqr πŸ”’
Gradient weights for streaking artifact estimation (Equation 15)
ilsqr
iLSQR: A method for estimating and removing streaking artifacts in QSM
ilsqr_simple
Simplified iLSQR returning only the final susceptibility map
ilsqr_with_progress
iLSQR with progress callback
lap1_axis πŸ”’
Compute second derivative along one axis using mask-adaptive stencil.
lap1_backward πŸ”’
Backward one-sided second derivative (matching MATLAB’s bd/bf functions)
lap1_forward πŸ”’
Forward one-sided second derivative (matching MATLAB’s fd/ff functions)
laplacian_weights_ilsqr πŸ”’
Laplacian weights for iLSQR (Equation 7)
lsmr
LSMR iterative solver for Ax = b
lsqr
LSQR iterative solver for Ax = b
lsqr_complex
LSQR iterative solver for Ax = b (complex version)
lsqr_step πŸ”’
Step 1: Initial LSQR solution with Laplacian weights
multiply_elementwise πŸ”’
norm πŸ”’
norm_complex πŸ”’
Complex norm
prctile πŸ”’
Percentile with linear interpolation (matching MATLAB’s prctile)
scale_complex_inplace πŸ”’
Complex scale in place
scale_inplace πŸ”’
sign_array πŸ”’
susceptibility_artifacts_step πŸ”’
Step 3: Estimate streaking artifacts using LSMR