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
- 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