[Neuroimaging] [Nibabel] Public dataset generates unexpected
Matthew Brett
matthew.brett at gmail.com
Sun Sep 10 17:02:31 EDT 2017
Hi Elef,
On Sun, Sep 10, 2017 at 9:04 PM, Eleftherios Garyfallidis
<elef at indiana.edu> wrote:
> Clearly the title was meant to be "Public dataset generates unexpected
> affine matrix" :)
> Apologies,
> Eleftherios
>
> On Sun, Sep 10, 2017 at 1:31 PM Eleftherios Garyfallidis <elef at indiana.edu>
> wrote:
>>
>> Hello Matthew and all,
>>
>> I downloaded a dataset from NITRC by Boekel et al.
>> https://www.nitrc.org/projects/dwi_test-retest/
>>
>> and I used nibabel to get the affine and voxel size. The authors claimed
>> that the voxel size is 2x2x2mm^3 however the affine tells a different story.
>>
>> import nibabel as nib
>>
>> img = nib.load('pp26_dwi_run01_A.nii.gz')
>>
>> print(img.affine)
>> [[ -1.999 0.047 0.077 108.292]
>> [ 0.042 1.984 -0.471 -94.461]
>> [ 0.047 0.251 3.703 -116.857]
>> [ 0. 0. 0. 1. ]]
>>
>> nib.affines.voxel_sizes(img.affine)
>> array([ 2. , 2. , 3.733])
>>
>> The zoom function gives a different answer in agreement with the authors'
>> claim.
>>
>> img.header.get_zooms()[:3]
>> (2.0, 2.0, 2.0)
>>
>> Could it be that the authors damaged the header during preprocessing?
>> I am assuming here that nibabel is bringing the correct information i.e.
>> whatever is in the Nifti1 image.
>>
>> If you agree that this is an issue with the data itself. It would be nice
>> to contact the authors.
So - it looks like the authors have modified the sform field to set a
new affine matrix. You can check with e.g. "print(img.header)"
Maybe when they say "voxel size" they mean the values set in the
"pixdim", specifically? Anyway, if I were the authors, I would want
to know about the discrepancy. I think you can give them all the
details with the information from "print(img.header)"?
See you,
Matthew
More information about the Neuroimaging
mailing list