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.

Reply via email to