The simulation and reconstruction for PET imaging are developed and maintained by Auer Benjamin from the Brigham and Women's Hospital and Harvard Medical School, Boston, MA, USA, and Roncali Emilie from the University of California, Davis, CA, USA.
Contact: Auer, Benjamin Ph.D [email protected]
Table of contents:
- 1. Objective
- 2. Folder structure
- 2. Structure of the simulation
- a) main.mac
- b) mac/Verbose.mac
- c) mac/world.mac
- d) Data/GateMaterials.db
- e) System and detector geometry: PET_head
- f) Visualizing the geometry
- g) Defining the attenuation object/patient
- h) Setting up the source object
- i) Setting up the physics
- j) Setting up the acquisition parameters: Digitizer
- k) Format the output data
- 4. How to run the simulation
- 5. How to analyze the simulation data
- 6. How to reconstruct the simulation data
In this tutorial, we offer a step-by-step walk through on how to build and analyze a realistic PET simulation in GATE source page.
The folder structure where to find the phantom data and GATE macro files can be seen below,
The main.mac file contains all the reference to the geometry, physics, material database, and output needed to run the simulation
Visualizing the print out of the simulation is helpful to check information on the events and verify that the physics and geometry are modeled properly.
The world defines the experimental framework of the simulation. It must be large enough to contain the entire PET system and phantom. The tracking of particles is stopped once they leave the world
. The world
is shown as a gray wire frame in the visualization of the simulation shown below. GateMaterials.db
must contain all elemental compositions and densities of materials which are defined later in the macro.
The GateMaterials.db
contains all the material definition used in the simulation.
We defined the cylindrical geometry (size, position, and material) and the components of the the PET_head
following a volume hierarchy (Head, Module, Block, Crystal, and Layer).
The final layer is the crystal element,
The detector ring is created by duplicating elements,
The last step is to define which volumes are sensitive to interactions. The simulation record the events in the output files only for sensitive volumes.
The benchmark is a simple example of a water cylinder, but antropomorphic phantoms or CT-based phantoms can be created from patient data. Any of the phantoms available here can be used. The attenuation phantom can also be defined as a series of STL-based objects, we provide several STL-based phantoms here
We use in the benchmark a F-18 source analytically defined. The source can also be voxelized (i.e. from an actual patient activity distribution, or corresponding to a voxelized phantom). Any of the source phantoms available here can be used. Voxelized activity source phantoms can also be used in combination with the STL-based XCAT phantom.
The physics model plus range and energy cuts for different particles and medium need to be set.
The digitizer is the critical module in modeling the detection mechanism. It can include modeling of the electronics and create waveforms, energy resolution, and dead-time.
The simulation output can be controlled via the following command lines to create a binary ROOT listmode file output.
The acquisition time and the random generator can be controlled from the main macro (main.mac).
It is recomended to run the simulation with a low statistics to verify that it completes without issues and crashes.
The simulation can then be run with the desired statistics,
We provide a python script to analyze the simulation data runAnalysis.py
.
Run the analysis with,
python ./runAnalysis.py output
The output of this script for a 10,000 Bq simulation looks like below,
The GATE simulated data can be reconstructed via the CASToR software that allows for histogram and list-mode PET reconstruction with Time-Of-Flight modeling. CASToR provides tools to transform GATE macro and data to CASToR format files used in reconstruction. Details on CASToR and benchmarks can be found here.