Dear Finn,
I think it would be really useful for have nifti files at the same size
as the template (91x109x91) - at least for FSL users.
As a non-SPM user I don't really know what your matlab
functions do, so they are not very helpful for me.
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.
Also, there are not 3 methods - only 2. Either coordinates
start at 0 (as for FSL and NIFTI) or they start at 1 (for SPM
and MATLAB generally). If you consider that origin3=26
was written with the "start at 1" convention, then it ends
up being the 26th slice. If it is written with the "start at 0"
convention then it is the 27th slice. Calling the slice the
26th slice is independent of whether the 1st slice has a
coordinate of 0 or 1, and that is why I wrote it that way.
The 1st slice is always the extreme one, and hence the 2nd
is the one after that and so on. It is only when you say z=1
that it become ambiguous.
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.
All the best,
Mark
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
>>>>>
>>>
>>
>
|