Hello,
When using sct_extract_metrics, what is the preferred way to deal with partial volume effects in the slice direction for slices and/or per-level data? That is, if the DTI slice coverage is C2:C6 for example, when in template space the top- and bottom-most levels will have only partial overlap with the available data as in the figure included. The middle two levels are obviously ok, but the levels overlapping the edge of the slice field of view appear to average true values with the 0 values without real data.
- One method would be to exclude voxels with 0 values similar to fslstats (-M) flag. In sct, negative values can be excluded with -discard-neg-val flag, but seemingly not 0 voxels.
- The alternative is to mask the input per-level masks with a mask that covers the DTI slice coverage, as an example, although that includes an additional per-subject step.
I am curious what the sct team recommends to deal with this?
thanks,
matt
#Additional commands used to demonstrate effects:
sct_extract_metric -i FA_reg.nii
-f {SCT_DIR}/data/PAM50/template/PAM50_levels.nii.gz
-method wa -perlevel 1
-vert 2:9
-vertfile ${SCT_DIR}/data/PAM50/template/PAM50_levels.nii.gz
#partial output:
…“PAM50_levels”,47220,0.2035233735461865
…“PAM50_levels”,47190,0.3026320017920616
…“PAM50_levels”,43000,0.45205885150531344
…,“PAM50_levels”,29481,0.24826158435652138
#if using fslstats in the same way, we get the same values (reordered for consistency w/sct):
fslstats -K ${SCT_DIR}/data/PAM50/template/PAM50_levels.nii.gz FA_reg.nii -m
#output:
0.203523
0.302632
0.452059
0.248262
#if using fslstats with non-zero mean, we get more appropriate values for the ‘edge’ levels, but the mid-levels are unchanged:
fslstats -K ${SCT_DIR}/data/PAM50/template/PAM50_levels.nii.gz FA_reg.nii -M
#output:
0.431152
0.302632
0.452059
0.454653