Summary
In several participants exhibiting a decent amount of atrophy, the spatial normalization step isn't really adjusting the outer cortical regions and is instead appears to match the dura of the patient to the edge of the brain of the template. Registration is great in many parts of the brain (e.g., genu of corpus callosum), but not near any edge of cortex that has receded from the skull. In this example case, the see the superior part of the frontal cortex on the x=13 and x=-14 slices
Additional details
- QSIPrep version: 0.21.5.dev0+g36b93fe.d20240504
- Docker version: pennbbl/qsiprep:0.21.4
- Singularity version: apptainer/1.4.1
What were you trying to do?
Process older participants, some of whom have a decent amount of atrophy.
What did you expect to happen?
I expected better normalization in the frontal cortex.
What actually happened?
Here's my best guess at the source of the issue. QSIprep makes a brain mask with mri_synthstrip, which is amazing at what it's designed to do. However, the mask that mri_synthstrip creates tends to include dura, which is especially noticeable in brains that have lots of atrophy (e.g., see their T1w example: https://surfer.nmr.mgh.harvard.edu/docs/synthstrip/resources/examples.png), although this can be controlled with the --no-csf flag. In contrast, the template brain masks are tighter.
I suspect that the call to antsRegistration does a great job ensuring that the edges of the fixed and moving images are aligned, but that ends up being a problem, because the "edges" are different kinds of tissue, brain and dura respectively.
It is my impression that an ANTs tool like antsBrainExtraction.sh targets something different than mri_synthstrip, which is a tighter mask that excludes dura (and csf), more comparable to what is available for template images on templateflow.
Even if that's the source of the issue, I'm not really sure what would be the solution. Maybe call mri_synthstrip with the --no-csf flag? Alternatively, replace the template mask with one created by a default call to mri_synthstrip?
I have lots of these examples, so if it's agreed that A) this is an issue, and B) a likely source, then I'd be happy to experiment with solutions.
Reproducing the bug
FWIW,
args=['qsiprep', '--fs-license-file', '/opt/qsiprep_app/license.txt', '--output-resolution', '1.7', '--hmc_model', 'eddy', '--eddy-config', '/opt/qsiprep_app/eddy_params.json', '--unringing-method', 'mrdegibbs', '--denoise-method', 'patch2self', '--notrack', '--skip-bids-validation', '--work-dir', '/tmp/tmpg7dxtyvq', '--nthreads', '16', '--mem_mb', '32000', '/tmp/tmpol1gpc2z', '/tmp/tmpe2fisj5y', 'participant']
Summary
In several participants exhibiting a decent amount of atrophy, the spatial normalization step isn't really adjusting the outer cortical regions and is instead appears to match the dura of the patient to the edge of the brain of the template. Registration is great in many parts of the brain (e.g., genu of corpus callosum), but not near any edge of cortex that has receded from the skull. In this example case, the see the superior part of the frontal cortex on the x=13 and x=-14 slices
Additional details
What were you trying to do?
Process older participants, some of whom have a decent amount of atrophy.
What did you expect to happen?
I expected better normalization in the frontal cortex.
What actually happened?
Here's my best guess at the source of the issue. QSIprep makes a brain mask with
mri_synthstrip, which is amazing at what it's designed to do. However, the mask thatmri_synthstripcreates tends to include dura, which is especially noticeable in brains that have lots of atrophy (e.g., see their T1w example: https://surfer.nmr.mgh.harvard.edu/docs/synthstrip/resources/examples.png), although this can be controlled with the--no-csfflag. In contrast, the template brain masks are tighter.I suspect that the call to
antsRegistrationdoes a great job ensuring that the edges of the fixed and moving images are aligned, but that ends up being a problem, because the "edges" are different kinds of tissue, brain and dura respectively.It is my impression that an ANTs tool like
antsBrainExtraction.shtargets something different thanmri_synthstrip, which is a tighter mask that excludes dura (and csf), more comparable to what is available for template images on templateflow.Even if that's the source of the issue, I'm not really sure what would be the solution. Maybe call
mri_synthstripwith the--no-csfflag? Alternatively, replace the template mask with one created by a default call tomri_synthstrip?I have lots of these examples, so if it's agreed that A) this is an issue, and B) a likely source, then I'd be happy to experiment with solutions.
Reproducing the bug
FWIW,