Expand description
Susceptibility source-separation stage.
Config-driven dispatcher over the χ-separation methods (χ+ / χ−). Unlike the
main phase→field→BFR→inversion pipeline, separation is a downstream stage that
needs extra inputs (a conventional QSM plus a relaxometry map / multi-echo
magnitude), so it is invoked explicitly with a SeparationInputs bundle
rather than folded into the top-level runner.
Units follow the library convention: local field & QSM in ppm, R2’/R2* in Hz,
echo times in seconds. Output is (chi_pos ≥ 0, chi_neg ≤ 0, chi_total) in ppm.
§Reference pipelines
Each method’s module docs have a “Reference pipeline” section: the masking, unwrapping, background removal and QSM method its authors fed it, and where this stage’s inputs differ from theirs. The main differences, all recorded there with sources:
Decomposetakes a QSM per echo (SeparationInputs::qsm_per_echo), as its authors do (a STAR-QSM per echo); producing those is the caller’s.- The analytic methods’ D_r is calibrated at 3 T only.
ChiSepMediandChiSepIlsqrdefault to the χ-separation toolbox’s137·(B0/2.9)(from the authors’ code).WaveSepkeeps 137 Hz/ppm at every field, whileR2starQsmandHcChisepscale theirs by B0/3; those choices do not come from the authors. ChiSepNetruns the authors’ route by default (ChiSepNetRoute::Toolbox): its own QSMnetME QSM (soSeparationInputs::qsmis not read), R2′ from a measured map or R2PRIMEnet on R2*, in the 3 T, 1 mm training frame.
Structs§
- Separation
Inputs - Inputs for
run_separation. Provide whatever the chosen algorithm needs; the dispatcher errors if a required input is missing. - Separation
Result - Result of
run_separation: paramagnetic / diamagnetic / total maps in ppm.
Functions§
- check_
inputs 🔒 - Check what the separation algorithms would otherwise
assert!on, so bad input is an error rather than a panic: map sizes, the multi-echo magnitude’s echo count, Decompose’s minimum of three echoes, and an empty mask. - need 🔒
- Require an optional input, or return an
InvalidInputerror naming it. - run_
chi_ 🔒sepnet - Source the χ-sepnet weights and run inference (requires the
onnxfeature). - run_
chi_ 🔒sepnet_ toolbox - Source the weights and run χ-sepnet by the authors’ route (
crate::separation::chisepnet_toolbox). - run_
separation - Run the configured χ-separation algorithm.
- run_
susep_ 🔒net - Source the SUSEP-Net weights and run inference (requires the
onnxfeature).