[Gate-users] CT simulation, save multiple outputs, parallelization

Triltsch, Nicolas nicolas.triltsch at tum.de
Thu Feb 9 16:07:12 CET 2017


Hey,

Thanks for the useful hints and the literature.

Can you explain a little bit more how the uncertainty image is created 
and how it is best to understand? What tell me the numbers or values in 
the image? I think this is important to understand, in order to choose 
the number of photons correctly.

Yes, that's what I am doing already. I scaled the detectors resolution 
and the voxelized volume down by a factor of 4 and consequently simulate 
the scatter images.

One more question concerning the engine seed. Do you choose for every 
projection a new seed by changing the order of the numbers (123456) or 
is that not necessary?

Cheers,

Nico

On 02/09/2017 01:42 PM, Simon Rit wrote:
> Hi,
> Python is probably easier indeed.
> The stochastic part is for scatter and secondary radiations (compton, 
> rayleigh and fluorescence). FFD uses a low statistics Monte Carlo 
> simulation (therefore stochastic) and combines it with a deterministic 
> calculation. Useful unordered references to understand the technique:
> dx.doi.org/10.1088/0031-9155/54/12/016 
> <http://dx.doi.org/10.1088/0031-9155/54/12/016>
> dx.doi.org/10.1109/TMI.2004.825600 
> <http://dx.doi.org/10.1109/TMI.2004.825600>
> doi.org/10.1109/TNS.2005.858223 <http://doi.org/10.1109/TNS.2005.858223>
> 1000 is not sufficient, I typically use 10^5 photons at least for one 
> projection. The best is to record the uncertainty image to have an 
> estimate of the precision of your Monte Carlo simulation (using the 
> *enableUncertaintySecondary* option). You'll probably want to limit 
> the number of pixels of your projection to accelerate the computation 
> of your scatter images. I typically use finer lattices for primary 
> images than for scatter images.
> Simon
>
>
> On Thu, Feb 9, 2017 at 1:11 PM, Triltsch, Nicolas 
> <nicolas.triltsch at tum.de <mailto:nicolas.triltsch at tum.de>> wrote:
>
>     Hey Simon,
>
>     Thanks for your always very helpful answers. For your last point,
>     I found out a little work around. I used an alias of the form
>     "Gate [rot_angle,$(angle*i)][run_id,$i] mymacro.mac" combined with
>     a for loop with parameter i. In the macro I named the files in the
>     output folder "output_files{i}". I can highly recommend not to use
>     bash scripts to execute the Gate commands which where created in a
>     for loop style. Defining variables (especially floats, etc.) is
>     quite handy. It's better to use a python script and execute the
>     Gate macros in a so called subprocess.call(), multiprocessing
>     module is required here.
>
>     Some more questions popped up my mind while I was reading your email.
>
>     - I think you didn't understood me correctly. I used 1000 photons
>     per projection, not in total. I am NOT only interested in the
>     primary image, but also in the images compton.mha and
>     rayleigh.mha. Where in the calculation comes the NOT deterministic
>     part? And do you have any experience how many photons are
>     necessary for a trustworthy result?
>
>     Thanks in advance,
>
>     Nico
>
>     On 02/07/2017 05:37 PM, Simon Rit wrote:
>>     Hi Nicolas,
>>     Good to see that ffda is used. To answer your questions:
>>     - yes, there is an "intrinsic parallelization". The number of
>>     threads is set by the environment variable
>>     ITK_GLOBAL_DEFAULT_NUMBER_OF_THREADS. If you haven't set it, it
>>     will use all your cores. The Monte Carlo part is still
>>     single-threaded, but the ray casting is multi-threaded using RTK
>>     (based on ITK).
>>     - you use 1000 photons. I guess you're only interested in the
>>     primary image? In this case, 1 photon per projection is enough
>>     since the primary part is deterministic.
>>     - you can use the printf format to set the run id in the file
>>     primary name (see line 842 of GateFixedForcedDetectionActor.cc
>>     <https://github.com/OpenGATE/Gate/blob/develop/source/digits_hits/src/GateFixedForcedDetectionActor.cc#L842>):
>>     /gate/actor/ffda/primaryFilename output/primary%0d.mha
>>     - for further parallelization, I would suggest to run Gate on
>>     several machines, each machine starting at a different angle and
>>     over an angle range which would be limited. This requires some
>>     specific dev and careful handling of all the outputs (they all
>>     start with a runid of 0, so you will need to rename the outputs).
>>     I hope this helps.
>>     Simon
>>
>>
>>     On Tue, Feb 7, 2017 at 10:58 AM, Triltsch, Nicolas
>>     <nicolas.triltsch at tum.de <mailto:nicolas.triltsch at tum.de>> wrote:
>>
>>         Hello Gate community,
>>
>>         I am using the fixed forced detection actor (ffda) and I try
>>         to run a full CT simulation with 1201 projections. My first
>>         question aims to the possibilities of parallelization. I
>>         noticed that if I run a single projection, all 4 cores of my
>>         local computer are running at almost 100%. Is there already
>>         some intrinsic parallelization step when using the ffda and
>>         what further parallelization steps are possible to speed up
>>         the simulation for 1 projection? If it helps I use a
>>         voxelized phantom, cone beam setup, a xray spectrum
>>         histogram, integrating detector and 1000 Photons.
>>
>>         My second question is how to save several .mha images in the
>>         output folder when simulating all 1201 projections. Still, I
>>         am using the ffda actor and with the command
>>         "//gate/actor/ffda/primaryFilename output/primary.mha" /the
>>         primary image gets overwritten for each projection. How can I
>>         save different primary images for each projection?
>>
>>         Any help is appreciated!
>>
>>         Nico
>>
>>         -- 
>>         B.Sc. Nicolas Triltsch
>>         Masterand
>>
>>         Technische Universität München
>>         Physik-Department
>>         Lehrstuhl für Biomedizinische Physik E17
>>
>>         James-Franck-Straße 1
>>         85748 Garching b. München
>>
>>         Tel:+49 89 289 12591 <tel:+49%2089%2028912591>
>>
>>         nicolas.triltsch at tum.de <mailto:nicolas.triltsch at tum.de>
>>         www.e17.ph.tum.de <http://www.e17.ph.tum.de>
>>
>>
>>         _______________________________________________
>>         Gate-users mailing list
>>         Gate-users at lists.opengatecollaboration.org
>>         <mailto:Gate-users at lists.opengatecollaboration.org>
>>         http://lists.opengatecollaboration.org/mailman/listinfo/gate-users
>>         <http://lists.opengatecollaboration.org/mailman/listinfo/gate-users>
>>
>>
>
>     -- 
>     B.Sc. Nicolas Triltsch
>     Masterand
>
>     Technische Universität München
>     Physik-Department
>     Lehrstuhl für Biomedizinische Physik E17
>
>     James-Franck-Straße 1
>     85748 Garching b. München
>
>     Tel:+49 89 289 12591 <tel:+49%2089%2028912591>
>
>     nicolas.triltsch at tum.de <mailto:nicolas.triltsch at tum.de>
>     www.e17.ph.tum.de <http://www.e17.ph.tum.de>
>
>

-- 
B.Sc. Nicolas Triltsch
Masterand

Technische Universität München
Physik-Department
Lehrstuhl für Biomedizinische Physik E17

James-Franck-Straße 1
85748 Garching b. München

Tel: +49 89 289 12591

nicolas.triltsch at tum.de
www.e17.ph.tum.de

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opengatecollaboration.org/mailman/private/gate-users/attachments/20170209/be48724c/attachment.html>


More information about the Gate-users mailing list