Skip to content

Simple masking in BASIL #1387

@jan-petr

Description

@jan-petr

Description

Check if simple masking speeds up BASIL.

HENK: It should, but I would only do this if needed. There is a big benefit for "clinical" visual QC-ing for not masking: specific artifacts and noise etc can easier be appreciated when you don't mask, they may not be limited to the brain. And it is challenging to guarantee that masking is always perfect. So in practice it can be better if we don't need to mask.

IF we want to mask, it would be good to use the existing masking solutions that we use for defining the "analysis masks", or improving them.

In xASL_wrp_CreateAnalysisMask we create masks both in native and standard space:

x.P.Path_FoV
x.P.Path_MaskVascular
x.P.Path_Pop_MaskSusceptibility (only in standard space, and based on susceptibility templates)

I propose to add x.P.Path_TissueMask in the ASL folder, which would be

If I'm correct, we still run BASIL both in native and standard space? I would create the following booleans: bBASIL_nativeSpace and bBASIL_standardSpace, the first one replacing our current BASIL boolean. And we default to the native space BASIL only.

JAN: No standardspace BASIL.

image

This is an example with the normal brainmask used for the analysis masks: `(pvGM+pvWM)>0.5`. But this is not an analysis mask but an image processing mask, where we want to be more inclusive.

image

This is what I would suggest as processing brainmask: `(pvGM+pvWM+pvCSF)>0.1`.

Tasks

  • Add x.P.Path_BrainMaskProcessing to xASL_init_FileSystem
  • Consistency: Path_Pop -> Pop_Path
  • Save x.P.Path_BrainMaskProcessing in xASL_wrp_CreateAnalysisMask
  • Add the brain mask to xASL_quant_FSL (@MDijsselhof)
    Should this be on line 77 (where it says FIXME)?
    Should we then set the voxels outside the mask to zeroes? (i.e., does BASIL and FABBER use implicit masking?)
    This would be:
    Mathijs:
    For BASIL:

Image

  we should add this in `xASL_quant_FSL`, sub-function `xASL_sub_FSLOptions`, for example somewhere from line 461 
   `% 5. Extra BASIL fitting parameters onwards. We only have to put in `-m MaskPath` to FSL options for BASIL. We could also 
   add this at line 276 somewhere if we want it as default.

  For **FABBER**:

Image

  We add this to line 271 somewhere, as: `--mask=MaskPath` if we want it as default. 
BrainMask = xASL_io_Nifti2Im(x.P.Path_BrainMaskProcessing);
PWI(isnan(PWI)) = 0;
  • Also note that there are still unused options at the end of xASL_quant_FSL (for @jan-petr to check) JAN: You mean those that are commented out? These might be used in the future. I'm not sure who added them anyway. But if nobody wants then, we can remove them. Bea? Mathijs?
    HENK: they were added by Martin Craig I believe

Further tasks added by Jan:

  • Wait till Multi-PLD Look-Locker analysis #1323 is merged and then recreate this branch
  • Remove the standard space option and processing mask
  • Do not null any voxels in PWI (which should have been PWI4D anyway)
  • Pass the mask by default on FABBER
  • Pass the mask by default on BASIL
  • Write an option that allows to turn this masking OFF, make defaults for this, add to manual

Release notes

Add default masking to FSL quantification.

Metadata

Metadata

Assignees

Labels

featureNew feature, enhancement or request

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions