Differences between revisions 6 and 7
Deletions are marked like this. Additions are marked like this.
Line 12: Line 12:
fraction effect. PETSurfer will be released with FreeSurfer version
6.
fraction effect. The voxel-wise output can then be analyzed on the
cortical surface or in the volume
. PETSurfer will be released with
FreeSurfer version 6.
Line 19: Line 20:
1. gtmseg --s subject 1. Create a segmentation for the GTM
{{{
gtmseg --s subject
}}}
Line 22: Line 26:
recon-all. This creates several files in the FS folder used to run the
PVC methods. This should take about an hour or two.
recon-all. This creates a high-resolution segmentation (gtmseg.mgz) in
the FS folder used to run the PVC methods. This should take about an
hour or two. gtmseg.mgz will use aseg.mgz for subcortical structures,
?h.aparc.annot for cortical structures, and will estimate some
extra-cerebral structures. There are ways to customize this
segmentation to use different ROI definitions (eg, aparc.a2009s
instead of aparc).
Line 35: Line 44:
(eg, mri_concat pet.nii.gz --mean --o template.nii.gz), (eg, mri_concat pet.nii.gz --mean --o template.nii.gz). It might make
sense to do a time-weighted average rather than simple average, but we
do not have a tool to do that easily, but you can do it in matlab.

If you are not using PVC, you can use the template.reg.lta to sample
the PET volume onto the surface using mri_vol2surf, then apply
standard surface-based analysis.


3. Apply Partial Volume Correction
{{{
mri_gtmpvc --i pet.nii.gz --psf FWHM --seg gtmseg.mgz
--reg template.reg.lta --default-seg-merge --auto-mask PSF .01
--o gtmpvc.output
}}}

--psf FWHM is the full-width/half-max of the the point-spread function of
the scanner as measured in image space. Eg, an HR+ is typically about
6mm



By default, this will scale by pons. The output
will be gtm.stats.dat and gtm.nii.gz. They both basically have the
same information. gtm.stats.dat is an easy to read text file. Where
each row is an ROI, something like:

9 17 Left-Hippocampus subcort_gm 473 174.083 1.406 0.1216

9 = ninth row
17 = index for RO
Left-Hippocampus = name of ROI
subcort_gm = tissue class
473 = number of PET voxels in the ROI
174 = variance reduction factor for ROI (based on GLM/SGTM)
1.406 = PVC uptake of ROI relative to Pons
0.1216 = resdiual varaince across voxels in the ROI

gtm.nii.gz is a nifti file with each "voxel" being an ROI. The value
is the PVC uptake of ROI relative to Pons. These can easily be
concatenated together (mri_concat) and used as input to mri_glmfit
for group analysis.

PETSurfer provides a set of tools within FreeSurfer for Partical Volume Correction (PVC) and Kinetic Modeling. While these are typically used for PET analysis, the tools can be used in any context where PVC is needed. PVC methods include the Symmetric Geometric Transfer Matrix (SGTM), two-compartment model (also known as the Meltzer Method), three-compartment model (also known as the Muller-Gartner (MG) Method), region-based voxel-wise (RBV). SGTM is used for ROI analysis where as the others are used for voxel-wise analysis. All PVC implementations also accounts for the volume fraction effect. The voxel-wise output can then be analyzed on the cortical surface or in the volume. PETSurfer will be released with FreeSurfer version 6.

In all cases, you will need a T1-weighted MRI of your subject of sufficient quality to run in FreeSurfer. FreeSurfer analysis must be done first. After that, follow the steps below.

1. Create a segmentation for the GTM

gtmseg --s subject

where "subject" is the name of the FreeSurfer subject when you ran recon-all. This creates a high-resolution segmentation (gtmseg.mgz) in the FS folder used to run the PVC methods. This should take about an hour or two. gtmseg.mgz will use aseg.mgz for subcortical structures, ?h.aparc.annot for cortical structures, and will estimate some extra-cerebral structures. There are ways to customize this segmentation to use different ROI definitions (eg, aparc.a2009s instead of aparc).

2. Register your PET image with the anatomical:

mri_coreg --s subject --mov template.nii.gz --reg template.reg.lta

where template.nii.gz is the template image for your PET data. If your PET data only has one frame (eg, an SUV image), then that will be your template. If your PET data has multiple frames (ie, dynamic), then you will need to create the template from the dynamic data. This can be done by extracting a single frame (mri_convert pet.nii.gz --frame frameno template.nii.gz) or averaging all the time frames together (eg, mri_concat pet.nii.gz --mean --o template.nii.gz). It might make sense to do a time-weighted average rather than simple average, but we do not have a tool to do that easily, but you can do it in matlab.

If you are not using PVC, you can use the template.reg.lta to sample the PET volume onto the surface using mri_vol2surf, then apply standard surface-based analysis.

3. Apply Partial Volume Correction

mri_gtmpvc --i pet.nii.gz --psf FWHM --seg gtmseg.mgz 
--reg template.reg.lta --default-seg-merge  --auto-mask PSF .01 
--o gtmpvc.output 

--psf FWHM is the full-width/half-max of the the point-spread function of the scanner as measured in image space. Eg, an HR+ is typically about 6mm

By default, this will scale by pons. The output will be gtm.stats.dat and gtm.nii.gz. They both basically have the same information. gtm.stats.dat is an easy to read text file. Where each row is an ROI, something like:

9 17 Left-Hippocampus subcort_gm 473 174.083 1.406 0.1216

9 = ninth row 17 = index for RO Left-Hippocampus = name of ROI subcort_gm = tissue class 473 = number of PET voxels in the ROI 174 = variance reduction factor for ROI (based on GLM/SGTM) 1.406 = PVC uptake of ROI relative to Pons 0.1216 = resdiual varaince across voxels in the ROI

gtm.nii.gz is a nifti file with each "voxel" being an ROI. The value is the PVC uptake of ROI relative to Pons. These can easily be concatenated together (mri_concat) and used as input to mri_glmfit for group analysis.

PetSurfer (last edited 2023-12-07 16:43:39 by DougGreve)