KAHIBARO
Discord Login Register

32.1. Rotating Gamma Camera

Detector rotation

In SPECT, the gamma camera does not stay fixed relative to the patient. Instead, the detector head rotates around the patient so that projections of the activity distribution are recorded from many directions. In GATE, this rotation is modeled explicitly as a time dependent motion of the detector head geometry.

You typically start from a static gamma camera built in earlier steps, which includes at least the detector head volume with its collimator and crystal. To make it rotate, you add a motion to the parent volume of the head. In OpenGATE this is usually done by creating a rotation or orbit motion and attaching it to the detector head volume before starting the simulation. The motion then updates the position and orientation of the head as the simulation time progresses.

The most common SPECT rotation is a circular orbit around the patient. In this case the detector center follows a circle in the transverse plane around the patient or phantom. You specify the rotation axis, usually the $z$ axis in a standard GATE setup, and a center of rotation that matches the scanner isocenter. The detector head must be offset from this center by the desired radius so that when it rotates it remains at a constant distance from the patient.

The rotation speed determines how the detector angle changes with simulation time. For a simple acquisition over a total duration $T$ with $N$ projections covering an angular range $\Phi$ (often $180^\circ$ or $360^\circ$), the angular speed is constant and given by
$$
\omega = \frac{\Phi}{T},
$$
where $\omega$ is in degrees per second if $\Phi$ is in degrees and $T$ in seconds. The instantaneous detector angle at time $t$ is then
$$
\theta(t) = \theta_0 + \omega t,
$$
with $\theta_0$ the initial angle. In OpenGATE, you do not usually code this formula yourself. Instead you configure the rotation parameters in the motion object, but keeping this relationship in mind helps you choose consistent settings for acquisition time and angular coverage.

If you want the detector to move in discrete steps, which is a common experimental mode, you can still approximate this in a single simulation by using piecewise constant motion segments. Each segment covers a fixed angular interval during a given time window, while the detector remains stationary inside that window. Alternatively, you can run separate simulations for each angle, where the detector orientation is changed between runs but is static during each simulation. The second approach is conceptually simpler and often easier for beginners because there is no explicit time dependent geometry, only different static positions.

Whatever rotation strategy you choose, it is important to keep the coordinate system and patient position consistent. The center of rotation should coincide with the patient or phantom center you intend to image, and the detector head should not intersect the phantom during rotation. Geometry visualization is very useful at this stage: by animating the motion or inspecting the detector at different angles you can verify that the orbit radius and collimator clearance are realistic and free of overlaps.

A typical workflow in GATE for a continuous rotation is to define the detector head volume, specify its initial position at a reference angle, create a rotation motion around the scanner axis with a given angular velocity, and then set the total simulation duration to match the desired coverage. When combined with appropriate actors for projection data, this produces a time sequence of images that correspond to different projection angles.

Keep the detector rotation parameters consistent: the rotation axis must pass through the center of rotation, the detector head must be offset correctly from this center, and the total simulation time, angular range, and rotation speed must satisfy $\omega = \Phi / T$.

Angular projections

As the gamma camera rotates, each detector angle corresponds to a separate projection of the radiotracer distribution. A projection is essentially a 2D image of counts recorded by the detector for a specific camera orientation. In SPECT, reconstructing a 3D activity distribution from projections requires that you know the angle for each projection image.

In GATE you usually create projections by attaching an actor to the detector crystal or detector head. This actor bins detected photons into an image grid defined in the detector plane. When the detector rotates continuously, the actor can be configured to produce time resolved images, where each time interval corresponds to one angular bin. The relationship between projection index, time, and angle is then controlled by your rotation definition and your choice of time windows.

For a simple acquisition with $N$ equally spaced projections over $360^\circ$, the angular step is
$$
\Delta \theta = \frac{360^\circ}{N},
$$
and projection $k$ has a nominal angle
$$
\theta_k = \theta_0 + k \Delta \theta,
$$
for $k = 0, 1, \dots, N-1$. If you use $180^\circ$ coverage, then $360^\circ$ in the formulas is replaced by $180^\circ$. In a time based acquisition, you can map each projection to a time interval of duration $\Delta t = T / N$, and, combined with the rotation speed, this gives the corresponding angles.

In practice, there are two common strategies for creating angular projections in GATE. In a continuous rotation, you run one long simulation with a rotating detector. The projection actor is configured with multiple frames or time bins. Each frame accumulates counts only during its associated time interval, and therefore at its associated angle. After the simulation, you obtain a stack of 2D images, one per angle, which together form a sinogram or projection set.

In a step-and-shoot strategy, you run multiple simulations. For each run, you set the detector at a fixed orientation, keep the geometry static, and acquire events for the desired acquisition time at that angle. Each run produces a single projection image. You then combine these images manually in post-processing, but the mapping between image index and angle is straightforward because each simulation run has a known fixed angle.

The angular sampling must be fine enough for accurate image reconstruction. Too few projections lead to artifacts and loss of resolution. For a simple circular SPECT system, a typical sampling might use 60 or more projections over $360^\circ$. The optimal number depends on the collimator resolution, intrinsic detector resolution, and reconstruction method, but the general rule is that smaller angular steps improve sampling at the cost of longer total acquisition time or more simulated counts.

In GATE, you must also think about how many counts you want per projection. If you keep the total simulation time fixed and increase the number of projections, the counts per projection decrease. If your focus is learning the mechanics of angular projections, you can start with few angles and short acquisition times just to verify that your images change as the detector rotates. Once that works, you can increase counts and angles for better image quality.

Finally, when storing projections, include explicit metadata about projection angles and acquisition times. This is essential for reconstruction and later analysis. You can maintain a separate text file or Python structure that lists the angle for each projection index, or you can embed this information in the output filenames. By keeping the link between projection index and $\theta_k$ clear, you ensure that your GATE simulation results can be used reliably in SPECT reconstruction algorithms.

For $N$ equally spaced projections over an angular range $\Phi$, use $\Delta \theta = \Phi / N$ and $\theta_k = \theta_0 + k \Delta \theta$. Always record the angle associated with each projection image for correct SPECT reconstruction.

Views: 12

Comments

Please login to add a comment.

Don't have an account? Register now!