OpenGATE / Gate

Official public repository of Gate
http://www.opengatecollaboration.org
GNU Lesser General Public License v3.0
236 stars 263 forks source link

Positron range simulation - inconsistency between GATE 8.0/ 9.0/ literature and between source types #379

Open mipbkhn opened 4 years ago

mipbkhn commented 4 years ago

Hi,

I simulated positron ranges for several isotopes such as F-18 and I-124 with GATE. The setup was very simple with a point source at the centre of a water environment (20-cm-radius sphere). The sphere was that large to make sure that the positrons do not escape the water volume. The macro is attached below. The positron annihilation locations were collected by executing this command:

Gate sim_cylinder0.mac | grep "annihil" > output.txt

The obtained mean/max positron range from GATE was shorter than what I found in the literature: https://dx.doi.org/10.1186%2Fs40658-016-0144-5 https://doi.org/10.1088/0031-9155/59/23/7419 Also, visually, the distribution of the positron annihilation points is narrower than expected.

Then I tested with different GATE versions (8.0/ 9.0 with corresponding GEANT4 versions as stated in the GATE website), and different ways of defining the source (ion, e+, fastI124). I observed that the positron range result was not consistent when changing these parameters (attached figures).

Looking at the range distributions (attached figures), GATE 8.0 with ion source produced a lot of annihilations near the decay locations (range ~ 0 mm). This was not the case with GATE 9.0 and e+ or fastI124 sources.

My questions are:

Thank you. Kind regards, Minh Phuong Nguyen

F18 I124

[sim_cylinder0.mac]

/vis/disable /tracking/verbose 2 /gate/geometry/setMaterialDatabase GateMaterials.db

W O R L D

/gate/world/geometry/setXLength 65. cm /gate/world/geometry/setYLength 65. cm /gate/world/geometry/setZLength 65. cm

S Y S T E M

/gate/world/daughters/name SPECThead /gate/world/daughters/insert box /gate/SPECThead/setMaterial Vacuum /gate/SPECThead/geometry/setXLength 65. cm /gate/SPECThead/geometry/setYLength 65. cm /gate/SPECThead/geometry/setZLength 65. cm /gate/SPECThead/vis/setLineStyle dotted /gate/SPECThead/vis/setColor red /gate/SPECThead/vis/forceWireframe

E N V I R O N M E N T

/gate/SPECThead/daughters/name Phantom /gate/SPECThead/daughters/insert sphere /gate/Phantom/setMaterial Water /gate/Phantom/geometry/setRmin 0. mm /gate/Phantom/geometry/setRmax 200. mm /gate/Phantom/placement/setTranslation 0.00000 0.00000 0.00000 mm /gate/Phantom/attachPhantomSD

P H Y S I C S

/gate/physics/addPhysicsList emstandard /gate/physics/addProcess RadioactiveDecay

/gate/physics/processList Enabled /gate/physics/processList Initialized

D I G I T I Z E R

/gate/digitizer/Singles/insert adder

I N I T I A L I Z E

/gate/run/initialize

S O U R C E

/gate/source/addSource pointsource gps /gate/source/pointsource/gps/particle ion /gate/source/pointsource/gps/ion 53 124 0 0 /gate/source/pointsource/gps/monoenergy 0. keV /gate/source/pointsource/gps/angtype iso /gate/source/pointsource/gps/mintheta 0 deg /gate/source/pointsource/gps/maxtheta 180 deg /gate/source/pointsource/gps/minphi -180 deg /gate/source/pointsource/gps/maxphi 180 deg /gate/source/pointsource/visualize 1000 yellow

/gate/source/pointsource/gps/centre 0 0 0 mm /gate/source/pointsource/setActivity 30000000 Bq

/gate/source/list

/tracking/verbose 2 /gate/output/root/enable /gate/output/root/setFileName sim /gate/output/root/setRootHitFlag 0 /gate/output/root/setRootSinglesFlag 0 /gate/output/root/setRootNtupleFlag 0 /gate/output/root/setSaveRndmFlag 0 /gate/output/root/setRootRecordFlag 0

