[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