[Gate-users] use of doseactor, voxelized phantom and source to generate dose and edep map

Hyun Soo Park hyuns at snu.ac.kr
Mon Jun 1 15:11:45 CEST 2020


Matthew and Pharaon,

To address our issue more specifically, we've performed a simulation with
voxelized phantom and source of varying radioactivity (exactly 100
microcuries, 50 microcuries, and 25 microcuries) using current code.

Without any modification for the code, the simulation returned the same
result for the voxelized source of varying radioactivity, while we expected
that radioactivity dependently decreases in the dose. Expected results came
out only when we set *TotalNumberOfPrimaries* with 100000, 50000, 25000 for
respective simulations; because we considered that the total number of
primaries should be relevant with the radioactivity the phantom contains.
We don't have any more ideas to control the decay of the radioactivity.

I am sure that this issue stemmed from the absence of the time
information you commented on. And we would like simulation output to take
the time into consideration. Your comment and explanation were very helpful
but there are further questions:

1) how could we set setTimeStart, setTimeSlice and setTimeStop for above
case of simulation? we can assume that F-18 containing phantom was scanned
repeatedly at t0 (t = 0 min), t1/2 (110 min) and t/14 (220 min),
respectively.

2) what is the relationship between the radioactivity specified in the
voxelized source and the number of primaries? We used the linear translator
but it seems that GATE do not consider that voxel values as the
radioactivity.

3) When it comes to the uncertainty, how could we get enough uncertainty if
we can set a common number of primaries for simulation for every voxelized
source.

Closing wonderful weekends and welcome bright Monday,

Park

On Sun, May 31, 2020 at 1:54 AM Hyun Soo Park <hyuns at snu.ac.kr> wrote:

