Software/Geant4/Tutorials/Advanced/Computed Tomography
Introduction
This tutorial is based on the GEANT4 DICOM example originally developed by Louis Archambault, Luc Beaulieu and Vincent Hubert-Tremblay. In this example a list of DICOM files (.dcm) are converted to ASCII files (.g4dcm) and binary files (.g4bin) that can be read by GEANT4. Each of these files corresponds to a Z Computed tomography (CT) slice. Then, the .g4dcm (.g4bin) files are merged into one volume.
The geometry is constructed by voxelizing this volume. There are four navigation algorithms used to create the voxel geometry: G4RegularNavigation
, G4VNestedParameterisation
, G4SmartVoxel
/G4VoxelNavigation
and G4PVReplica
.
The material for this volume is constructed by converting the pixel values (Hounsfield numbers) from the DICOM images to densities using the Hounsfield scale. Then, the densities are converted to material types according to this table.
A simple monenergetic electron beam is simulated using G4ParticleGun
class. The output of the tutorial is a text file with dose deposition in several voxels. The dose is scored using classes G4MutiFunctionalDetector
, G4VPrimitiveScorer
, G4PSDoseDeposit3D
and G4THitsMap
.
This is one of the DICOM files used in the tutorial.
How to run the tutorial
Create folder DICOMFolder
ssh -X username@plus1.hep.ucl.ac.uk username@plus1.hep.ucl.ac.uk's password: type your password here [username@plus1 ~]$ mkdir DICOMFolder [username@plus1 ~]$ cd DICOMFolder
Setup your environment
[username@plus1 DICOMFolder]$ source /unix/pbt/software/scripts/pbt.sh
Copy the code to your working directory and rename it
[username@plus1 DICOMFolder]$ cp -r /unix/pbt/tutorials/advanced/DICOM . [username@plus1 DICOMFolder]$ mv DICOM DICOM_source
Create build directory
[username@plus1 DICOMFolder]$ mkdir DICOM_build
Compile the code with make
and cmake
[username@plus1 DICOMFolder]$ cd DICOM_build [username@plus1 DICOM_build]$ cmake -DGeant4_DIR=/unix/pbt/software/dev /home/username/DICOMFolder/DICOM_source [username@plus1 DICOM_build]$ make
Run Macro run.mac
[username@plus1 DICOM_build]$ ./DICOM run.mac
Analyze the data
This is a link to the official DICOM tutorial explanation notes. We recommend to read it before proceeding with this tutorial.
Text files
The macro run.mac
produces a text file dicom.out
which includes the dose deposition in several voxels.
Run with different settings
Chose among several voxelization algorithms:
- G4RegularNavigation :
G4RegularNavigation
class is the default class for this tutorial. This algorithm skips frontiers between voxels when they have the same material i.e. "replacing group of voxels with a smaller number of larger voxels".
- G4NestedParameterization :
To run with this voxelization algorithm you need to set the variable DICOM_NESTED_PARAM
[username@plus1 DICOM_build]$ export DICOM_NESTED_PARAM=1
You can check if it is set correctly by typing in the command line
[username@plus1 DICOM_build]$ env
Then, compile and run the code:
[username@plus1 DICOM_build]$ make [username@plus1 DICOM_build]$ ./DICOM run.mac
- G4SmartVoxel / G4VoxelNavigation :
Using smart voxels required a huge amount of memory. At /home/username/DICOMFolder/DICOM_source/src/DicomRegularDetectorConstruction.cc
set
patient_phys->SetRegularStructureId(0);
compile and run the code:
[username@plus1 DICOM_build]$ make [username@plus1 DICOM_build]$ ./DICOM run.mac
Change the type, energy and position of the incident particle
At /home/username/DICOMFolder/DICOM_source/src/DicomPrimaryGeneratorAction.cc
change the following lines:
G4ParticleDefinition* particle = particleTable->FindParticle(particleName="e-"); fParticleGun->SetParticleEnergy(100.*MeV); fParticleGun->SetParticlePosition(G4ThreeVector(0.,0.,0.));
You can chose among several particles like "gamma", "e+", "alpha" and "He3". Then, compile and run the code
[username@plus1 DICOM_build]$ make [username@plus1 DICOM_build]$ ./DICOM run.mac
Visualisation
Run the visualisation macro vis.mac
[username@plus1 DICOM_build]$ ./DICOM vis.mac
which will produce .prim
file. You can open this file in DAWN
[username@plus1 DICOM_build]$ dawn g4_00.prim
This will create 3D image showing the patient geometry and the incident electron beam. The image is big and it takes time to open:
http://www.hep.ucl.ac.uk/pbt/RadiotherapyWorkbook/skins/common/images/DICOM/g4_03.eps