Automatic Partial Volume Correction: Exemple

[picture] 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!

1. MRI - PET registration

First, you need to calculate the linear transformation matrix from MRI native space to Talairach space:
mritotal joe_mri.mnc mri2tal_lin.xfm 

Second, you need to run tirmi:
tirmi joe_mri.mnc joe_trans.mnc -mrital_xfm mri2tal_lin.xfm mri2pet
The ouput is the file mri2pet.xfm
Since you want to know if the registration procedure was successful, you may want at this stage to have a look at the MRI volume in PET native space. You need then to resample the original MRI according to this transformation file by invoking the command:
mincresample -like joe_hiresPET.mnc  -transformation mri2pet.xfm 
-zstart -18.5 -step 1 1 2 -nelements 256 256 60 joe_mri.mnc joe_MRIinPET.mnc 
The 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).

2. MRI segmentation

(see also instructions from Louis Collins ) Following the registration procedure, the tissue identification consists in two different steps, respectively referred thereafter as the Classification procedure, and the Segmentation procedure.
Non-linear Registration with average brain target in Talairach space:
pvc_nlfit -nonlin joe_mri.mnc -linear_xfm mri2tal_lin.xfm mri2tal_nl.xfm
The output is mri2tal_nl.xfm
Classification of grey, white, and CSF components in Talairach space: You first need to compute the MRI volume in Talairach space with the same sampling rates as the ICBM 1-mm template:
mincresample -like /avgbrain/brain/images/icbm_template_1.00mm.mnc
joe_mri.mnc -transformation mri2tal_lin.xfm joe_mri_stx.mnc 
The MRI volume in Talairach space in then classified using tag cleaning:
classify_clean joe_mri_stx.mnc joe_stx-clas.mnc

Automatic segmentation of anatomical structures:
stx_segment mri2tal_nl.xfm mri2tal_lin.xfm joe_stx-clas.mnc \
joe_labels_stx.mnc

Mapping of MRI volume in PET native space with labels defined in Talairach space:
pvc_transform_labels joe_labels_stx.mnc mri2pet.xfm mri2tal_lin.xfm 
joe_hiresPET.mnc joe_labels_inPET.mnc -label FDOPA_labels.dat
The tracer-dependent translation file FDOPA_labels.dat has been derived from /usr/local/mni/data/PVCcorrect/standard_labels.dat

[picture]

[picture] [picture]

3. PET simulation

Simulation of regional spread functions (RSF) for the different tissue components present in the segmented MRI volume in PET native space:
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.dat
The 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
GTM_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_013

5. Matrices inversion

Since this step generates quite a few files, it is better to create a subdirectory tac and work in it. Run MATLAB by typing 'matlab' on the SGI. Then run the command:
>> 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).

6. Three-dimensional analysis

In order to limitate the noise magnification phenomenon inherent in the partial volume correction, this step allows to perform data averaging across slices. The command invoked from within MATLAB during step 5 is the following:
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.
N.B.1 You do NOT need to run this command, as it is invoked from within MATLAB. N.B.2 When the "tac" interactive window appears on your screen, you need first to specify the name of the average observed (obstac) and pvc TAC (pvctac) before actually selecting the regions you want to average. Indeed, the program will automatically update the content of the specified TAC files.


[picture]

A more detailed pic (45K) is available by clicking here or on the above pic

Comments or suggestions? Please contact:
<olivier@bic.mni.mcgill.ca>
last updated: Jan. 1st, 1999