The transformation parameters are expected to be different. Here is a
little snippet of code to illustrate the fact that the same
transformation matrix (M) will give different voxel-to-voxel mappings
when the data have different voxel-to-world mappings (R0 and R1)....
R0=eye(4);
R1=R0;
R1(1,4)=20;
M=spm_matrix(randn(1,6));
R0\M*R0
R1\M*R1
Using motion parameters as regressors would give very slightly
different results that are dependent on the reference space, but I
don't think the effect is likely to be large. The reason for the
different results is that rigid-body motion is actually a nonlinear
transformation (it can not be defined by a linear combination of
spatial basis functions). The matrix logarithm of a rigid-body
transform can however be described by a combination of basis
functions.
M1 = [zeros(4,3) [1 0 0 0]'];
M2 = [zeros(4,3) [0 1 0 0]'];
M3 = [zeros(4,3) [0 0 1 0]'];
M4 = [0 1 0 0;-1 0 0 0; 0 0 0 0; 0 0 0 0];
M5 = [0 0 -1 0;0 0 0 0; 1 0 0 0; 0 0 0 0];
M6 = [0 0 0 0;0 0 1 0; 0 -1 0 0; 0 0 0 0];
p = randn(1,6);
R = expm(p(1)*M1+p(2)*M2+p(3)*M3+p(4)*M4+p(5)*M5+p(6)*M6)
The nonlinearities could be reduced by computing the transformations
relative to some mean rigid-body transform. If you are really
interested, this (Karcher mean) could be computed as described in
Roger Woods' 2003 paper "Characterizing volume and surface
deformations in an atlas framework: theory, applications, and
implementation".
Best regards,
-John
On 25 November 2011 23:37, MCLAREN, Donald <[log in to unmask]> wrote:
> John,
> I was just looking into this and found the same thing. Different rp file
> values with reoriented images.
> hdr(1).private.mat
> -3.0000 -0.0000 0 97.5000
> -0.0000 3.0000 0.0000 -96.9129
> 0.0000 0 4.5000 -56.4129
> 0 0 0 1.0000
> hdr(1).private.mat0
> -3.0000 0 0 97.5000
> 0 3.0000 0 -96.9129
> 0 0 4.5000 -56.4129
> 0 0 0 1.0000
> and reoriented file:
> hdr2(1).private.mat
> -3.0000 -0.0000 0.0000 97.5000
> 0.0000 3.0000 0.0000 -56.9129
> -0.0000 0 4.5000 -86.4129
> 0 0 0 1.0000
> hdr2(1).private.mat0
> -3.0000 0 0 97.5000
> 0 3.0000 0 -96.9129
> 0 0 4.5000 -56.4129
> 0 0 0 1.0000
> It looks like the .mat fields are slightly different; however, the same for
> all volumes. The question is thus, why are the realignment parameters
> different if the same data is used, just different transformation matrices.
> Additionally, since the rp files are different, using the motion regressors
> as covariates would change the models as well.
> Are the differences due to interpolation to produce the mean image resulting
> in slightly different values?
>
> Best Regards, Donald McLaren
> =================
> D.G. McLaren, Ph.D.
> Postdoctoral Research Fellow, GRECC, Bedford VA
> Research Fellow, Department of Neurology, Massachusetts General Hospital and
> Harvard Medical School
> Office: (773) 406-2464
> =====================
> This e-mail contains CONFIDENTIAL INFORMATION which may contain PROTECTED
> HEALTHCARE INFORMATION and may also be LEGALLY PRIVILEGED and which is
> intended only for the use of the individual or entity named above. If the
> reader of the e-mail is not the intended recipient or the employee or agent
> responsible for delivering it to the intended recipient, you are hereby
> notified that you are in possession of confidential and privileged
> information. Any unauthorized use, disclosure, copying or the taking of any
> action in reliance on the contents of this information is strictly
> prohibited and may be unlawful. If you have received this e-mail
> unintentionally, please immediately notify the sender via telephone at (773)
> 406-2464 or email.
>
>
>
> On Fri, Nov 25, 2011 at 3:43 PM, John Ashburner <[log in to unmask]>
> wrote:
>>
>> I don't have any ideas here. I think you really need to take a close
>> look at the data. You can read the fields in the headers by:
>>
>> P='blah.nii';
>> Nii=nifti(P)
>>
>> If you want to see the actual values, then you can look at a hidden
>> field of the nifti object:
>>
>> Nii.hdr
>>
>> Computing difference images via ImCalc, and displaying them via
>> CheckReg can also help to give clues.
>>
>> Best regards,
>> -John
>>
>> On 24 November 2011 10:53, Joshua Balsters <[log in to unmask]> wrote:
>> > Dear SPMers
>> >
>> > I found one previous discussion on this point but not much else, so
>> > apologies if I'm repeating what everyone already knows.
>> >
>> > I've recently starting using 4D files straight from the scanner (Philips
>> > Acheiva) in SPM rather than splitting them into 3D files using fslsplit. I'm
>> > finding in most cases there are subtle (+/-0.5mm) to drastic (over 2mm)
>> > differences in my realignment parameters depending on whether I use the 4D
>> > or 3D versions of the same datasets. These differences are only in the
>> > translations and not the rotations.
>> >
>> > It would be great if anyone could explain why this happens. I had a
>> > quick look for differences between the 3D and 4D files and I think the issue
>> > is that fslplit is automatically changing my datatype from int16 to float32,
>> > and i read in a previous discussion that it also changes the scaling factor
>> > which is probably the bigger issue.
>> >
>> > any advice on this issue would be greatly appreciated!
>> >
>> > Best
>> > Josh
>> >
>
>
|