3dLME glitch(::o?) - z-score outputs of post-hoc GLTs erroneously set to zero

Dear Gang,

I hope you’re keeping safe and well.

I’ve been running a number of LMEs as follows. At risk of having totally missed something obvious, I think I’ve spotted an issue with the calculation of the z-score of voxels within post-hoc GLTs. For posterity, I’m detailing the issue here.

3dLME -prefix /data/gcooper/movie_delay/LMEs/LME_“$stat"inny.nii.gz
-resid /data/gcooper/movie_delay/LMEs/LME
”$stat"_inny_resids.nii.gz
-model ‘moviemoviepart+age+gender’
-jobs 20
-ranEff ‘~1’
-qVars “age”
-qVarCenters “26.81”
-num_glt 4
-SS_type 3
-gltLabel 1 ‘all’ -gltCode 1 'moviepart : 0.333
beginning 0.333middle 0.333end’
-gltLabel 2 ‘BvM’ -gltCode 2 ‘moviepart : 1beginning -1middle’
-gltLabel 3 ‘BvE’ -gltCode 3 ‘moviepart : 1beginning -1end’
-gltLabel 4 ‘MvE’ -gltCode 4 ‘moviepart : 1middle -1end’ \

The weirdness begins with glt4; ‘all’, which I’m using to calculate the mean effect of each level of the ‘moviepart’ factor. The main output of ‘all’ correctly contains some very large mean values (>120). All voxels containing a mean score greater than some mystery threshold are being assigned a z-score of zero in the subsequent ‘all Z’ brick.

I’ve since side-stepped the issue, as the z-score of these voxels can be correctly calculated 3dcalc -expr ‘atanh(a)’

Is this a known issue? Is it an issue at all?

Thanks for the feedback!

If the output value at a voxel is NaN (not a number), 3dLME changes it to 0 when writing out. It is not clear why NaNs occurred in your case. To pinpoint the issue, I may have to request for data sharing.