/gate/random/setEngineSeed $RANDOM /gate/application/setTimeSlice 0.004 s /gate/application/setTimeStart 0. s /gate/application/setTimeStop 0.004 s /gate/application/startDAQ

dsarrut commented 3 years ago

could you please try with /gate/physics/addPhysicsList emstandard_opt4 or with /gate/physics/addPhysicsList livermore or with /gate/physics/addPhysicsList empenelope

and with both lines: /gate/physics/addProcess RadioactiveDecay /gate/physics/addProcess Decay

mipbkhn commented 3 years ago

Hi David,

Thank you for your comment. I have tried your suggestion by adding both lines: /gate/physics/addProcess RadioactiveDecay /gate/physics/addProcess Decay

Below is the result when I adjust the physics list:

emstandard_opt4 Tc-99m: min range 0.44 mm, max range 2.11 mm In-111: min range 2.30 mm, max range 18.7 mm emlivermore Tc-99m: min range 0.44 mm, max range 2.15 mm In-111: min range 2.30 mm, max range 18.3 mm empenelope Tc-99m: min range 0.44 mm, max range 2.17 mm In-111: min range 2.30 mm, max range 19.9 mm

Still, the positron range is shorter than in the literature. Regards, Minh

dsarrut commented 3 years ago

Hi Minh,

thanks again to providing this issue.

I tried to understand and finally did 2 things:

I indent (in the future) to create a benchmark with this. However, for the moment, this is only a first test. I found 0.62mm with Geant4 10.6 and 0.69 with geant4 10.7. This is closer to expected but still not perfect.

However, 1) I only check one physic list (opt4), 2) I suspect that there is some caveats with the cuts and it requires further investigation.

Moreover, there are several ways to estimate the range (Rmean and Rmax), see for example: https://iopscience.iop.org/article/10.1088/0031-9155/58/15/5127 In my example, this is not the proper way to estimate the range.

Could you please have a look at my macros and start to investigate on your side? Thanks!

to be continued ... David

mipbkhn commented 3 years ago

Hi David,

Thank you for your message. I will check your example. My first impression is that TrackLength would not represent positron range because the positron does not go with a straight path from the emission point to the annihilation point, while as I understand the positron range is the Euclidean distance between the two points. It is interesting that the average TrackLengths from GATE agrees quite well with the mean positron range reported in the literature.

Minh

mipbkhn commented 3 years ago

Below is an example of tracking a positron from its I-124 emission location (0, 0, 0) to its annihilation position, obtained from GATE. Both the StepLength and the TrackLength represent the distance that the positron travels (not in straight lines). In this example, the final positron range is norm([-0.0379 -0.415 0.224]) = 0.4731 mm, which is different from the total TrackLength (0.718 mm).

Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 0 0 0 0.247 0 0 0 Phantom_phys initStep 1 -0.000771 -0.048 0.00218 0.238 0.0091 0.0482 0.0482 Phantom_phys msc 2 0.00381 -0.159 0.0301 0.203 0.0344 0.129 0.178 Phantom_phys eIoni 3 0.0531 -0.223 0.0735 0.177 0.0261 0.104 0.282 Phantom_phys eIoni 4 0.0253 -0.25 0.139 0.156 0.0211 0.0864 0.368 Phantom_phys eIoni 5 0.0119 -0.281 0.193 0.139 0.0177 0.0729 0.441 Phantom_phys eIoni 6 -0.0106 -0.306 0.235 0.124 0.0147 0.0624 0.503 Phantom_phys eIoni 7 -0.0171 -0.34 0.266 0.101 0.0231 0.0543 0.558 Phantom_phys eIoni 8 -0.0296 -0.356 0.236 0.0868 0.014 0.0426 0.6 Phantom_phys eIoni 9 -0.0534 -0.368 0.222 0.0693 0.0174 0.0362 0.636 Phantom_phys eIoni 10 -0.0479 -0.389 0.216 0.053 0.0164 0.029 0.666 Phantom_phys eIoni 11 -0.0476 -0.406 0.218 0.0396 0.0133 0.023 0.689 Phantom_phys eIoni 12 -0.0373 -0.413 0.218 0.0248 0.0148 0.0182 0.707 Phantom_phys eIoni 13 -0.0379 -0.415 0.224 0.00362 0.0212 0.0112 0.718 Phantom_phys eIoni 14 -0.0379 -0.415 0.224 0 0.00362 0.000372 0.718 Phantom_phys eIoni 15 -0.0379 -0.415 0.224 0 0 0 0.718 Phantom_phys annihil

