15.6. Dose Profiles
Table of Contents
Extracting profiles
Dose profiles are one dimensional cuts through a two or three dimensional dose distribution. They are essential tools to understand how dose varies along a particular direction, for example through the depth of a water phantom or across a field edge in a patient plan.
In GATE, dose is usually recorded by a dose actor on a regular Cartesian grid. The actor defines the number of voxels in each direction, $N_x$, $N_y$, $N_z$, the voxel spacing, and the origin. The result is written as an image file, for example MHD or NIfTI, where each voxel contains the absorbed dose value, often in gray per primary or gray per history.
To extract a dose profile, you first read this 3D dose image into your analysis environment. In Python this is commonly done with libraries such as SimpleITK, ITK, or nibabel, depending on the file format. The image is then represented as a 3D array $D[i,j,k]$ and associated spatial metadata that tells you the voxel spacing and origin.
The simplest profile is a line passing exactly along one axis of the grid, for example a depth dose curve along $z$. To obtain such a profile, you select a fixed pair of indices in the other two dimensions and vary the index along the direction of interest. For example, with $i$ along $x$, $j$ along $y$, and $k$ along $z$, a central axis depth profile could be written schematically as
$$
P_{\text{depth}}(k) = D[i_0, j_0, k],
$$
where $(i_0, j_0)$ correspond to the central axis location. This gives you a one dimensional array of dose values along $z$, which you can then plot as a function of depth using the voxel spacing to convert indices to physical positions.
Often, it is beneficial to reduce statistical noise by averaging over several neighboring voxels orthogonal to the profile direction. For a central depth dose, this could be a small region around the central axis:
$$
P_{\text{avg}}(k) = \frac{1}{N_{\text{ROI}}} \sum_{i \in I} \sum_{j \in J} D[i,j,k],
$$
where $I$ and $J$ are sets of indices defining a small rectangular region of interest, and $N_{\text{ROI}}$ is the total number of voxels in that region. This spatial averaging improves precision at the cost of spatial resolution.
For lateral or crossline profiles, you proceed similarly but vary the index along $x$ or $y$ at a selected depth $k_0$:
$$
P_{x}(i) = D[i, j_0, k_0], \quad
P_{y}(j) = D[i_0, j, k_0].
$$
Again, you may average over a few voxels around $(j_0, k_0)$ or $(i_0, k_0)$ to improve statistics. In clinical configurations, it is common to extract lateral profiles at characteristic depths, such as the depth of maximum dose or a reference depth.
When extracting profiles that do not follow the grid axes, for example along an oblique line through a patient CT, you interpolate the dose values. You define a parametric line in physical coordinates and then sample the dose along this line using trilinear interpolation on the voxel grid. Many image analysis libraries provide interpolation functions that accept physical coordinates and return interpolated image values.
To analyze and plot profiles, you convert indices to physical positions using the image origin and spacing. If the voxel spacing along $z$ is $\Delta z$ and the origin coordinate is $z_0$, then the physical depth of voxel index $k$ is
$$
z_k = z_0 + k \cdot \Delta z.
$$
You then plot $P_{\text{depth}}(k)$ against $z_k$. Similar relationships hold for $x$ and $y$ coordinates.
Important: Always check and use the correct voxel spacing and origin when converting indices to physical coordinates. Misinterpreting the grid geometry is a frequent source of systematic errors in dose profile analysis.
In addition, remember that the dose actor normalization matters. If your actor reports dose per primary particle, you may need to scale the profile by the number of histories or the delivered monitor units to compare with measurements or treatment planning system calculations. The actor configuration and output metadata indicate the normalization.
Comparing dose distributions
Once you can reliably extract dose profiles from GATE simulations, you can compare these profiles with other distributions, such as alternative simulations, analytical calculations, or experimental measurements. Profile comparison allows you to quantify how well your simulation reproduces reference data and is a key component of validation.
Before comparison, you should harmonize coordinate systems and normalizations. Both profiles must use the same physical coordinate along the profile direction. If your reference data was measured at specific depths or positions, align the simulated positions to those points, using interpolation if needed. You also need to decide on a normalization strategy. Common approaches are to normalize both profiles to their maximum value along the profile, or to a specific reference point such as the dose at a given depth:
$$
P^{\text{norm}}(z) = \frac{P(z)}{P(z_{\text{ref}})}.
$$
This removes differences in absolute scaling so that you can focus on relative shape differences.
A simple and widely used metric is the point by point relative dose difference:
$$
\Delta_{\text{rel}}(x) = 100\,\% \times \frac{P_{\text{sim}}(x) - P_{\text{ref}}(x)}{P_{\text{ref}}(x)}.
$$
You can plot $\Delta_{\text{rel}}(x)$ alongside the absolute profiles to identify regions where the simulation deviates from the reference beyond acceptable tolerances. In high gradient regions, such as field edges and penumbrae, small spatial misalignments can lead to large relative differences, so care must be taken in interpreting these results.
To account for both dose difference and spatial agreement, the gamma index is commonly used in dose distribution comparison. Although gamma analysis is often applied to full 2D or 3D distributions, it is also meaningful along one dimensional profiles. In one dimension, the gamma index tests whether a simulated dose point lies within defined dose difference and distance to agreement criteria relative to the reference profile. For example, a $3\% / 3\,\text{mm}$ criterion allows up to 3 percent dose difference or 3 mm spatial offset, with the gamma index $\gamma(x) \leq 1$ indicating agreement at that point.
Key rule: Always specify your comparison criteria explicitly, for example $3\% / 3\,\text{mm}$, and include both a dose difference and a distance to agreement component when judging the quality of dose profile agreement.
The table below summarizes common comparison choices:
| Comparison aspect | Typical choice | Purpose |
|---|---|---|
| Normalization point | Maximum dose or reference depth | Remove absolute scaling differences |
| Dose difference | $2\%$ to $5\%$ | Quantify relative deviations |
| Distance to agreement | $2$ mm to $5$ mm | Account for spatial shifts |
| Region of interest | High dose region, penumbra | Focus on clinically relevant areas |
When comparing multiple profiles, such as different field sizes or beam energies, it is useful to extract and plot them together on the same graph, with clear legends and consistent normalization. Deviations that systematically increase with depth or off axis distance may indicate issues in your physics configuration, material definitions, or geometry.
Dose profiles are also a practical way to compare different simulation configurations. For instance, you can examine how changing production cuts, voxel size, or physics lists modifies the depth dose curve or the lateral penumbra. By quantifying changes in characteristic quantities such as depth of maximum dose, field width at 50 percent dose, or dose at a given off axis distance, you can balance accuracy and performance.
Finally, remember that all Monte Carlo dose profiles carry statistical uncertainty. When you extract a profile, you can also obtain the associated statistical error for each point if your actor records uncertainties. Including error bars in your comparison plots clarifies which differences are statistically significant. If the simulated uncertainty is large, especially in low dose regions, differences with a reference profile may not be meaningful until more histories are simulated.
Views: 8
KAHIBARO