<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Hello everybody, <br>
<br>
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. <br>
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.<br>
When I use these maps to calculate the absorbed dose to an organ I
can't obtain the value I expect. <br>
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. <br>
<br>
Has anyone performed a similar simulation? <br>
How do you perform the absorbed dose normalization?<br>
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.<br>
<br>
Thanks for your help, <br>
<br>
Sara Marcatili<br>
Postdoc at INSERM, <br>
Toulouse, France.<br>
<br>
-----------------------------------------------------------<br>
In order to restrain the possible source of error I used a uniform
water voxel phantom instead of the CT image.<br>
These are the details of my simulation:<br>
<br>
1) I define the voxel water phantom this way:<br>
<br>
<blockquote>/gate/world/daughters/name patient<br>
/gate/world/daughters/insert compressedMatrix<br>
<br>
/gate/patient/geometry/insertReader interfile<br>
/gate/patient/interfileReader/insertTranslator range<br>
/gate/patient/interfileReader/rangeTranslator/readTable
/myabsoulutepath/data/CT_att.dat<br>
/gate/patient/interfileReader/rangeTranslator/describe 1<br>
/gate/patient/interfileReader/readFile
/myabsoulutepath/data/Patient1.iff<br>
</blockquote>
<br>
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). <br>
<br>
2) Then I define my Voxel Source as:<br>
<br>
<blockquote>/gate/source/addSource positron voxel<br>
<br>
/gate/source/positron/reader/insert interfile<br>
/gate/source/positron/interfileReader/translator/insert linear<br>
/gate/source/positron/interfileReader/linearTranslator/setScale 1.
Bq<br>
/gate/source/positron/interfileReader/readFile
/myabsoulutepath/data/Source1.iff<br>
</blockquote>
<blockquote># source translation<br>
/gate/source/positron/setPosition -243.1 -243.1 -486.2 mm <br>
</blockquote>
<br>
where the Source1.iff file is a 3D matrix of heterogeneous activity
(UInt 16 little endian).<br>
<br>
3) The dose actor I used is a standard one:<br>
<br>
<blockquote>/gate/actor/addActor
DoseActor doseDistribution<br>
/gate/actor/doseDistribution/attachTo patient<br>
/gate/actor/doseDistribution/stepHitType random<br>
/gate/actor/doseDistribution/setPosition 0 0 0 cm<br>
/gate/actor/doseDistribution/setResolution 110 110 220<br>
<br>
<br>
/gate/actor/doseDistribution/enableEdep true<br>
/gate/actor/doseDistribution/enableUncertaintyEdep true<br>
/gate/actor/doseDistribution/enableSquaredEdep false<br>
/gate/actor/doseDistribution/enableDose true<br>
/gate/actor/doseDistribution/enableUncertaintyDose true<br>
/gate/actor/doseDistribution/enableSquaredDose false<br>
/gate/actor/doseDistribution/enableNumberOfHits true<br>
/gate/actor/doseDistribution/save patient.hdr<br>
</blockquote>
<br>
<br>
4) Then I launch the simulation with:<br>
<br>
<blockquote>/gate/application/noGlobalOutput<br>
/gate/application/setTotalNumberOfPrimaries 3000000<br>
/gate/application/start<br>
</blockquote>
<br>
---------------------------------------------------<br>
Some comments:<br>
<br>
- The physics list and the source have already been tested with
different geometries and they give the right results.<br>
<br>
- I tried to launch the simulation with :<br>
<br>
/gate/application/setTimeSlice 1 s<br>
/gate/application/setTimeStart 0 s<br>
/gate/application/setTimeStop 1 s<br>
/gate/application/startDAQ<br>
<br>
and I obtained exactly the same results.<br>
<br>
- 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.<br>
<br>
- 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?<br>
<br>
<br>
<br>
</body>
</html>