Best, Minh

dsarrut commented 3 years ago

Hello, I finally try a new "AnnihilationRangeActor" that store 3D position at annihilation. See here : #400 (and this file).

With 18F, I obtained (100k events, 13 sec computation time): Number of events = 96720 Rmean (nist) = 0.60 mm Rmean (model) = 0.64 mm Rmean (gate) = 0.42 mm -29.55 % -34.20 % Rmax (nist) = 2.40 mm Rmax (model) = 2.27 mm Rmax (gate) = 2.69 mm -12.13 % -18.57 %

It seems very close to what is found for Gate in cal-gonzalez2013 paper, table5. Still, it is not clear for me what are the "reference" Rmean and Rmax.

I intend to have a benchmark on that topic, to check potential changes from version to version. You can find the draft of the benchmark here, in particular this file.

Could you please investigate and check if it seems correct ? Maybe other radionuclides, other physic lists can be evaluated also.

thanks ! David

range.pdf

mipbkhn commented 3 years ago

Hi David,

I finally take a look at your codes and run the draft benchmark. The codes look correct to me.

I see that you set for the environment using "G4_WATER" instead of "Water" as I used. After changing to G4_WATER with my implementation as shown at the beginning of this thread (also with the same physics list as you define now), I get a very similar result as yours for F-18.

As for I-124: The benchmark gives: Number of events = 2276931 Rmean (gate) = 2.60 mm Rmax (gate) = 418.21 mm Water sphere radius = 300 mm

while my implementation gives: Mean positron range: 2.531 Max positron range: 198.705 Water sphere radius = 200 mm

