Skip to content

khpeek/spread-out-Bragg-peak

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

Spread-Out-Bragg-Peak

Python script which numerically determines the proton beam energy distribution required to synthesize a spread-out Bragg peak (SOBP) with a uniform dose on a given depth interval from individual Bragg peaks. It is assumed that the protons' range-energy relationship follows a power law. The Numpy, Scipy, and Matplotlib packages are required to run the script.

Introduction

The chief advantage of proton therapy over X-ray therapy is that doses can be administered at more precisely controlled depths beneath the skin, avoiding damage to healthy tissue surrounding the tumor. Unlike X-rays, the dose of which decays approximately exponentially with depth d beneath the skin, protons' dose increases as they slow down, dropping rapidly to zero after they come to a standstill (Figure 1).

Comparison of dose profiles for proton versus X-ray radiotherapy
Figure 1. Comparison of depth-dose profiles for an X-ray beam (in red) and proton beam (in solid blue). Multiple proton beams are shown with different energies. The dashed blue line delineates a spread-out Bragg peak (SOBP) created by superposition of 12 monoenergetic beams. It is designed such that 100% dose is reached in the tumor area (shaded gray). (Source: Wikipedia).

In radiotherapy applications, it is typically required to cover an extended tumor volume with a required dose. Such a 'spread-out Bragg peak' (SOBP) can be achieved by superposition of elementary Bragg peak depth-dose curves.

This script determines the weighting factors W(R) for the Bragg peaks of range R such that the superposition results in a flat SOBP of height D0 within an interval [da,db]. The approach follows Bortfeld & Schlegel (1996), who obtained an analytical solution. The numerical solution can be more easily extended, however, to experimentally determined Bragg peaks which do not exactly fit the power law range-energy relationship assumed.

Results

The script generates three plots:

  1. a Bragg peak,
  2. a weighting function,
  3. the resultant SOBP. Each is presented in turn below.

Bragg peak

Following Bortfeld & Schlegel (1996), it is assumed that the relationship between the initial energy E(d = 0) = E0 and the range d = R in the medium is approximately given by

Equation 1,
where alpha and p are empirical constants. With p = 1.5, this relationship is known as Geiger's rule.

The beam deposits energy along its path between d = 0 and d = R in the medium. The remaining energy E(d) at an arbitrary depth must just suffice to travel the distance R - d. Thus, according to the range-energy relationship, R - d = alpha Ep(d), or

Equation 2.
The depth-dose distribution of a monoenergetic broad beam, DBP(d), can then be approximated as

Equation 3,
where rho is the density of the medium. DBP has the units of dose per unit incident particle fluence (Gy cm2). A plot of this impulse response function for p = 1.5 is shown in Figure 2.
Normalized depth-dose distribution of a monoenergetic proton beam ('Bragg peak')
Figure 2. Normalized depth-dose distribution for a monoenergetic proton beam ('Bragg peak') with maximum range R = 15 cm and p = 1.5. The exact solution DBP(d) is represented by the cyan curve, and has a singularity at d = R. This was handled in the discretized impulse response, shown by the blue dots, by taking the (numerically computed) average of the exact impulse response on intervals [x[n] - dx/2, x[n] + dx/2], where x[n] represents a grid point and dx the grid spacing, rather than sampling the Bragg peak directly.

Weighting function

The calculation of the weighting function is similar to that outlined in Appendix A of Bortfeld & Schlegel (1996); however, rather than deriving an analytical solution by using the Laplace transform, a numerical approximation is generated using Scipy's "deconvolve" function. The resulting W(R) designed to achieve a SOBP which is flat between da = 10 cm and db = 15 cm is shown in Figure 3.
Weighting function
Figure 3. Weighting function W(R) for proton beams with range R required to achieve a uniform dose distribution D0 in the interval [10, 15] cm for p = 1.5. The cyan curve shows the exact solution from Equation (4) of Bortfeld & Schlegel (1996), and the blue dots show the numerical approximation obtained by deconvolution.

Spread-out Bragg peak

The SOBP resulting from convolving the individual Bragg peak with the weighting function is shown in Figure 4.
Spread-out Bragg peak
Figure 4. A comparison of an analytical Bragg curve (in cyan; from Bortfeld & Schlegel (1996), Equation (6)) with a discretized one (in blue dots). The plot is normalized to the desired dose D0 in the interval [da, db] = [10, 15] cm.

As seen from Figure 4, the numerical solution deviates slightly from the exact one; this effect is also seen in Figure 2 of Bortfeld & Schlegel (1996). The agreement improves as the number of Bragg peaks increases, as the reader can verify by varying the parameter N in the script.

Conclusion and discussion

The weighting of proton beam energies required to achieve a spread-out Bragg peak (SOBP) with uniform dose in a specified depth interval was calculated numerically and found to agree well with an analytical solution.

Further work could include adapting the script so that it can directly use tables of measured Bragg peaks, rather than parameterizing them by assuming that the range-energy relationship follows a power law.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages