Thanks, again, John, for continuing in your efforts to helping me solve this. I have replies
interspersed below, but most important, I think are these responses from spm_orientations. They
confirm that something must be wrong - but I'm not sure what, although I have a theory...
>> spm_defaults
>> spm_orientations
LAI Left-handed
/home/juliana/dissertation/controls/phono4_newcontrol/bold/phono_003/minc_split/bold3_7.img
RAI Right-handed
/home/juliana/dissertation/controls/phono4_newcontrol/bold/phono_003/minc_split/rbold3_7.img
LPI Right-handed
/home/juliana/dissertation/controls/phono4_newcontrol/bold/phono_003/minc_split/wrbold3_14.img
LPI Right-handed
/home/juliana/dissertation/controls/phono4_newcontrol/bold/phono_003/minc_split/swrbold3_16.img
The odd bit is that the LAI raw data images are called Left-handed and the RAI, realigned images
are called Right-handed. Is this because they run Inferior to Superior? Images that are flipped
top to bottom would appear to an on-looker to be reversed left-right from each other. See the
response below about negative voxels for more info about this.
Million-dollar question:
And, ultimately, if my normalized images are indeed LPI, right handed, and defaults.analyze.flip
is set to 0, then does that mean my results on the glass brain should show right on the right and
left on the left? This is the question that started this all...
Thanks again for any thoughts any of you SPMers may have.
Best,
Juliana
(response to John's questions below are interspersed)
On Thu, 26 May 2005 12:52:40 +0000
John Ashburner <[log in to unmask]> wrote:
>
>
>> Continuing my investigation of my data using the spm_orientations code,
>> I've run across something very confusing to me.
>>
>> Using the display function, I checked my raw data and my normalized data
>> (for both structurals and functionals). For the structurals, using the
>> display function I see that the voxel value changes correspond with the
>> output from spm_orientations. For example, before normalization, using
>> SPM2's display function:
>> x increases as I move from Anterior to Posterior (A)
>> y increases as I move from Superior to Inferior (S)
>> z increases as I move from Left to Right (L)
>> Correspondingly, the output for spm_orientations indicates my data is Right
>> handed, (A,S,L) After Normalization, the structurals are Right handed
>> (LPI). This matches exactly with the T1 template which was the
>> normalization target.
>
> So you are working with flip=0. The handedness of the spatially normalised
> images should be the same as that indicated by the flip setting, rather than
> that of the template image.
Yes, my flip was set to 0.
>
>>
>> So far, so good.
>>
>> However...
>> When I look at my functional data, there is a discrepancy between what
>> happens to my voxel values in Display and what spm_orientations returns.
>
> Look again using the Display button. If you move the crosshairs to voxel
> 1,1,1 then you'll find that it is in a different position when you display
> using voxel space (compared to the position you get when you display the
> anatomical images). This is because displaying is done so that the images
> are visualised within a right-handed system - even if the bytes are stored
> using a left handed one.
>
> The best way to check is to look for any negative voxel sizes.
Hmmm...if I am anywhere on the brain, then all voxel sizes are positive. However, if I am on the
very outskirts of the display, then:
RAS corner: x, -y, z
LAS corner: -x, y, z
LPS corner: all positive
RPS corner: all positive
The same pattern holds for RAI, LAI, LPI, and RPI.
>
>> Also, before normalization, spm_orientations runs without warning messages,
>> after normalization, it returns an answer preceded by "Warning, can't get
>> default Analyze orientation, assuming flipped".
>
> When you start spm, it runs spm_defaults.m , which loads the default settings,
> which are stored in the global variable called 'defaults'. If you run
> spm_orientations without first running spm_defaults, then the routines can
> not find defaults.analyze.flip . If this can not be found, then you get the
> warning message, which means exactly what it says. The routines are assuming
> that your data are stored left-handed (i.e. defaults.analyze.flip=1) - which
> may not be the correct orientation for you.
O.K. if I run spm_defaults.m in matlab, and then use spm_orientations, I don't the the warning
message, the responses for spm_orientations are the same whether I run the spm_defaults.m first or
not.
>
>For any Analyze format image that does not have a .mat file (created by SPM2),
> SPM2 can only determine the handedness using the flip parameter.
>
>> Prior to normalization, looking at my input files in display gives results
>> that DO MATCH spm_orientations output.
>> Left handed (LAS)
>
> Something is wrong. LAS indicates right-handed storage.
yes, weird, see the first part of the this message. maybe related to the negative voxel values in
the far corners of my images?
>
>> After normalization, however, using display
>> x increases as I move from Left to Right (L)
>> y increases as I move from Posterior to Anterior (P)
>> z increases as I move from Superior to Inferior (S)
>> spm_orientations returns Right handed, LPI instead of LPS.
>>
>> How can this be?
>
> I can't actually think of any reason at all why SPM would reverse the
> direction of the slices when displaying an image. I would expect the storage
> of spatially normalised images to be LPI.
>
mea culpa. they do match.
>>
>> If my data are actually LPS, and SPM2 "thinks" they are LPI, then it would
>> appear as if the data are left-right flipped, I think.
>
> Left-right flipped and rotated by 180 degrees. It may be easier to think in
> terms of up-down flipped.
>
>> It's as if instead
>> of standing behind my subject as they are lying down (my view is Superior),
>> and my left is their left, I am standing at the foot of the gurney (my view
>> is Inferior) and my left is their right.
>>
>> This would explain why the activation I was expecting to find on the left
>> (language activity) is instead predominant on the right.
>>
>> Still - I don't understand why SPM2 "thinks" LPI after normalization, if my
>> data are LPS after normalization particularly as up until normalization,
>> spm_orientations and Display agreed about my data. Presumably this has
>> something to do with the Warning message, but I'm still not clear on
>> exactly what is happening.
>
> Are you sure they are LPS?
>
>>
>> Any help is appreciated. Many thanks to anyone who manages to slog through
>> this!
>
> When do you get the warning message? If you get it during spatial
> normalisation or any time when the data are being changed, then it would be
> disasterous. Not having the defaults loaded is not a problem for most people
> who have flip set to 1. It is a problem if flip is set to zero though. I
> really should have written spm_flip_analyze_images so that that was where the
> image handedness was set - rather than by doing it in spm_defaults.m .
>
I only get that warning message if I run spm_orientations before loading spm_defaults.m and when I
am checking normalized data. I don't get it if I check unnormalized data (regardless of whether
spm_defaults.m has been loaded). During normalization I get the following warning, I hadn't
noticed it before, and am not sure if it is a problem:
Warning: Ignoring hdr.hist.orient field of
"/home/juliana/dissertation/controls/phono4_newcontrol/3danat/006/3danat6_1.hdr".
> In /usr/local/spm2/spm_vol_ana.m at line 78
In /usr/local/spm2/spm_vol.m (subfunc) at line 93
In /usr/local/spm2/spm_vol.m (subfunc1) at line 62
In /usr/local/spm2/spm_vol.m (subfunc2) at line 51
In /usr/local/spm2/spm_vol.m at line 37
In /usr/local/spm2/spm_normalise.m at line 123
In /usr/local/spm2/spm_normalise_ui.m (run_ui) at line 352
In /usr/local/spm2/spm_normalise_ui.m at line 272
Warning: Assuming a scalefactor of 1 for
"/home/juliana/dissertation/controls/phono4_newcontrol/3danat/006/3danat6_1.img".
> In /usr/local/spm2/spm_vol_ana.m at line 129
In /usr/local/spm2/spm_vol.m (subfunc) at line 93
In /usr/local/spm2/spm_vol.m (subfunc1) at line 62
In /usr/local/spm2/spm_vol.m (subfunc2) at line 51
In /usr/local/spm2/spm_vol.m at line 37
In /usr/local/spm2/spm_normalise.m at line 123
In /usr/local/spm2/spm_normalise_ui.m (run_ui) at line 352
In /usr/local/spm2/spm_normalise_ui.m at line 272
>
> Bye for now,
> -John
>
>
On Thu, 26 May 2005 12:52:40 +0000
John Ashburner <[log in to unmask]> wrote:
>
>
>> Continuing my investigation of my data using the spm_orientations code,
>> I've run across something very confusing to me.
>>
>> Using the display function, I checked my raw data and my normalized data
>> (for both structurals and functionals). For the structurals, using the
>> display function I see that the voxel value changes correspond with the
>> output from spm_orientations. For example, before normalization, using
>> SPM2's display function:
>> x increases as I move from Anterior to Posterior (A)
>> y increases as I move from Superior to Inferior (S)
>> z increases as I move from Left to Right (L)
>> Correspondingly, the output for spm_orientations indicates my data is Right
>> handed, (A,S,L) After Normalization, the structurals are Right handed
>> (LPI). This matches exactly with the T1 template which was the
>> normalization target.
>
> So you are working with flip=0. The handedness of the spatially normalised
> images should be the same as that indicated by the flip setting, rather than
> that of the template image.
>
>>
>> So far, so good.
>>
>> However...
>> When I look at my functional data, there is a discrepancy between what
>> happens to my voxel values in Display and what spm_orientations returns.
>
> Look again using the Display button. If you move the crosshairs to voxel
> 1,1,1 then you'll find that it is in a different position when you display
> using voxel space (compared to the position you get when you display the
> anatomical images). This is because displaying is done so that the images
> are visualised within a right-handed system - even if the bytes are stored
> using a left handed one.
>
> The best way to check is to look for any negative voxel sizes.
>
>> Also, before normalization, spm_orientations runs without warning messages,
>> after normalization, it returns an answer preceded by "Warning, can't get
>> default Analyze orientation, assuming flipped".
>
> When you start spm, it runs spm_defaults.m , which loads the default settings,
> which are stored in the global variable called 'defaults'. If you run
> spm_orientations without first running spm_defaults, then the routines can
> not find defaults.analyze.flip . If this can not be found, then you get the
> warning message, which means exactly what it says. The routines are assuming
> that your data are stored left-handed (i.e. defaults.analyze.flip=1) - which
> may not be the correct orientation for you.
>
>For any Analyze format image that does not have a .mat file (created by SPM2),
> SPM2 can only determine the handedness using the flip parameter.
>
>> Prior to normalization, looking at my input files in display gives results
>> that DO MATCH spm_orientations output.
>> Left handed (LAS)
>
> Something is wrong. LAS indicates right-handed storage.
>
>> After normalization, however, using display
>> x increases as I move from Left to Right (L)
>> y increases as I move from Posterior to Anterior (P)
>> z increases as I move from Superior to Inferior (S)
>> spm_orientations returns Right handed, LPI instead of LPS.
>>
>> How can this be?
>
> I can't actually think of any reason at all why SPM would reverse the
> direction of the slices when displaying an image. I would expect the storage
> of spatially normalised images to be LPI.
>
>>
>> If my data are actually LPS, and SPM2 "thinks" they are LPI, then it would
>> appear as if the data are left-right flipped, I think.
>
> Left-right flipped and rotated by 180 degrees. It may be easier to think in
> terms of up-down flipped.
>
>> It's as if instead
>> of standing behind my subject as they are lying down (my view is Superior),
>> and my left is their left, I am standing at the foot of the gurney (my view
>> is Inferior) and my left is their right.
>>
>> This would explain why the activation I was expecting to find on the left
>> (language activity) is instead predominant on the right.
>>
>> Still - I don't understand why SPM2 "thinks" LPI after normalization, if my
>> data are LPS after normalization particularly as up until normalization,
>> spm_orientations and Display agreed about my data. Presumably this has
>> something to do with the Warning message, but I'm still not clear on
>> exactly what is happening.
>
> Are you sure they are LPS?
>
>>
>> Any help is appreciated. Many thanks to anyone who manages to slog through
>> this!
>
> When do you get the warning message? If you get it during spatial
> normalisation or any time when the data are being changed, then it would be
> disasterous. Not having the defaults loaded is not a problem for most people
> who have flip set to 1. It is a problem if flip is set to zero though. I
> really should have written spm_flip_analyze_images so that that was where the
> image handedness was set - rather than by doing it in spm_defaults.m .
>
>
> Bye for now,
> -John
>
>
|