I've posted a question about a strange behavior of mri_segstats if voxel size isn't 1 mm3 and --pv option is used.
I found a reason of this problem in the source code of mri_segstats.c (release_5_1_0 branch was checked out from read-only CVS source-code repository) In mri_segstats.c the return value from MRIvoxelsInLabelWithPartialVolumeEffects is used as the number of voxels; nhits = MRIvoxelsInLabelWithPartialVolumeEffects (seg, pvvol, StatSumTable[n].id, NULL, NULL); vol = nhits*voxelvolume; However, MRIvoxelsInLabelWithPartialVolumeEffects in utils/mri.c returns volume (e.g. volume += vox_vol; or volume += vox_vol * pv;), not the number of voxels. nhits value is adjusted by voxel volume in mri_segstats.c (vol = nhits*voxelvolume), so that the voxelvolume (vox_vol) is multiplied twice. The volume reported by mri_segstats, therefore, is too small if the voxel volume is less than 1 mm^3 or too large if the voxel volume is larger than 1 mm3. Note that this is not a problem when voxel volume is conformed to 1 mm3 (default option in recon-all). I think many of FreeSurfer programs do not support high-resolution (< 1mm3) image without conforming to 1 mm3 voxel, but could you fix the problem of mri_segstats? I want to use mri_segstats with partial volume correction for high-resolution MRI image. Thank you, --Masaya On 06/26/2012 08:40 AM, Masaya Misaki wrote: > Hello all, > > I found volume size reported by mri_segstats is changed very much > depending on voxel size when partial volume correction (--pv option) is > used. The difference was much larger than that can be explained by the > difference of image resolution. > (mri_segstats version is 1.75.22 2011/4/27 in FreeSurfer v5.1.0) > > When I performed segmentation for high-resolution image (voxel size = 0.5 > mm^3), I found all volumes of segmented regions in aseg.stats was too > small; about 8 times smaller than that was estimated from 1mm^3 conformed > image. > > So I tested the effect of voxel size on mri_segstats. > At first, recon-all was run with conforming 1mm^3 voxel (default option). > Then aseg.mgz and norm.mgz were conformed to small voxel size, and > mri_segstats was applied to the conformed files: > > mri_convert aseg.mgz aseg_cs05.mgz -cs 0.5 rt nearest > mri_convert norm.mgz norm_cs05.mgz -cs 0.5 > mri_segstats --seg aseg_cs05.mgz --pv norm_cs05.mgz \ > --ctab $FREESURFER_HOME/FreeSurferColorLUT.txt \ > --nonempty --excludeid 0 --sum aseg_cs05.stats > > (these are just for testing the effect of voxel size, not for actual > analysis) > > All volumes reported in aseg_cs05.stats (for 0.5mm^3 voxel) was about 8 > times smaller than aseg.stats (for 1mm^3 voxel). So the reported volume > was scaled with the same ratio as the voxel size. Same effect was observed > when voxel size was conformed to larger one (e.g. 1.5mm^3); reported > volumes were about 3 times larger than those for 1mm^3-voxel. The number > of voxels in the segmented regions (Nvoxels column in aseg.stats) were > similar across different voxel sizes while voxel sizes are different. > > When --pv option was not used, the reported volumes were almost the same > across different voxel sizes. So the partial volume correction in > mri_segstats seems to depend on voxel size. > > Can I fix this with some missed options or shouldn't I use --pv option > for the image with voxel size other than 1mm^3? > > thanks, > > > -- > Masaya Misaki Ph.D. > > _______________________________________________ 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.