From 371d44a468ab17fba300708831483dcfa732499a Mon Sep 17 00:00:00 2001 From: Korbinian Eckstein Date: Tue, 10 Oct 2023 14:04:01 +1000 Subject: [PATCH] add masking commets --- README.md | 14 ++++++++++++++ src/tgv.jl | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index cd97483..295dbe0 100644 --- a/README.md +++ b/README.md @@ -140,3 +140,17 @@ For Mac GPU: using Metal chi = qsm_tgv(phase, mask, res; TE, fieldstrength, gpu=Metal); ``` + +## Masking for QSM + +Masking for QSM is a challenge, since including corrupted phase areas can cause global artefacts in the QSM result. See the publications [QSMxT](https://doi.org/10.1002%2Fmrm.29048) and [phase based masking](https://doi.org/10.1002/mrm.29368). + +A simple solution is to remove areas based on phase quality using [ROMEO](https://onlinelibrary.wiley.com/doi/10.1002/mrm.28563) + +```julia +using MriResearchTools +mask_phase = robustmask(romeovoxelquality(phase; mag)) +mask_combined = mask_phase .& mask_brain +``` + +The mask might contain holes, and a more sophisticated approach is taken in the [QSMxT toolbox](https://qsmxt.github.io/QSMxT/). diff --git a/src/tgv.jl b/src/tgv.jl index 2dd115e..26c0319 100644 --- a/src/tgv.jl +++ b/src/tgv.jl @@ -35,7 +35,7 @@ function qsm_tgv(phase, mask, res; TE, B0_dir=[0, 0, 1], fieldstrength=3, regula ret = nothing end - @showprogress dt=0.5 desc="Running $max_iterations TGV iterations..." for k in 1:max_iterations + @showprogress dt=1 desc="Running $max_iterations TGV iterations..." for k in 1:max_iterations ############# # dual update KernelAbstractions.synchronize(device)