Hi, Eugenio, TY again for your help. I did the computing without errors after your suggestions. I also computed the intensities based on nu.mgz, norm.mgz and T1.mgz. I would like to know the best measure I should consider, including because I intend to compare these values with intensity data from basal ganglia and cortical areas as I can find in aseg.stats. It follows my results: norm.mgz based meannorm= 78.725 variancenorm = 20.258 (stdev = 4.500888801)
nu.mgz based meannu = 87.362 variancenu = 26.343 (stdev =5.132543229) T1.mgz based meant1 = 84.023 variancet1 = 23.277 (stdev =4.824624338) It follows the MatLab/Octave code I used Norm=MRIread('norm_postres.mgz'); datanorm=Norm.vol(:); Ps=nMRIread('posterior_right_subiculum.mgz'); postsub=double(Ps.vol(:)); meannorm=sum(datanorm.*postsub)/sum(postsub); variancenorm=sum((datanorm-meannorm).^2.*postsub)/sum(postsub); Nu=MRIread('nu_postres.mgz'); datanu=Nu.vol(:); meannu=sum(datanu.*postsub)/sum(postsub); variancenu=sum((datanu-meannu).^2.*postsub)/sum(postsub); T1=MRIread('T1_postres.mgz'); datat1=T1.vol(:); meant1=sum(datat1.*postsub)/sum(postsub); variancet1=sum((datat1-meant1).^2.*postsub)/sum(postsub); The *postres.mgz files are nu, norm and T1 resampled as you suggested. And nMRIread is the workarounded version of MRIread I said in previous message. Cheers, Marcos Em Seg, 2013-06-10 às 16:58 -0400, Juan Eugenio Iglesias escreveu: > Hi Marcos, > 1. your fix of MRIread.m is great. I forgot of this bug; we should > totally take care of it. > 2. a problem is that nu.mgz (or norm.mgz) and the posteriors are in > difference voxel space. So, you need to resample norm.mgz to the space > of the subfields. To do so, you can use mri_convert with the option -rl > ("reslice like"): > mri_convert norm.mgz norm_resampled.mgz -rl posterior_subiculum.mgz > 3. Now you can do: > A=MRIread('norm.mgz'); > data=A.vol(:); > B=MRIread('posterior_subiculum.mgz'); > post=double(B.vol(:)); > mean=sum(data.*post)/sum(post); > variance=sum((data-mean).^2.*post)/sum(post); > Cheers, > /Eugenio > > On Mon, 2013-06-10 at 17:17 -0300, Marcos Martins da Silva wrote: > > Hi, Eugenio > > TY for your fast help. I understood you were suggesting to compute > > that on MatLab and I tried this: > > > > NU=MRIread('nu.mgz') ### that runs ok > > Ps=MRIread('posterior_left_subiculum.mgz') ### it fails with the > > following message > > WARNING: error reading MR params > > Attempted to access mr_parms(1); index out of bounds because > > numel(mr_parms)=0. > > > > Error in MRIread (line 100) > > tr = mr_parms(1); > > > > I solved creating a little customized nMRIread.m with the following > > changes: > > > > if numel(mr_parms) > 0 > > tr = mr_parms(1); > > flip_angle = mr_parms(2); > > te = mr_parms(3); > > ti = mr_parms(4); > > else > > mr_parms(1) = 0; > > mr_parms(2) = 0; > > mr_parms(3) = 0; > > mr_parms(4) = 0; > > tr = mr_parms(1); > > flip_angle = mr_parms(2); > > te = mr_parms(3); > > ti = mr_parms(4); > > end > > > > With those changes I assigned 0 to mr-parms elements so it runs > > without errors > > But whe I tried the following line I copy and pasted from your > > message: > > mean=sum(Ps.*NU)/sum(Ps); ### I got the following error > > Undefined function 'times' for input arguments of type 'struct'. > > > > Any help? > > Cheers, Marcos > > > > PS: I promised I will post the final solution to list. But I guess it > > is more didactic if these little problems are solved before. > > TY, again. > > Em Seg, 2013-06-10 às 14:19 -0400, Juan Eugenio Iglesias escreveu: > > > Hi Marcos, > > > the right way of doing this is using the soft posteriors to compute the > > > mean and variance, rather than thresholding at p=0.5. For instance, if > > > you wanted to compute the mean and variance of the intensitites of the > > > subiculum, you would do something like this: > > > mean=sum(Ps.*NU)/sum(Ps); > > > variance=sum(Ps.*(NU-mean).^2)/sum(Ps); > > > (where Ps is the posterior of the subiculum) > > > Cheers, > > > /Eugenio > > > > > > > > > > > > On Mon, 2013-06-10 at 15:12 -0300, Marcos Martins da Silva wrote: > > > > Hi, Freesurfer Experts > > > > > > > > After usual processing with recon-all -all we get the aseg.stats file > > > > with several data including intensity values like: > > > > normMean normStdDev > > > > normMin normMax normRange > > > > Left-Hippocampus 77.8939 7.5748 46.0000 > > > > 105.0000 59.0000 > > > > > > > > How could I get similar results for each hippocampal subfield, > > > > assuming I also generated all posterior*.mgz files corresponding to > > > > each subfield? > > > > I guess I should first binarize each of the subfields file with a > > > > threshold=127 to map all the pertinent voxels, and then use these > > > > files as masks over nu.mgz and calculate the intensities values. But I > > > > do not know the best way to accomplish this after the binarize step. > > > > > > > > Thank you in advance for any help. > > > > > > > > Marcos > > > > _______________________________________________ > > > > Freesurfer mailing list > > > > Freesurfer@nmr.mgh.harvard.edu > > > > https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer > > > > > >
_______________________________________________ Freesurfer mailing list Freesurfer@nmr.mgh.harvard.edu https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer The information in this e-mail is intended only for the person to whom it is addressed. If you believe this e-mail was sent to you in error and the e-mail contains patient information, please contact the Partners Compliance HelpLine at http://www.partners.org/complianceline . If the e-mail was sent to you in error but does not contain patient information, please contact the sender and properly dispose of the e-mail.