Hi Watson and McLaren, thanks for your responses, it helps me understand more.
After the checking, I've found that the value read by spm_read_vols(SPM.xY.VY) is scaled, the scaled value is in pinfo.
1. I am curious why these voxel values should be scaled ?
2. How this scale be calculated ?
fprintf('%-40s: ','Mapping files') %-#
VY = spm_vol(SPM.xY.P);
fprintf('%30s\n','...done') %-#
%-check internal consistency of images
%--------------------------------------------------------------------------spm_check_orientations(VY);
%-place in xY
%--------------------------------------------------------------------------
SPM.xY.VY = VY;
%-Compute Global variate
%========================================================GM = 100;
q = length(VY);
g = zeros(q,1);
fprintf('%-40s: %30s','Calculating globals',' ') %-#
for i = 1:q fprintf('%s%30s',repmat(sprintf('\b'),1,30),sprintf('%4d/%-4d',i,q))%-#
g(i) = spm_global(VY(i));
end
fprintf('%s%30s\n',repmat(sprintf('\b'),1,30),'...done') %-#
% scale if specified (otherwise session specific grand mean scaling)
%--------------------------------------------------------------------------
gSF = GM./g;
if strcmpi(SPM.xGX.iGXcalc,'none')
for i = 1:nsess
gSF(SPM.Sess(i).row) = GM./mean(g(SPM.Sess(i).row));
end
end
%-Apply gSF to memory-mapped scalefactors to implement scaling
%--------------------------------------------------------------------------
for i = 1:q
SPM.xY.VY(i).pinfo(1:2,:) = SPM.xY.VY(i).pinfo(1:2,:)*gSF(i);
end
%-place global variates in global structure
%--------------------------------------------------------------------------
SPM.xGX.rg = g;
SPM.xGX.GM = GM;
SPM.xGX.gSF = gSF;
Because I've tried many packages in R (nifti / fmri / AnalyzeFMRI) and voxel values read by these packages are unscaled. Is there any difference to analyze data with scaled and unscaled voxels ?
(values from spm_read_vols) = (values from R packages)*(scale number in pinfo)
I've tried to check spm_slice_vol.m, but it seems be complied in .mex file and I can't see the origin code.
Thanks for your help, sincerely
Philip Lin
On Tue, 24 Dec 2013 13:14:35 -0600, MCLAREN, Donald <[log in to unmask]> wrote:
>There are likely two differences:
>(1) When you display things in SPM, the values are interpolated, turning
>the interpolation off should fix the issue if you told the program to
>display the same image that you loaded;
>(2) SPM.xY.VY.pinfo is likely different from hdr.pinfo, when its created
>from hdr=spm_vol(filename). The pinfo field contains scaling information.
>The pinfo field is modified during the 1st level model creation to make the
>mean 100. Thus, it will give you different values than the unscaled image.
>
>Hope this helps.
>
>Best Regards, Donald McLaren
>=================
>D.G. McLaren, Ph.D.
>Research Fellow, Department of Neurology, Massachusetts General Hospital and
>Harvard Medical School
>Postdoctoral Research Fellow, GRECC, Bedford VA
>Website: http://www.martinos.org/~mclaren
>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 Tue, Dec 24, 2013 at 12:21 PM, Chris Watson <
>[log in to unmask]> wrote:
>
>> How are they different?
>>
>> On 12/24/2013 09:40 AM, Philip Lin wrote:
>>
>> Hi all,
>>
>> I have a question about voxel values in SPM. If I read an image into SPM8 and use GUI (Display) to show the target image, the value for each voxel means intensity. If I read the same image by using spm_read_vols(SPM.xY.VY), the values for each voxel is apparently different to intensity. What's the difference between them ? What's the meaning of values from spm_read_vols ?
>>
>>
>> Thanks if there's any help, sincerely
>>
>> Philip Lin
>>
>>
>>
>>
>