The following exemple is intended to help you get familiar with the partial volume correction procedures. The sample data used are located on /data/scratch1/olivier/demo and are coming from a normal subject (joe). The data used are a high-resolution MRI scan after correction for image non-uniformity (joe_mri.mnc), and a PET scan of [18F]fluoro-L-dopa uptake performed on the GE-2048 system, that consists of a 15-slice, 30-frame image data set (joe_pet.mnc). The other image data set needed is the PET transmission volume (joe_trans.mnc) necessary for the registration procedure.
All the intermediate files have been generated using the commands presented thereafter, and you should be able to replicate this exemple and partial volume correction should no longer have any secret for you... Good luck!
mritotal joe_mri.mnc mri2tal_lin.xfm
tirmi joe_mri.mnc joe_trans.mnc -mrital_xfm mri2tal_lin.xfm mri2petThe ouput is the file mri2pet.xfm
mincresample -like joe_hiresPET.mnc -transformation mri2pet.xfm -zstart -18.5 -step 1 1 2 -nelements 256 256 60 joe_mri.mnc joe_MRIinPET.mncThe joe_hiresPET.mnc volume has been generated by summing up all dynamic frames to obtain a high-resolution PET volume, and by resampling along the axial dimension to obtain a slice thickness equivalent to that of the MRI volume. Such volume is best suited to estimate the performance of the registration procedure. Here, the output resampled volume consists of sixty 2-mm slices. The starting position of the resampled MRI volume (-18.5 mm) has been chosen such that it is exactly twice the PET axial resolution (6 mm FWHM for the PC-2048) lower than the centre of the first PET slice, ensuring enough data for the simulation of the first PET slice. As a rule-of-thumb, for a simulation of the complete 15-slice volume, the number of MRI slices should not be smaller than 15 x (6/zstep_of_MRI) + 2 x (12/ztep_of_MRI), which is 57 in our ex. here (and we chose 60). At that stage, you should verify the accuracy of the registration procedure by loading joe_hiresPET.mnc and joe_MRIinPET.mnc in REGISTER, and make sure there is a good alignment of these 2 volumes).
pvc_nlfit -nonlin joe_mri.mnc -linear_xfm mri2tal_lin.xfm mri2tal_nl.xfmThe output is mri2tal_nl.xfm
mincresample -like /avgbrain/brain/images/icbm_template_1.00mm.mnc joe_mri.mnc -transformation mri2tal_lin.xfm joe_mri_stx.mncThe MRI volume in Talairach space in then classified using tag cleaning:
classify_clean joe_mri_stx.mnc joe_stx-clas.mnc
stx_segment mri2tal_nl.xfm mri2tal_lin.xfm joe_stx-clas.mnc \ joe_labels_stx.mnc
pvc_transform_labels joe_labels_stx.mnc mri2pet.xfm mri2tal_lin.xfmGTM_002 GTM_006 GTM_010 GTM_014 TAC_003 TAC_007 TAC_011 TAC_015 GTM_003 GTM_007 GTM_011 GTM_015 TAC_004 TAC_008 TAC_012 GTM_004 GTM_008 GTM_012 TAC_001 TAC_005 TAC_009 TAC_013joe_hiresPET.mnc joe_labels_inPET.mnc -label FDOPA_labels.datThe tracer-dependent translation file FDOPA_labels.dat has been derived from /usr/local/mni/data/PVCcorrect/standard_labels.dat
![]()
![]()
![]()
Simulation of regional spread functions (RSF) for the different tissue components present in the segmented MRI volume in PET native space:
3. PET simulation pvc_petsim joe_labels_inPET.mnc joe_pet.mnc \ joe_RSF.mnc joe_ROI.mnc -label FDOPA_labels.dat
4. Data extraction Extraction of time-activity curves (TAC's) from the real PET images, and the geometric transfer matrices (GTM's) from the simulated (RSF) images:pvc_extract_matrix joe_RSF.mnc joe_pet.mnc joe_ROI.mnc \ GTM_ TAC_ listROI -label FDOPA_labels.datThe output are a bunch of GTM_??? and TAC_??? files. By default, the program will generate 15 of each for the PC-2048 system: GTM_001 and TAC_001 for the first slice, GTM_002 and TAC_02 for the 2nd slice, etc... GTM_001 GTM_005 GTM_009 GTM_013 TAC_002 TAC_006 TAC_010 TAC_014
>> pvc('TAC_','GTM_','../joe_pet.mnc')
After computing the inverse matrices and the resulting PVC TAC's, the program will launch a TK/Tcl program that allows to perform 3-D averaging across slices (see next paragraph for more info).
tac -cortac cortac -obstac obstac -roilist listROI -tacdir .where listROI is one of the output from pvc_extract_matrix. The -tacdir option indicates where the output data from pvc_extract_matrix are located.
A more detailed pic (45K) is available by clicking here or on the above pic
I>
Comments or suggestions? Please contact:
<olivier@bic.mni.mcgill.ca>
last updated: Jan. 1st, 1999