Multiple-Time Graphical Analysis Tool
(VOI-based Patlak- and Logan-plots)
Introduction:
This program performs Multiple Time Graphical Analysis of PET data. This includes Patlak and Logan plot analysis. This program uses a VOI file (created with BrainMaker) to automatically compute Patlak and Logan plots for all of the regions in a *.voi file. There is minimal user interaction and display. To receive more interaction and to investigate your data more fully, use the GUI tool "spw_mtga.pro". Actually, it is a good idea to ALWAYS use the GUI tool first to make sure are no surprises when that manuscript or grant comes back with questions...
The basic steps of the program are:
Currently, only a reference region input (not measured blood) is supported.
There is no image display or plot display. However, a GUI is available to facilitate file selection and for setting parameters. The program can also be run in batch-made, using an IDL script to feed in a series of VOI/PET data pairs in sequence.
File Input:
1) Dynamic PET data in GE/Advance IEExport format, or microPET data. ANALYZE-7.5 format is also acceptable, but you will need to supply the frame durations (see below).
2) VOI file containing VOIs. Must be coregistered to PET data.
If you do not see the file you want when using the GUI, try changing the wildcard from "*.img" to "*.*".
One of the VOIs must be designated as the reference region. The default is a VOI named "Occ Cortex". If your reference region is Occipital Cortex, use the exact spelling: "Occ Cortex". Otherwise, use the Keyword "REFERENCE_REGION" to designate the name of the VOI in the VOI file to use for this. You can designate the REFERENCE_REGION via the minimal GUI (make sure to hit "Return" after typing the name), or via the SetProperty method e.g.:
oMTGA->SetProperty, REFERENCE_REGION="Cerebellum".
3) Frame Durations: If you use a PET file format with the frame durations in the header (e.g. GE/Advance, microPET) you do not need to worry about this. For other degenerate formats (e.g. ANALYZE-7.5), you must provide the frame durations through a text file. For each frame, type the duration (seconds), and separate the frames by commas. For example:
30, 30, 60, 60, 60, 60, 120, 120, 300, 300, 300, 300, 600, 600, 600, 600
Output:
For each VOI (including the reference region) a Patlak/Logan plot is created, and a line is fit to the points between the designated frames. The slope and intercept of the line are calculated.
Screen output: For each VOI, a single line is printed to the screen under a line of labels:
#, name, slope, offset, chisqr, num_pix
These labels refer to: # (index of VOI); name (name of VOI listed in file); slope (slope of the line fit between designated frames); offset (same); chisqr (value of chi-square obtained from the fit, an indication of the relative validity of the fit); num_pix (number of pixels/voxels in the VOI). You can simply copy these values and paste them into a spreadsheet or other document.
File output: The results of every analysis are written to a file. A new file is created for every analysis, even if the analyses are consecutive for the same object. Approximately 20 lines of header information are written containing details about source files and options used. Following this, the same information is written to the file as is printed to the screen (see above).
If the "DIAGNOSTICS" option is set, a large amount of further information is then written. This information is designed to aid in troubleshooting and to facilitate comparison and validation with other similar programs. It is highly recommended that you validate this program against your current favorite program in order to identify possible discrepencies. For every VOI, for every frame, the following information is written in Excel (spreadsheet) compatible form:
All radioactive concentration values are in units of microCi/cc.
Parameters:
Refer to the source code for parameters that you can set upon initialization, or after initialiazation using SetProperty.
Programming Tips:
The program is written as an IDL object. It can be called from the Spamalize GUI under "Analysis->Patlak Plots->VOI-based".
Scripting/Batch Mode:
This program is designed to be included in an IDL script, facilitating the rapid analysis of a large number of files. The GUI can also be used, to simplify browsing for files and setting parameters. The GUI is simply one of the object's methods.
Calling Example:
Here is an example of how the MTGA object is called and used. This is taken from the program "mtga_go.pro", which is used to call the object from Spamalize.
-------------------------------
PRO mtga_go
;* Create a new (empty) MTGA object: *
oMTGA = obj_new('mtga')
;* make sure object was created OK: *
if (obj_valid(oMTGA) EQ 0) then begin
print,'Warning- MTGA object invalid.'
RETURN
endif
;* Set Properties (parameters) for analysis: *
;* Run the MTGA: *
oMTGA->SetProperty, VERBOSE=1, DIAGNOSTIC=1
;* Create the GUI for file, parameter display: *
oMTGA->CreateGUI
END
--------------------------------
If a GUI is not used, but rather the program is being run through a batch-mode script, substitute the following lines for the GUI creation:
;* Feed in the filenames: *
oMTGA->SetProperty, FILENAME_PET='/fullpath/sub001_3D_dopa.pet', $
FILENAME_VOI='/fullpath/sub001_3D_dopa_sum.voi'
;* Run the MTGA analysis (if GUI not used): *
oMTGA->RunMTGA
--------------------------------
One thing to notre is that if the GUI is called, the object cleans up after itself when the user exits from (or otherwise destroys) the GUI. If you call the object from a script, you must take care of explicitly destroying the object when you are finished, otherwise you will fill up your available memory and/or registry:
obj_destroy, oMTGA
List of MTGA object methods (subroutines):