Skip to main content

Crate qsm_core

Crate qsm_core 

Source
Expand description

§QSM-Core

A Rust library for Quantitative Susceptibility Mapping (QSM) of the brain.

QSM-Core provides a complete set of algorithms for reconstructing magnetic susceptibility maps from MRI phase data, including brain extraction, phase unwrapping, background field removal, dipole inversion, and susceptibility source separation.

§Pipeline Overview

A typical QSM pipeline follows these steps:

  1. Brain extraction (bet) — mask the brain region from magnitude images
  2. Phase unwrapping (unwrap) — remove 2π wraps from MRI phase data
  3. Background field removal (bgremove) — isolate the local field from background sources
  4. Dipole inversion (inversion) — reconstruct susceptibility from the local field

Additional processing modules:

  • SWI (swi) — Susceptibility Weighted Imaging (CLEAR-SWI)
  • Chi-separation (separation) — decompose susceptibility into paramagnetic/diamagnetic components
  • Multi-echo processing (utils) — R2*/T2* mapping, phase combination (MCPC-3D-S), bias correction

§Feature Flags

  • parallel — enables Rayon-based multi-threading for FFT and iterative solvers
  • simd — enables SIMD acceleration via the wide crate

§Algorithms

StageMethods
Brain extractionBET
Phase unwrappingROMEO, Laplacian
Background removalV-SHARP, SHARP, PDF, iSMV, LBV, SDF
Dipole inversionTKD, TSVD, Tikhonov, TV-ADMM, NLTV, RTS, MEDI, TGV, iLSQR
SWICLEAR-SWI
SeparationChi-separation (MEDI-based)
Multi-echoMCPC-3D-S, R2*/T2* (ARLO), bias correction
UtilitiesFrangi vesselness, surface curvature, Otsu thresholding, QSMART

Modules§

bet
BET (Brain Extraction Tool) Implementation
bgremove
Background field removal methods
fft
FFT wrapper for 3D transforms using rustfft
inversion
Dipole inversion methods for QSM
kernels
Kernel functions for QSM processing
nifti_io
NIfTI file I/O for WASM
par
Conditional parallelism macros.
priority_queue
region_grow
separation
Susceptibility source separation
solvers
Iterative solvers for QSM
swi
Susceptibility Weighted Imaging (SWI)
unwrap
Phase unwrapping methods
utils
Utility functions for QSM processing

Macros§

maybe_par_chunks_mut
Parallel or sequential chunks iterator.
maybe_par_iter
Parallel or sequential immutable iterator over a slice.
maybe_par_iter_mut
Parallel or sequential mutable iterator over a slice.