[Gate-users] problem with absorbed dose normalization
Sara Marcatili
sara.marcatili at inserm.fr
Thu Jan 17 14:00:20 CET 2013
Hello everybody,
I am trying to calculate the F-18 absorbed dose for a real patient using
a voxel 3D CT image and a heterogeneous cumulated activity voxel map.
Using the dose actor I obtain as an output the EDep map and the Dose map
which I normalized for the number of events simulated to obtain the EDep
(or dose) map per event.
In order to calculate the total absorbed dose I then multiply these maps
(EDep or Dose Map) for the total cumulated activity, that is the sum of
all the voxel values of the image I use as a source.
When I use these maps to calculate the absorbed dose to an organ I can't
obtain the value I expect.
The 2 maps (EDep or Dose Map) give the same result, but it's not the
expected result (obtained from a reference code). The difference is of a
few orders of magnitude.
Has anyone performed a similar simulation?
How do you perform the absorbed dose normalization?
I can't figure it out if the problem is in the simulation approach or in
the source normalization, so I put below the relevant parts of my code.
Thanks for your help,
Sara Marcatili
Postdoc at INSERM,
Toulouse, France.
-----------------------------------------------------------
In order to restrain the possible source of error I used a uniform water
voxel phantom instead of the CT image.
These are the details of my simulation:
1) I define the voxel water phantom this way:
/gate/world/daughters/name patient
/gate/world/daughters/insert compressedMatrix
/gate/patient/geometry/insertReader interfile
/gate/patient/interfileReader/insertTranslator range
/gate/patient/interfileReader/rangeTranslator/readTable
/myabsoulutepath/data/CT_att.dat
/gate/patient/interfileReader/rangeTranslator/describe 1
/gate/patient/interfileReader/readFile
/myabsoulutepath/data/Patient1.iff
where the Patient1.iff file is a 3D matrix of 1 (UInt 16 little endian)
and the CT_att.dat file contains only 1 material (Water).
2) Then I define my Voxel Source as:
/gate/source/addSource positron voxel
/gate/source/positron/reader/insert interfile
/gate/source/positron/interfileReader/translator/insert linear
/gate/source/positron/interfileReader/linearTranslator/setScale 1. Bq
/gate/source/positron/interfileReader/readFile
/myabsoulutepath/data/Source1.iff
# source translation
/gate/source/positron/setPosition -243.1 -243.1 -486.2 mm
where the Source1.iff file is a 3D matrix of heterogeneous activity
(UInt 16 little endian).
3) The dose actor I used is a standard one:
/gate/actor/addActor DoseActor doseDistribution
/gate/actor/doseDistribution/attachTo patient
/gate/actor/doseDistribution/stepHitType random
/gate/actor/doseDistribution/setPosition 0 0 0 cm
/gate/actor/doseDistribution/setResolution 110 110 220
/gate/actor/doseDistribution/enableEdep true
/gate/actor/doseDistribution/enableUncertaintyEdep true
/gate/actor/doseDistribution/enableSquaredEdep false
/gate/actor/doseDistribution/enableDose true
/gate/actor/doseDistribution/enableUncertaintyDose true
/gate/actor/doseDistribution/enableSquaredDose false
/gate/actor/doseDistribution/enableNumberOfHits true
/gate/actor/doseDistribution/save patient.hdr
4) Then I launch the simulation with:
/gate/application/noGlobalOutput
/gate/application/setTotalNumberOfPrimaries 3000000
/gate/application/start
---------------------------------------------------
Some comments:
- The physics list and the source have already been tested with
different geometries and they give the right results.
- I tried to launch the simulation with :
/gate/application/setTimeSlice 1 s
/gate/application/setTimeStart 0 s
/gate/application/setTimeStop 1 s
/gate/application/startDAQ
and I obtained exactly the same results.
- This application has been tested with a voxel image of a uniform water
sphere surrounded by water in order to calculate the sphere S values and
it gave the right result. The only difference between this successful
run (the water sphere) and the real patient simulation is in the source
which is uniform in the first case while in the second case is
heterogeneous. Also,in the case of the sphere I only verified that the
Svalue (mGy/MBq s) was correct, hence I did not normalize the Gate
results with the total activity to obtaine the mGy.
- If I understand correctly, when I use "setTotalNumberOfPrimaries",
Gate uses the voxel source as a relative intensity map which is
normalized to the total source activity. Am I right?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opengatecollaboration.org/mailman/private/gate-users/attachments/20130117/3f187955/attachment.html>
More information about the Gate-users
mailing list