Hi,
Thanks for that. It is much clearer now.
It also looks like the following steps will allow FSL
users to get correct NIFTI versions of your files,
in MNI space, including the left-right fix.
The steps are:
fslmaths original_image nifti_image
fslorient -forceneurological nifti_image
flirt -in nifti_image -ref $FSLDIR/data/standard/MNI152_T1_2mm -applyxfm -usesqform -out image_in_mni
Also, my understanding of Analyze for SPM was
that there is a site-specific defaults file where the
site can choose to interpret Analyze in a left-right
or right-left way, and hence even this isn't standard!
However, for your files I believe that the above will
do the necessary conversion.
All the best,
Mark
On 9 Nov 2010, at 13:24, Finn Aarup Nielsen wrote:
> Dear Mark,
>
>
> On Tue, 9 Nov 2010, Mark Jenkinson wrote:
>
>> What is really helpful is to know that it is the 26th slice.
>> Also, when you write that "FSLview 3.1.2 the program
>> reports X=39, Y=56, Z=25 and (0mm,0mm,0mm)". Is this
>> consistent with what you see with your toolbox and SPM?
>> If it is consistent then this lets me work out what to do.
>
> This is consistent. It is the 26th slice.
>
>
>> Could I also ask you to put up one example somewhere (upload
>> it to our site or host it on a website somewhere) of an original
>> Analyze file (hdr/img - with the original size) and an equivalent
>> nifti file that is padded to 91x109x91, so that I can check that
>> we are in agreement.
>
> I put up a few files:
>
> http://www2.imm.dtu.dk/~fn/tmp/amygdala-mni-sym-res.hdr
> http://www2.imm.dtu.dk/~fn/tmp/amygdala-mni-sym-res.img
>
> These are 91x109x91 equivalents of the 79x95x68 amygdala from the web site.
>
> ---
>
> http://www2.imm.dtu.dk/~fn/tmp/test.hdr
> http://www2.imm.dtu.dk/~fn/tmp/test.img
>
> A 79x95x68-volume with a (0mm,0mm,0mm)-blob equivalent with (40, 57, 26) in one-indexed, and - as my FSLview reports - (39, 56, 25) in zero-indexed.
>
> ---
>
> http://www2.imm.dtu.dk/~fn/tmp/test2.hdr
> http://www2.imm.dtu.dk/~fn/tmp/test2.img
>
> A 91x109x91-volume with a (0mm, 0mm, 0mm)-blob equivalent with (46, 64, 37) indexed from one.
>
> ---
>
> http://www2.imm.dtu.dk/~fn/tmp/test3.hdr
> http://www2.imm.dtu.dk/~fn/tmp/test3.img
>
> A 91x109x91-volume with a (10mm, 20mm, 30mm)-blob equivalent with (51, 74, 52) one-indexed. FSLview also consistently report it to be (50, 73, 51) zero-indexed. FSLview furthermore reports the stereotaxic coordinate to be (-10mm, 20mm, 30mm). The +10mm/-10mm difference is due to that I write by default in the SPM99 variant of the Analyze format, while (afaik) FSL interpret in the original Analyze format.
>
> ---
>
> Unfortunately I cannot immediately construct nifti-files.
>
>
> all the best
> Finn
>
>
>
>
>
>> On 9 Nov 2010, at 09:40, Finn Aarup Nielsen wrote:
>>
>>> Dear Mark,
>>>
>>> On Tue, 9 Nov 2010, Mark Jenkinson wrote:
>>>
>>>> It would certainly be possible to do this processing outside of
>>>> matlab, but I'm not exactly sure what your matlab functions
>>>> do and am also not 100% sure of the interpretation of the
>>>> Analyze fields (which is why we changed to nifti).
>>>
>>> Yes, nifti is certainly better in the aspect of stereotaxic volumes.
>>> Perhaps it would be an idea to convert the files on the web site to nifti and in 91x109x91. I was not aware of the problem. Sorry.
>>>
>>>> I downloaded one file (amygdala.hdr/img) and when I run fslhd
>>>> I get the following fields:
>>>> origin1 40
>>>> origin2 57
>>>> origin3 26
>>>> which I assume are the ones you are referring to as
>>>> the "centre voxel".
>>>
>>> Yes, this is the center voxel, indexed from one, and it means that the center of that center voxel (40, 57, 26) has stereotaxic coordinate (0mm,0mm,0mm).
>>>
>>>> Now as they come from SPM-Analyze, I am unsure whether this
>>>> means that the nifti voxel coordinate (40,57,26) should be
>>>> treated as the centre voxel, or whether I need to subtract 1
>>>> from each value to account for SPM using MATLAB. Do you
>>>> know whether the convention used here starts with a (0,0,0)
>>>> coordinate or a (1,1,1) coordinate? That is, for origin3=26,
>>>> does this mean that the centre voxel is on the 26th slice
>>>> or the 27th? With the nifti conventions - start at (0,0,0) - it
>>>> would be the 27th slice.
>>>
>>> You shouldn't extract 1. The center voxel is on the 26th slice (indexed from one). The x-dimention should be symmetric around the center plane:
>>>
>>> Vamygdala = brede_read_analyze('amygdala-mni-sym.img')
>>> Vamygdala.x([1 40 end])
>>>
>>> ans =
>>>
>>> -0.0780 0 0.0780
>>>
>>> Here the x-coordinate goes from -78mm to 78mm with the 40th slice (indexed from one) as the center voxel.
>>>
>>> I am a bit puzzled about your remark about the nifti convention. Would that be for Method 1, 2 or 3?
>>>
>>> Below I have a small Matlab script that sets a blob centered at (0mm, 0mm, 0mm) writes out a SPM99-Analyze file and reads it in with SPM. SPM reports the blob to be a (0mm, 0mm, 0mm). So it seems that at least my Brede Toolbox and SPM(99) is in agreement. When I read the file with Ubuntu FSLview 3.1.2 the program reports X=39, Y=56, Z=25 and (0mm,0mm,0mm). So that must mean that FSLview reports voxel indices indexed from zero. (There is still the infamous left/right issue)
>>>
>>>
>>> % Volume with blob at (0mm,0mm,0mm)
>>> V = brede_loc_loc2vol([0 0 0], 'template', 'spm99_default');
>>>
>>> % Value in voxel at (0mm,0mm,0mm)
>>> L = brede_vol_vol2loc(V);
>>> maxWithBrede = L.value
>>>
>>> % Write SPM99-Analyze
>>> brede_write_analyze(V, 'filename', 'test');
>>>
>>> % Origin voxel
>>> brede_read_analyze('test', 'output', 'origin')
>>>
>>> % Value at origin voxel
>>> V2 = brede_read_analyze('test');
>>> V2.volume(40,57,26)
>>>
>>> % Read with SPM (not setting defaults.analyze.flip = 0)
>>> v = spm_vol('test.img');
>>> [Y,XYZ] = spm_read_vols(v);
>>> [maxWithSpm,i] = max(Y(:));
>>>
>>> % Stereotaxic coordinate
>>> XYZ(:,i)
>>>
>>>
>>> all the best
>>> Finn
>>>
>>>
>>>> If you can let me know this information then I can work out
>>>> how to do the conversion easily with FSL tools.
>>>>
>>>> All the best,
>>>> Mark
>>>>
>>>>
>>>> On 9 Nov 2010, at 00:07, Finn Aarup Nielsen wrote:
>>>>
>>>>> Dear FSL'er,
>>>>>
>>>>>
>>>>> I am the one who made the volumes in http://neuro.imm.dtu.dk/services/jerne/ninf/voi.html
>>>>>
>>>>> The volumes are constructed from the coordinates in the 'old' BrainMap database. These coordinates were (supposed to be) in the Talairach 1988 space. I converted them to MNI-space with Brett's transformation.
>>>>>
>>>>> The volumes are using the SPM-Analyze format, so that the center voxel is indicated in the header file with the specific SPM-field. There might be the left/right ambiguity problem, but since the volumes are symmetric in the left/right dimension that shouldn't matter.
>>>>>
>>>>> So what is needed is zeropadding to get you to the 91x109x91 template. If you have matlab installed you can download my Brede Toolbox from http://neuro.imm.dtu.dk/software/brede/ and run the following commands:
>>>>>
>>>>> !wget http://neuro.imm.dtu.dk/services/jerne/ninf/voi/frontal_eye_fields-mni-sym.hdr
>>>>> !wget http://neuro.imm.dtu.dk/services/jerne/ninf/voi/frontal_eye_fields-mni-sym.img
>>>>>
>>>>> V = brede_read_analyze('frontal_eye_fields-mni-sym');
>>>>> Vt = brede_loc_loc2vol([], 'template', 'spm99_template');
>>>>> Vr = brede_vol_resample(V, 'targetvolume', Vt);
>>>>> brede_write_analyze(Vr, 'filename', 'frontal_eye_fields-mni-sym-res')
>>>>>
>>>>> That should get you a new resampled/zeropadded version with the dimension 91x109x91 --- in this case from the 'frontal eye fields' volume. When I view files written with my toolbox in Ubuntu FSLview 3.1.2 the x-sign is switched. However, as written before the volumes are symmetric so it shouldn't matter. I do not know if there is a non-matlab way to do this step.
>>>>>
>>>>>
>>>>> I hope this clarifies at least a bit.
>>>>>
>>>>> all the best
>>>>> Finn
>>>>>
>>>>> ___________________________________________________________________
>>>>>
>>>>> Finn Aarup Nielsen, DTU Informatics, Denmark
>>>>> Lundbeck Foundation Center for Integrated Molecular Brain Imaging
>>>>> http://www.imm.dtu.dk/~fn/ http://nru.dk/staff/fnielsen/
>>>>> ___________________________________________________________________
>>>>>
>>>>>
>>>>>
>>>>>> From: Mark Jenkinson <[log in to unmask]>
>>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I have corresponded about this a long time ago with someone but I do
>>>>>> not believe that we ever found a general, satisfactory solution.
>>>>>>
>>>>>> If you could find out somehow (from the people who post the data?)
>>>>>> how the voxel coordinates relate to MNI coordinates then we could work
>>>>>> out a way to convert them. However, from my brief look at the website
>>>>>> it seems like these are in Analyze format and hence they do not contain
>>>>>> useful, unambiguous coordinate information like a NIfTI file would. So
>>>>>> you definitely need to find out some more information first. Or, as you say,
>>>>>> get your hands on a whole brain image in the same space.
>>>>>>
>>>>>> All the best,
>>>>>> Mark
>>>>>>
>>>>>>
>>>>>> On 8 Nov 2010, at 17:37, H van Steenbergen wrote:
>>>>>>
>>>>>>> Dear FSL-users,
>>>>>>>
>>>>>>> I would like to use anatomical masks from the Jerne database. See http://neuro.imm.dtu.dk/services/jerne/ninf/voi.html
>>>>>>>
>>>>>>> Although these images are in MNI 2x2x2 mm space, the dimensions are different (79x95x68) from the standard FSL MNI space (91x109x91) and cannot be overlaid in fslview. Unfortunately, the database does not provide a whole brain image which could have been used for registration to the FSL standard brain (the resulting transformation matrix could then be used for registration of other masks).
>>>>>>>
>>>>>>> Any idea how to use flirt to transform the mask image to FSL MNI space? I found out that other people had the same problem in the past, but the solution has never been published on this mailing list.
>>>>>>>
>>>>>>> Thanks in advance for your reply.
>>>>>>>
>>>>>>> Henk van Steenbergen
>>>>>>> Leiden Institute for Brain and Cognition
>>>>>>>
>>>>>
>>>>
>>>
>>
>
|