[Gate-users] FW: GATE/STIR Ecat7 bed motion

Kris Thielemans kris.f.thielemans at gmail.com
Wed Feb 22 22:38:47 CET 2012


Hi John

> I am using GATE 6.1.98524 and have no STIR installation yet.
> 
> I am planning how to simulate bed motion because the phantom in use is
> several times the dimension of the crystal ring.
> GATE  documentation/code suggest that there are 4 dimensions in the data
> set : FrameID, GateID, DataID and BedID but only FrameID and DataID are
set
> by Gate.
> STIR documentation suggests it handles all four fields.
>

STIR doc suggests that it can read the ECAT7 frame,gate,date,bed fields and
corresponding sinograms, but that doesn't mean that it'll handle multiple
bed positions gracefully :-;

Of course, if you have overlapping bed positions (and you should in 3D),
theoretically the best way to do this is to reconstruct a single image from
all the data, but that'd require major work.

At present, STIR can really only reconstruct a single frame (aside from the
dynamic stuff, but that's not what you're interested in). So, you'd normally
have to reconstruct each bed position, and then merge them somewhat
intelligently. Simple averaging of the corresponding slices is your first
bet, but ideally you would take the varying sensitivity into account to
downweight the noisy slices. (That'd automatically make the transition
between the bed positions more smooth). And of course, then there's
radioactive decay you have to take into account.

So, not so easy unfortunately... 

There was a discussion on this a while ago on the STIR list, but I'm not
sure if anyone actually implemented something, and/or if they'd be willing
to share. Therefore, I've cross-posted this to the STIR list as well.

> From what I have read, there is nothing specifically built into GATE for
bed
> motion and the only way I can find/think of doing this is to use, from
GATE
> documentation,  /gate/name_volume/moves/insert translation and
> /gate/name_volume/translation/setSpeed and also to arrange the time
> frames to include a period of non capture between each counting period.
> Then use STIR utilities to set the file headers for STIR.
>

STIR cannot update ECAT7 file headers out-of-the-box (i.e. you'd need to
write some code), but you probably don't care as STIR will later on ignore
that information anyway :-(

 
> Main Question : Do you feel this a sensible and feasible way to proceed,
> please?
> 

As far as the GATE sim goes, it sounds good to me (but I haven't used GATE)

> Would simply cutting the phantom into crystal ring sized pieces and
treating
> them as independent until reassembly after STIR be simpler and as
effective,
> or would the joins show?
>


The main difference here seems to be that the original approach would handle
out-of-FOV scatter, randoms etc. Aside from that, the mechanics to get it to
work via STIR will be essentially the same.

Hope this helps (but not enough, I know!)

Kris




More information about the Gate-users mailing list