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:
- Initial LSQR solution with Laplacian-based weights
- FastQSM estimate using sign(D) approximation
- Streaking artifact estimation using LSMR
- Artifact subtraction
Structs§
- Ilsqr
Params - 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
- 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