The Rmax in both cases is much larger than the "reference" one (about 11.7 mm for I-124 https://iopscience.iop.org/article/10.1088/0031-9155/59/23/7419/pdf - Table 1). In the benchmark, some positron annihilations even happen outside the large water sphere? I do not understand this.

Still, the main question is why the average positron range that we obtained from GATE is significantly off from the "reference" one.

Regards, Minh

Afzaal786-wq commented 3 years ago

Hi Minh, I have simulated the positron ranges according to your formula sqrt(x^2 +y^2 +z^2) for mean and max. They are 0.93 & 1.15 (mean & max) for F18 and 4.9 & 6.09 for I124. Moreover,the maximum range of I124 that i found in the literature is 6.9 instead of 11.7 (see link). https://jnm.snmjournals.org/content/49/supplement_1/404P.1.short

mipbkhn commented 3 years ago

Hi Muhammad,

Thanks for checking this also. How much activity did you simulate? Could you share your macro and data file?

Best, Minh

On Sat, Feb 6, 2021 at 9:00 AM Afzaal786-wq notifications@github.com wrote:

Hi Minh, I have simulated the positron ranges according to your formula sqrt(x^2 +y^2 +z^2) for mean and max. They are 0.93 & 1.15 (mean & max) for F18 and 4.9 & 6.09 for I124. Moreover,the maximum range of I124 that i found in the literature is 6.9 instead of 11.7 (see link). https://jnm.snmjournals.org/content/49/supplement_1/404P.1.short

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/OpenGATE/Gate/issues/379#issuecomment-774421508, or unsubscribe https://github.com/notifications/unsubscribe-auth/AEKY25COG7V3LWX57CBFUI3S5TZLHANCNFSM4TYWOI2Q .

Afzaal786-wq commented 3 years ago

Hi Minh, it is 3000000 Bq. Rest of the macro data is the same as your's.

On Sat, Feb 6, 2021 at 3:09 PM mipbkhn notifications@github.com wrote:

Hi Muhammad,

Thanks for checking this also. How much activity did you simulate? Could you share your macro and data file?

Best, Minh

On Sat, Feb 6, 2021 at 9:00 AM Afzaal786-wq notifications@github.com wrote:

Hi Minh, I have simulated the positron ranges according to your formula sqrt(x^2 +y^2 +z^2) for mean and max. They are 0.93 & 1.15 (mean & max) for F18 and 4.9 & 6.09 for I124. Moreover,the maximum range of I124 that i found in the literature is 6.9 instead of 11.7 (see link). https://jnm.snmjournals.org/content/49/supplement_1/404P.1.short

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/OpenGATE/Gate/issues/379#issuecomment-774421508, or unsubscribe < https://github.com/notifications/unsubscribe-auth/AEKY25COG7V3LWX57CBFUI3S5TZLHANCNFSM4TYWOI2Q

.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/OpenGATE/Gate/issues/379#issuecomment-774440625, or unsubscribe https://github.com/notifications/unsubscribe-auth/ARYLUQGROCQKXAMITQXMBT3S5UIMXANCNFSM4TYWOI2Q .

Afzaal786-wq commented 3 years ago

Could you please share how you normalized plot?

On Sat, Feb 6, 2021 at 10:23 PM Muhammad Afzaal Sadaqat < muhammadafzaalsadaqat786@gmail.com> wrote:

Hi Minh, it is 3000000 Bq. Rest of the macro data is the same as your's.

On Sat, Feb 6, 2021 at 3:09 PM mipbkhn notifications@github.com wrote:

Hi Muhammad,

Thanks for checking this also. How much activity did you simulate? Could you share your macro and data file?

Best, Minh

On Sat, Feb 6, 2021 at 9:00 AM Afzaal786-wq notifications@github.com wrote:

Hi Minh, I have simulated the positron ranges according to your formula sqrt(x^2 +y^2 +z^2) for mean and max. They are 0.93 & 1.15 (mean & max) for F18 and 4.9 & 6.09 for I124. Moreover,the maximum range of I124 that i found in the literature is 6.9 instead of 11.7 (see link). https://jnm.snmjournals.org/content/49/supplement_1/404P.1.short

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/OpenGATE/Gate/issues/379#issuecomment-774421508, or unsubscribe < https://github.com/notifications/unsubscribe-auth/AEKY25COG7V3LWX57CBFUI3S5TZLHANCNFSM4TYWOI2Q

.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/OpenGATE/Gate/issues/379#issuecomment-774440625, or unsubscribe https://github.com/notifications/unsubscribe-auth/ARYLUQGROCQKXAMITQXMBT3S5UIMXANCNFSM4TYWOI2Q .

mipbkhn commented 3 years ago

Hi Muhammad,

Thank you for sending me your F-18 positron range simulation data to my email. Your result is very similar to what David and I got. As calculated from your data for F-18:

Mean positron range: 0.437 Max positron range: 2.044

Regards, Minh

Afzaal786-wq commented 3 years ago

You are welcome Minh. Now it is confirmed that the ranges we all have calculated are actual regardless of small discrepancy with the literature value.

On Tue, Feb 9, 2021 at 4:27 PM mipbkhn notifications@github.com wrote:

Hi Muhammad,

Thank you for sending me your F-18 positron range simulation data to my email. Your result is very similar to what David and I got. As calculated from your data for F-18:

Mean positron range: 0.437 Max positron range: 2.044

Regards, Minh

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/OpenGATE/Gate/issues/379#issuecomment-775870864, or unsubscribe https://github.com/notifications/unsubscribe-auth/ARYLUQAWD6H2DEOQU2IHP5TS6ELZRANCNFSM4TYWOI2Q .

Afzaal786-wq commented 3 years ago

Hello OpenGATE/Gate users. Do you have an ongoing project with Positron range estimation for different radioisotopes in PET simulation? If yes, please consider me as I have some background of it. Thanks

On Tue, Feb 9, 2021 at 6:19 PM Muhammad Afzaal Sadaqat < muhammadafzaalsadaqat786@gmail.com> wrote:

You are welcome Minh. Now it is confirmed that the ranges we all have calculated are actual regardless of small discrepancy with the literature value.

On Tue, Feb 9, 2021 at 4:27 PM mipbkhn notifications@github.com wrote:

Hi Muhammad,

Thank you for sending me your F-18 positron range simulation data to my email. Your result is very similar to what David and I got. As calculated from your data for F-18:

Mean positron range: 0.437 Max positron range: 2.044

Regards, Minh

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/OpenGATE/Gate/issues/379#issuecomment-775870864, or unsubscribe https://github.com/notifications/unsubscribe-auth/ARYLUQAWD6H2DEOQU2IHP5TS6ELZRANCNFSM4TYWOI2Q .

dsarrut commented 3 years ago

Hello, the benchmark https://github.com/OpenGATE/GateBenchmarks/tree/master/t3_range_e%2B is dealing with this topic. Please, have a look and comment if needed. For the moment, we consider "historical" range as reference. This is not fully satisfying but we will continue to investigate.

Afzaal786-wq commented 3 years ago

Thanks, I'll take a look.

On Fri, Mar 5, 2021 at 12:51 PM David Sarrut notifications@github.com wrote:

Hello, the benchmark https://github.com/OpenGATE/GateBenchmarks/tree/master/t3_range_e%2B is dealing with this topic. Please, have a look and comment if needed. For the moment, we consider "historical" range as reference. This is not fully satisfying but we will continue to investigate.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/OpenGATE/Gate/issues/379#issuecomment-791230738, or unsubscribe https://github.com/notifications/unsubscribe-auth/ARYLUQBZY3OPM4QMQZ4GHODTCCEQNANCNFSM4TYWOI2Q .

mipbkhn commented 3 years ago

Hi David,

I have tested the new benchmark, and got the same result as the benchmark version that I tried last time. Is it true that only some lines in the Python codes for analysis are changed but the positron range simulated in GATE is still shorter than in literature?

Kind regards, Minh

Afzaal786-wq commented 3 years ago

Hi, Could you please tell what actually the X(mm) ,Y(mm) & Z(mm) (see attachments) depicts? I am estimating the positron range for different radioisotopes in PET? Regards Afzaal

On Tue, Mar 16, 2021 at 9:30 PM mipbkhn @.***> wrote:

Hi David,

I have tested the new benchmark, and got the same result as the benchmark version that I tried last time. Is it true that only some lines in the Python codes for analysis are changed but the positron range simulated in GATE is still shorter than in literature?

Kind regards, Minh

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/OpenGATE/Gate/issues/379#issuecomment-800413118, or unsubscribe https://github.com/notifications/unsubscribe-auth/ARYLUQGPEHM6DQV4J5YKY4TTD6BRZANCNFSM4TYWOI2Q .

Afzaal786-wq commented 3 years ago

How did you calculate the mean and maximum positron range? Please describe the method.

On Tue, Feb 9, 2021 at 4:27 PM mipbkhn @.***> wrote:

Hi Muhammad,

Thank you for sending me your F-18 positron range simulation data to my email. Your result is very similar to what David and I got. As calculated from your data for F-18:

Mean positron range: 0.437 Max positron range: 2.044

Regards, Minh

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/OpenGATE/Gate/issues/379#issuecomment-775870864, or unsubscribe https://github.com/notifications/unsubscribe-auth/ARYLUQAWD6H2DEOQU2IHP5TS6ELZRANCNFSM4TYWOI2Q .