Introduction
Monte Carlo simulation is an essential tool in emission tomography to assist in the design of new medical imaging devices, assess new implementations of image reconstruction algorithms and/or scatter correction techniques, and optimise scan protocols. Although dedicated Monte Carlo codes have been developed for Positron Emission Tomography (PET) and for Single Photon Emission Computerized Tomography (SPECT), these tools suffer from a variety of drawbacks and limitations in terms of validation, accuracy, and/or support (Buvat). On the other hand, accurate and versatile simulation codes such as GEANT3 (G3), EGS4, MCNP, and GEANT4 have been written for high energy physics. They all include well-validated physics models, geometry modeling tools, and efficient visualization utilities. However these packages are quite complex and necessitate a steep learning curve.
GATE combines the advantages of the GEANT4 simulation toolkit well-validated physics models, sophisticated geometry description, and powerful visualization and 3D rendering tools with original features specific to emission tomography. It consists of several hundred C++ classes. Mechanisms used to manage time, geometry, and radioactive sources form a core layer of C++ classes close to the GEANT4 kernel [Figure 1]. An application layer allows for the implementation of user classes derived from the core layer classes, e.g. building specific geometrical volume shapes and/or specifying operations on these volumes like rotations or translations. Since the application layer implements all appropriate features, the use of GATE does not require C++ programming: a dedicated scripting mechanism - hereafter referred to as the macro language - that extends the native command interpreter of GEANT4 makes it possible to perform and to control Monte Carlo simulations of realistic setups.
One of the most innovative features of GATE is its capability to synchronize all time-dependent components in order to allow a coherent description of the acquisition process. As for the geometry definition, the elements of the geometry can be set into movement via scripting. All movements of the geometrical elements are kept synchronized with the evolution of the source activities. For this purpose, the acquisition is subdivided into a number of time-steps during which the elements of the geometry are considered to be at rest. Decay times are generated within these time-steps so that the number of events decreases exponentially from time-step to time-step, and decreases also inside each time-step according to the decay kinetics of each radioisotope. This allows for the modeling of time-dependent processes such as count rates, random coincidences, or detector dead-time on an event-by-event basis. Moreover, the GEANT4 interaction histories can be used to mimic realistic detector output. In GATE, detector electronic response is modeled as a linear processing chain designed by the user to reproduce e.g. the detector cross-talk, its energy resolution, or its trigger efficiency.
Utilisation Gate version 6.1
- gate.sge
#!/bin/bash -l #$ -q all.q #$ -V #$ -N gate_sge #$ -cwd #$ -o $JOB_NAME.$JOB_ID.out #$ -e $JOB_NAME.$JOB_ID.err module load gate/6.1 source $GATE_HOME/env_gate.sh ## It is recommended to redirect the terminal output of the ## simulation (listing of physics processes, sources, run time, etc.) ## by writing it to a text file instead of printing it in the terminal. ## This allows one to store the terminal output of each simulation for later viewing Gate -a CoincWindow 10 -a lld 350 -a uld 650 myScanner.mac > terminal_output.txt
Utilisation Gate version 6.2
- gate.sge
#!/bin/bash -l #$ -q all.q #$ -V #$ -N gate_sge #$ -cwd #$ -o $JOB_NAME.$JOB_ID.out #$ -e $JOB_NAME.$JOB_ID.err module load gate/6.2 source $ROOT_SCRIPT source $GEANT4_SCRIPT ## It is recommended to redirect the terminal output of the ## simulation (listing of physics processes, sources, run time, etc.) ## by writing it to a text file instead of printing it in the terminal. ## This allows one to store the terminal output of each simulation for later viewing Gate -a CoincWindow 10 -a lld 350 -a uld 650 myScanner.mac > terminal_output.txt