> Matthew,
>
> thanks for your ideas of our macro. it is nice to hear that the macro is
> set reasonably.
>
> by the way, about “non-sense” results of ours, we need more detailed
> explanation.
>
> our PET/CT data was acquired at 2, 5, 10, 30, 60, 90, 240, 360 post
> injection of the tracer with scan time of 15s, 30s, 60s, 60s, 240s, 240s,
> 20 min and 40 min.  and for the PET, voxels were set to have Bq values so
> we thought that the linear translator is ok with setScale of 1 Bq. of
> course PET values were not-decay corrected when it was used as voxelized
> source.
>
> we repeated the run for the each PET/CT images without any different
> conditions and parameters in the macro. then the “non-sense” results came
> out; the radioactivity distributed in the kidney decreased from the first
> to the last, the dose and edep is increased. we did’t gave GATE any time
> information for the simulation.
>
> you suggested that the total number of primaries may be problematic. as
> you see we set the total number of primaries commonly for every voxelized
> source. so I think the dividing the same value will make no difference on
> the present result. where did I lost? would you please give us more details
> about ‘the number of decay events in your PET acquisition ‘ from “If you
> divide... which could then be scaled according to the number of decay
> events in your PET acquisition.”
>
> cheers,
>
> park
>
>
>
>
>
>
>
> On Sat, May 30, 2020 at 11:39 PM Matthew Strugari <matthew.strugari at dal.ca>
> wrote:
>
>> Hi Park,
>>
>>
>>
>> I hope others may provide additional info, but from a quick glance at
>> your code, everything appears reasonable in terms of your settings.
>>
>>
>>
>> Your confusion with “non-sense results” may stem from your configuration
>> with total number of primaries since your simulation output does not take
>> time into consideration. Setting 500000 total primaries will generate
>> particles without any respect to decay time. So, if you linearly increase
>> the number of primaries, you will linearly increase the dose deposited. In
>> other words, your dose and Edep output are a total based on the total
>> number of primaries generated. If you divide your output by 500000 then you
>> would have dose in terms of Gy/decay, for example, which could then be
>> scaled according to the number of decay events in your PET acquisition. An
>> alternative approach would be to use the setTimeStart, setTimeSlide, and
>> setTimeStop commands which would generate the number of primaries based on
>> radioactive decay and time. This would again produce the total dose and
>> Edep output as described above for the total number of primaries generated.
>>
>>
>>
>> In case there is any confusion on your linear translator scale, note that
>> 1 Bq means that pixel values are represented directly in Bq. The total
>> number of primaries are then distributed amongst the source voxels
>> according to their activity. So, if you only had two non-zero voxels in
>> your source image with values of 2 and 3, your simulation in the current
>> configuration would generate 200000 and 300000 primaries in each voxel,
>> respectively.
>>
>>
>>
>> To measure dose to a specific organ, you could use a segmentation of a
>> region of interest (ROI)  to mask the dose. All dose outside the ROI would
>> be zero which would allow for computation of the dose volume histogram for
>> any organ of interest.
>>
>>
>>
>> Positively,
>>
>> Matthew
>>
>>
>>
>>
>>
>> *From: *Gate-users <gate-users-bounces at lists.opengatecollaboration.org>
>> on behalf of Hyun Soo Park <hyuns at snu.ac.kr>
>> *Date: *Saturday, May 30, 2020 at 09:43
>> *To: *"gate-users at lists.opengatecollaboration.org" <
>> gate-users at lists.opengatecollaboration.org>
>> *Subject: *[Gate-users] use of doseactor, voxelized phantom and source
>> to generate dose and edep map
>>
>>
>>
>> *CAUTION:* The Sender of this email is not from within Dalhousie.
>>
>> Hello, Gate users,
>>
>>
>>
>> We just have a  relatively simple task of estimating internal radiation
>> dosimetry of 18F-labeled PET tracer using doseactor, voxelized phantom and
>> source. However, me and my colleagues are struggling with this beautiful
>> research tool because of lack of experiences and not enough understandings
>> about it.
>>
>>
>>
>> We acquired PET/CT images using the radiotracer at varying time points to
>> describe the biodistribution of the tracer. CT images were the voxelized
>> phantom and PET images were the matched voxelized source.
>>
>>
>>
>> By following to many contributors’ exercices and examples, we’ve finally
>> generated following macro that returns common outputs of internal dosimetry
>> by GATE (i.e., Dose and Edep, etc).
>>
>>
>>
>> Our questions are obvious:
>>
>>
>>
>> 1) is the following macro defined well to generate Dose and Edep map for
>> given voxelized phantom and source?
>>
>>
>>
>> 2) definition of the fluorine-18 was appropriate?
>>
>>
>>
>> 3) how could we measure dose of a specific organ, such as kidney, using
>> dose map? Could it be done by common VOI analysis measuring voxel mean
>> value?
>>
>>
>>
>> 4) the latest simulation gave us non-sense results of showing
>> continuously increasing dose in a organ, while the radioactivity is
>> apparently decreasing as time. how could it be explained?
>>
>>
>>
>> Best wishes, and have a great weekend!
>>
>>
>>
>> Park
>>
>>
>>
>> #=====================================================
>>
>> # VEROBOSITY
>>
>> #=====================================================
>>
>>
>>
>> /control/execute  mac/verbose.mac
>>
>>
>>
>> #=====================================================
>>
>> # VISUALISATION
>>
>> #=====================================================
>>
>>
>>
>> /control/execute mac/visu.mac
>>
>>
>>
>> #=====================================================
>>
>> # GEOMETRY
>>
>> #=====================================================
>>
>>
>>
>> /gate/geometry/setMaterialDatabase data/GateMaterials.db
>>
>>
>>
>> # World
>>
>> /gate/world/geometry/setXLength 10 cm
>>
>> /gate/world/geometry/setYLength 10 cm
>>
>> /gate/world/geometry/setZLength 10 cm
>>
>> /gate/world/setMaterial Air
>>
>> /gate/world/vis/setVisible 1
>>
>> /gate/world/vis/forceWireframe
>>
>>
>>
>> # Voxel phantom
>>
>> /gate/world/daughters/name                      ct
>>
>> /gate/world/daughters/insert
>>  ImageRegularParametrisedVolume
>>
>> /gate/ct/geometry/setRangeToMaterialFile     data/range_geo.dat
>>
>> /gate/ct/geometry/setImage                   data/ct-gate.mhd
>>
>> /gate/ct/setSkipEqualMaterials 1
>>
>> /gate/ct/vis/setVisible 1
>>
>> # /gate/ct/vis/setColor blue
>>
>> /gate/ct/vis/forceWireframe
>>
>>
>>
>> # /gate/geometry/rebuild
>>
>>
>>
>> #=====================================================
>>
>> # PHYSICS
>>
>> #=====================================================
>>
>>
>>
>> /gate/physics/addPhysicsList emstandard_opt3
>>
>> /gate/physics/addProcess RadioactiveDecay #to generate decay process of
>> F-18
>>
>>
>>
>> #=====================================================
>>
>> # DETECTORS
>>
>> #=====================================================
>>
>>
>>
>> /gate/actor/addActor                                DoseActor
>>  doseDistribution
>>
>> /gate/actor/doseDistribution/attachTo       ct
>>
>> /gate/actor/doseDistribution/stepHitType            random
>>
>> /gate/actor/doseDistribution/setSize                30 28.8 99 mm #Size
>> in mm
>>
>> /gate/actor/doseDistribution/setPosition            0 0 0 cm # Origin
>>
>> /gate/actor/doseDistribution/setResolution          58 48 165 #Size
>> (pixel)
>>
>> /gate/actor/doseDistribution/enableEdep             true
>>
>> /gate/actor/doseDistribution/enableUncertaintyEdep  true
>>
>> /gate/actor/doseDistribution/enableSquaredEdep      false
>>
>> /gate/actor/doseDistribution/enableDose             true #from true
>>
>> /gate/actor/doseDistribution/setDoseAlgorithm VolumeWeighting
>>
>> # /gate/actor/doseDistribution/enableDoseToWater      true #new set
>>
>> /gate/actor/doseDistribution/enableUncertaintyDose  true #from true
>>
>> /gate/actor/doseDistribution/enableSquaredDose      false
>>
>> /gate/actor/doseDistribution/enableNumberOfHits     true
>>
>> /gate/actor/doseDistribution/save                   output/output.mhd
>>
>>
>>
>> /gate/actor/addActor               SimulationStatisticActor stat
>>
>> /gate/actor/stat/save               output/stat.txt
>>
>> /gate/actor/stat/saveEveryNSeconds 60
>>
>>
>>
>> #=====================================================
>>
>> # INITIALISATION
>>
>> #=====================================================
>>
>>
>>
>> /gate/run/initialize
>>
>>
>>
>> #=====================================================
>>
>> # SOURCE :
>>
>> #=====================================================
>>
>>
>>
>> #Description
>>
>>
>>
>> #Ion
>>
>> /gate/source/addSource ion voxel
>>
>> /gate/source/ion/reader/insert image
>>
>> /gate/source/ion/imageReader/translator/insert linear
>>
>> /gate/source/ion/imageReader/linearTranslator/setScale 1. Bq
>>
>> /gate/source/ion/imageReader/readFile data/pt-gate.mhd
>>
>> /gate/source/ion/imageReader/verbose 1
>>
>> /gate/source/ion/setPosition -15.0 -14.4 -49.5 mm
>>
>>
>>
>> /gate/source/ion/gps/particle ion
>>
>> /gate/source/ion/gps/ion 9 18 0 0 #F-18
>>
>> /gate/source/ion/gps/energytype Mono
>>
>> /gate/source/ion/gps/monoenergy 0. keV
>>
>> /gate/source/ion/gps/angtype iso
>>
>> /gate/source/ion/setForcedUnstableFlag true
>>
>> /gate/source/ion/useDefaultHalfLife 6586 s
>>
>>
>>
>>
>>
>> /gate/source/ion/dump                                   1
>>
>>
>>
>> # /gate/source/list
>>
>>
>>
>> #=====================================================
>>
>> # RANDOM
>>
>> #=====================================================
>>
>> /gate/random/setEngineName MersenneTwister
>>
>> /gate/random/setEngineSeed auto
>>
>>
>>
>> #=====================================================
>>
>> # START
>>
>> #=====================================================
>>
>>
>>
>> /gate/application/noGlobalOutput
>>
>> /vis/enable
>>
>> /gate/application/setTotalNumberOfPrimaries 500000 #acceptable
>> uncertainty is at 500000
>>
>> /gate/application/start
>>
>>
>>
>> --
>>
>> *연구중점교수**, **분당서울대학교병원*
>>
>> *전화번호**:*
>>
>> (사무실) +82-31-787-2936
>>
>> (휴대전화) +82-10-8833-2806
>>
>> *팩스**:* +82-31-787-4018
>>
>> *이메일**:* hyuns at snu.ac.kr
>>
>>
>>
>> *Hyun Soo Park, PhD*
>>
>> *--*
>>
>> *Research professor*
>>
>> Department of Nuclear Medicine
>>
>> Seoul National University Bundang Hospital, Seongnam, Korea
>>
>> *Telephone:*
>>
>> (Office) +82-31-787-2936
>>
>> (Mobile) +82-10-8833-2806
>>
>> *Fax:* +82-31-787-4018
>>
>> *email:* hyuns at snu.ac.kr
>>
> --
> *연구중점교수, 분당서울대학교병원*
> *전화번호:*
> (사무실) +82-31-787-2936
> (휴대전화) +82-10-8833-2806
> *팩스:* +82-31-787-4018
> *이메일:* hyuns at snu.ac.kr
>
> *Hyun Soo Park, PhD*
> *--*
> *Research professor*
> Department of Nuclear Medicine
> Seoul National University Bundang Hospital, Seongnam, Korea
> *Telephone:*
> (Office) +82-31-787-2936
> (Mobile) +82-10-8833-2806
> *Fax:* +82-31-787-4018
> *email:* hyuns at snu.ac.kr
>


-- 
*연구중점교수, 분당서울대학교병원*
*전화번호:*
(사무실) +82-31-787-2936
(휴대전화) +82-10-8833-2806
*팩스:* +82-31-787-4018
*이메일:* hyuns at snu.ac.kr

*Hyun Soo Park, PhD*
*--*
*Research professor*
Department of Nuclear Medicine
Seoul National University Bundang Hospital, Seongnam, Korea
*Telephone:*
(Office) +82-31-787-2936
(Mobile) +82-10-8833-2806
*Fax:* +82-31-787-4018
*email:* hyuns at snu.ac.kr
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opengatecollaboration.org/pipermail/gate-users/attachments/20200601/926b7024/attachment-0001.html>


More information about the Gate-users mailing list