[Gate-users] Time-activity curves for voxelized phantom/source
Ida Häggström
ida.haggstrom at radfys.umu.se
Tue Oct 13 11:09:51 CEST 2009
Dear Ali,
thank you for your reply! I converted my binary files from 32bit floats to
uint16 using matlab, and changed the header accordingly, and now I can run
my simulation! Thank you! I do have another question though, and I can't get
my head around it by only looking in the users guide. I also briefly asked
this in my last post:
For the voxelized, dynamic source, why do you use BOTH a range translator
and the TACs? From the users guide (page 112):
-----------------------------------------
# TIME ACTIVITY option
#
/gate/source/voxel/interfileReader/rangeTranslator/readTable
activityRange.dat
/gate/source/voxel/interfileReader/SetTimeActivityTablesFrom
TimeActivity_Tables.dat
.
.
.
The activityRange.dat is a text file where the user defines the label or pixel
range value included
activity. In this ascii file example, we consider that the activity is define
for voxel values 46 and 261. With no background activity in the voxel value
46 and 10 Bq/voxel for voxel value 261.
2
46 46 0
261 261 10
The TimeActivity_Tables.dat will define the TACs files which are associated to
the voxel values
defined in the previous data file.
2
46 46 lesion.dat
261 261 liver.dat
-------------------------------------
What does it mean to for example set voxel value 261 to 10 Bq via the
rangeTranslator, and then set voxel value 261 to the time activity curve
described in liver.dat? Is the first (range.dat here) some start value?
Shouldn't you just set the TAC for a given voxel since that gives the
activity in Bq/voxel at time t?
Thanks!
Ida
Den 12 oktober 2009 23.45 skrev AliAsghar Parach <aaparach at gmail.com>:
> Dear Ida,
> at first you should use attachvoxelPhantomSD (according to voxel_phantom
> example) instead of attachPhantomSD in definition of voxelPhantom.
> secondly in interfile format for voxel_phantom it should be in the format
> of uint16 (GATE only recognize uint16 format in this case), you can do this
> with MATLAB or Xmedcon or other proper software.
> Finally, it seems your voxel_Phantom header file is incorrect. Only follow
> the header file in GATE Voxel_Phantom example. and change your phantom data
> (name,slices#,voxelsize,...).
>
> Hope this help you.
>
> 2009/10/12 Ida Häggström <ida.haggstrom at radfys.umu.se>
>
>> Hi!
>>
>> I'm trying to implement a dynamic voxelized source, but have run into some
>> problems. I've followed the users guide, section 7.4 regarding how to set up
>> my source/phantom, but I'm not successful. =(
>> First of all, I have two time-activity curves (TACs), one for tissue and
>> one for the heart. I want a simple phantom/source, a 4x4x4 voxel cube with
>> the central 2x2x2 voxels corresponding to heart and the remaining outer
>> voxels being tissue. The actual phantom/source (to the header file) is a
>> 32bit binary image of the 4x4x4 voxels, voxel value 2 for the inner heart
>> voxels and voxel value 1 for the outer tissue voxels.
>>
>> One thing that confuses me in the users guide is that in the source macro,
>> is that they call for both* activityRange.dat* and *
>> TimeActivity_Tables.dat*. The first translates the voxel value to an
>> activity, and the second contains the TACs for the different voxel values.
>> Shouldn't you just use one of them? And further more, they add the
>> "RTVPhantom". I cannot find anything about what this is in the guide, and no
>> hits when I google it...
>>
>> Anyway, when I run I get the error:
>>
>> creating a RTV Phantom at Address 0x8fb6ac0
>> The Object RTPhantom RTVPhantom is enabled.
>> GateRTPhantom::AttachToGeometry
>> GateRTPhantom::AttachToGeometry : The RTPhantom RTVPhantom is now
>> ATTACHED to Inserter Object phantom : OK !!!
>> Please set it before setting the base file name. Aborting.
>>
>> *** G4Exception: Aborting execution ***
>> Gatedied with signal 6
>>
>>
>> All macros are found below. Thanks in advance for any suggestions! Any
>> suggestions at all regarding implementing TACs into sources are very
>> welcome!
>> Ida
>>
>>
>> -------------------------------------------------------------------
>> phantom.mac
>> -------------------------------------------------------------------
>> # P H A N T O M
>> #
>>
>> /gate/world/daughters/name phantom
>> /gate/world/daughters/insert compressedMatrix
>>
>> /gate/phantom/geometry/insertReader interfile
>> /gate/RTPhantom/insert RTVPhantom
>> /gate/RTVPhantom/AttachTo phantom
>>
>> /gate/RTVPhantom/setBaseFileName dynamicPhantom/phantom
>> /gate/RTVPhantom/setHeaderFileName dynamicPhantom/phantom_header.h33
>>
>> /gate/RTVPhantom/SetNumberOfFrames 11
>> /gate/RTVPhantom/SetTimePerFrame 1 s
>>
>> /gate/phantom/interfileReader/insertTranslator range
>> /gate/phantom/interfileReader/rangeTranslator/readTable
>> dynamicPhantom/range.dat
>> /gate/phantom/interfileReader/rangeTranslator/describe 1
>> /gate/phantom/attachPhantomSD
>> /gate/phantom/placement/setTranslation 0. 0. 0. mm
>> /gate/phantom/interfileReader/describe 1
>> -------------------------------------------------------------------
>> source.mac
>> -------------------------------------------------------------------
>> # S O U R C E
>> #
>> /gate/source/addSource voxelSource voxel
>> /gate/RTVPhantom/AttachToSource voxel
>>
>> /gate/source/voxelSource/reader/insert interfile
>> /gate/source/voxelSource/interfileReader/translator/insert range
>> /gate/source/voxelSource/interfileReader/rangeTranslator/readTable
>> dynamicPhantom/actRange.dat
>> /gate/source/voxelSource/interfileReader/SetTimeActivityTablesFrom
>> dynamicPhantom/TAC_table.dat
>> /gate/source/voxelSource/interfileReader/SetTimeSampling 1 s
>>
>> # The deafult position of the voxellized source is in the 1^{st}
>> # quarter. So the voxellized source has to be shifted over half its
>> # dimension in the negative direction on each axis
>> /gate/source/voxelSource/setPosition -40. -40. -40. mm
>>
>> /gate/source/voxelSource/setType backtoback
>> /gate/source/voxelSource/gps/particle gamma
>> /gate/source/voxelSource/gps/energytype Mono
>> /gate/source/voxelSource/setForcedUnstableFlag true
>> /gate/source/voxelSource/setForcedHalfLife 1223 s #Carbon-11
>> /gate/source/voxelSource/gps/monoenergy 511. keV
>> /gate/source/voxelSource/gps/angtype iso
>> /gate/source/voxelSource/gps/mintheta 90. deg
>> /gate/source/voxelSource/gps/maxtheta 90. deg
>> /gate/source/voxelSource/gps/minphi 0. deg
>> /gate/source/voxelSource/gps/maxphi 360. deg
>> /gate/source/voxelSource/gps/confine NULL #voxelPhantom_P
>>
>> /gate/source/voxelSource/dump 1
>> /gate/source/list
>> ------------------------------------------------------------------
>> phantom_header.h33
>> ------------------------------------------------------------------
>> !INTERFILE :=
>> !GENERAL DATA :=
>> !GENERAL IMAGE DATA :=
>> !type of data := PET
>> imagedata byte order := LITTLEENDIAN
>> !PET STUDY (General) :=
>> !PET data type := Image
>> process status := Reconstructed
>> !number format := float
>> !number of bytes per pixel := 4
>> number of dimensions := 3
>> matrix axis label [1] := x
>> !matrix size [1] := 4
>> scaling factor (mm/pixel) [1] := 20
>> matrix axis label [2] := y
>> !matrix size [2] := 4
>> scaling factor (mm/pixel) [2] := 20
>> matrix axis label [3] := z
>> !matrix size [3] := 4
>> scaling factor (mm/pixel) [3] := 20
>> image scaling factor[1] := 1
>> data offset in bytes[1] := 0
>> quantification units := 1
>> !END OF INTERFILE :=
>> ------------------------------------------------------------------
>> TACs.dat
>> ------------------------------------------------------------------
>> 2
>> 1 1 tissue.dat
>> 2 2 heart.dat
>> ------------------------------------------------------------------
>> actRange.dat
>> ------------------------------------------------------------------
>> 2
>> 1 1 0
>> 2 2 10
>> ------------------------------------------------------------------
>> tissue.dat
>> ------------------------------------------------------------------
>> 11
>> 0.0 0
>> 1. 100
>> 2. 200
>> 3. 300
>> 4. 500
>> 5. 800
>> 6. 900
>> 7. 910
>> 8. 920
>> 9. 920
>> 10 920
>> ------------------------------------------------------------------
>> heart.dat
>> ------------------------------------------------------------------
>> 11
>> 0.0 0.0
>> 1. 100
>> 2. 200
>> 3. 300
>> 4. 500
>> 5. 800
>> 6. 1000
>> 7. 700
>> 8. 400
>> 9. 200
>> 10 100
>>
>> _______________________________________________
>> Gate-users mailing list
>> Gate-users at lists.healthgrid.org
>> http://lists.healthgrid.org/mailman/listinfo/gate-users
>>
>>
>
>
> --
> Ali Asghar Parach,Ph.D. student in Medical Physics,Tarbiat Modares
> University,Tehran,Iran
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opengatecollaboration.org/mailman/private/gate-users/attachments/20091013/8430419f/attachment.htm>
More information about the Gate-users
mailing list