I will here write about the assignment that I did in the subject PHYS291, data handling in physics.
The project is based on proton therapy and optimization based on relative biological effect,RBE. The plan was to optimize a simple radiation plan in a water phantom and make a 1-D projection. This included making flat physical doses and different beam energies. This ended up not beeing what I did, as the task ended up writing a c++ script for an already existing proton plan, and run the script in optimizer to get results.
For dose planning in proton therapy, there is assumed a constant RBE for the beam througout the dose deposition. As shown in studies, this is not the case, and elevated RBE-values in the tumor can lead to elevated dose to tumor, and the normal tissue. By using Monte-Carlo simulations for dose planning, it can be optimized to take account for these elevated dose-values, and give a more homogenous biological dose.
My task got changed a littile from the original plan to optimize dose, to writing a C++ script for the already existing optimization code. The Monte-Carlo program used is called FLUKA.
The C++ code I wrote, was based on a Fortran code, and is about numbering the voxels of interest in the water phantom. The fortran code used for-loops which I tried to avoid, to make the program eventually going faster. The inputs that was made for the program was range, modulation and name of the textfile which was made. The range is how deep the proton beam should go in the water phantom, and the modulation is the length of the Spread-Out Bragg Peak. The Monte_carlo simulation gave many different plots, and some datasets. Further on, an analysis of the dose-volume histogram has been made, with root-code. The C++-code is found here, fortran code here and the root-codes here: main, comparisson . The zip file for all the code, and the data sets is found here.
I made four text-files with different range and different modulation, and wanted to compare them. The voxels that was numbered in the textfile was optimized, and plotted in ROOT. The dose distribution per depth is given below:
A way to see how much dose is given to a volume, is a dose-volume histogram. The dose( Here, 3Gy), should be given to 100% of the volume, and not anything more. Only one DVH will be given here, as the rest is similar
For illustrative purposes, a 3d plot of the dose deposition is included below:
Now, the rest of the depth-dose plots are presented. The comparison will be presented in the discussion part.The next step was to put all the DVHs together and compare if some were deviant from others. The result are presented below This code also gives an output on how much precentage of the volume gets 3Gy, where the output is as follows:
The new objective for this assignment was to look how the dose was distributed with different ranges and modulations. From figure 1,4,5 and 6 it can be seen that they are quite similar, but with difference in length and SOBP. The dose volume histogram also shows that the most part of the volume got 3Gy. This means that the C++ code created worked as it should, and the optimization showed good results. Also, wha should be noted, is that the difference in DVH in figure 8 is relative small, and also caused by randomness, and not a systematic error, as it fluctuates on both sides.
The next step of this could, would be identifying the organs at risk(OAR), in a phantom, and give them a different weighting. As for planned target volume. the weighting should be 1, and the for the organ at risk, the weighting sould be -1.