-
Notifications
You must be signed in to change notification settings - Fork 193
Update on merging VMAT into dev #377
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev
Are you sure you want to change the base?
Conversation
New: Siochi leaf sequencing with more fluid number of kept apertures. Still respect constraints of min/max gantry angle spacing.
Changed the first gantry angle from 0 to non-zero. This makes things much easier.
Figured out problem with DAO: the leaf speed was defined as the difference between positions, not absolute difference. Then speed was constrained to be between 0 and 6 cm/s, which forced unidirectional motion, increasing the objective function. Temporary fix: allow negative values. Eventually, change definition of function so that it considers the absolute difference. Will also have to change the Jacobian.
Fixed leaf speed constraints and Jacobian. Siochi sequencing ready to be pilled to dev.
# Conflicts: # optimization/matRad_constFuncWrapper.m # optimization/matRad_jacobFuncWrapper.m
Testing Revert
This reverts commit 3fe0406.
Weight to MU changed from 1 to 100.
pln.bioOptimization put into options structure
This reverts commit 79e5632.
Added leaf speed constraints back in
Changed leaf speed from mm/s -> cm/s, greatly reducing treatment time. Added function helping to test planning capabilities. Fixed bug in Dij sampling, when no voxels are outside of the core.
Shifted time variable to be the time over the optimized beam's arc, rather than the time between optimized beam angles. This makes more sense when calculating e.g. dose rate. Also, this will make more sense when doing dynamic fluence calculation.
Split the daoVec2ApertureInfo into 3 functions so that we didn't have to keep running if statements on VMAT, dynamic vs. static fluence calculation, etc.
Added option for dynamic fluence optimization for VMAT DAO, including support for interpolated apertures.
Support for Jacobian scaling
Added support for 4D dose calculation, including deformed CT cubes and deformation vectors.
This reverts commit de9682f.
|
The most recent updates fixed the jacobian computation and ensured that we always use the newest shape/bixel information (see #506 ), so now it is possible to use dose constraints again. |
|
Fixed the bug of the missing
|
…erge # Conflicts: # matRad_calcCubes.m # matRad_fluenceOptimization.m # matRad_generateStf.m
| pln.propOpt.VMAToptions.maxGantryAngleSpacing = 2; % Max gantry angle spacing for dose calculation | ||
| pln.propOpt.VMAToptions.maxDAOGantryAngleSpacing = 4; % Max gantry angle spacing for DAO | ||
| pln.propOpt.VMAToptions.maxFMOGantryAngleSpacing = 28; % Max gantry angle spacing for FMO |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These parameters only seem to work for certain combinations of parameters.
Using the following comination throws an error:
pln.propOpt.VMAToptions.maxGantryAngleSpacing = 8; % Max gantry angle spacing for dose calculation pln.propOpt.VMAToptions.maxDAOGantryAngleSpacing = 16; % Max gantry angle spacing for DAO pln.propOpt.VMAToptions.maxFMOGantryAngleSpacing = 28; % Max gantry angle spacing for FMO
If this is intended behavior, the conditions should be tested for and a sensible error message should appear. I don't know if I induced this or it was already there before.
|
This PR was automatically marked as stale it has been open 30 days with no activity. Please review/update/merge this PR. |
|
Hi @eric11210 |
# Conflicts: # dicom/matRad_importDicomSteeringPhotons.m # examples/matRad_example3_photonsDAO.m # matRad.m # matRad/basedata/photons_Generic.mat # matRad/matRad_directApertureOptimization.m # matRad/optimization/@matRad_OptimizationProblemDAO/matRad_daoApertureInfo2Vec.m # matRad/optimization/@matRad_OptimizationProblemDAO/matRad_daoVec2ApertureInfo.m # matRad/optimization/@matRad_OptimizationProblemVMAT/matRad_OptimizationProblemVMAT.m # matRad/optimization/@matRad_OptimizationProblemVMAT/matRad_constraintFunctions.m # matRad/optimization/@matRad_OptimizationProblemVMAT/matRad_constraintJacobian.m # matRad/optimization/@matRad_OptimizationProblemVMAT/matRad_daoApertureInfo2Vec.m # matRad/optimization/@matRad_OptimizationProblemVMAT/matRad_daoVec2ApertureInfo.m # matRad/optimization/@matRad_OptimizationProblemVMAT/matRad_getConstraintBounds.m # matRad/optimization/@matRad_OptimizationProblemVMAT/matRad_getJacobianStructure.m # matRad/optimization/@matRad_OptimizationProblemVMAT/matRad_objectiveGradient.m # matRad/optimization/matRad_bixWeightAndGrad.m # matRad/optimization/matRad_daoVec2ApertureInfo_VMATrecalcDynamic.m # matRad/optimization/optimizer/matRad_OptimizerFmincon.m # matRad/sequencing/matRad_sequencing2ApertureInfo.m # matRad/sequencing/matRad_siochiLeafSequencing.m # matRadGUI.m # matRad_DijSampling.m # matRad_calcCubes.m # matRad_calcDoseDirect.m # matRad_calcDoseInit.m # matRad_calcPhotonDose.m # matRad_fluenceOptimization.m # matRad_generateStf.m # optimization/@matRad_OptimizationProblem/matRad_constraintFunctions.m
|
I updated to the recent dev as best I could. Most important things to do:
|
|
@wahln Sorry I checked off one of the boxes but I cannot uncheck it... Is there a document or guidance on the file structure/philosophy that I can review? It's been some time since I've looked at newer matRad branches. |
❌ 7 Tests Failed:
View the top 3 failed test(s) by shortest run time
To view more test analytics, go to the Test Analytics Dashboard |
Unfortunately we haven't really written this down yet in the documentation. But here's some new principles
|
Test Results 3 files ±0 3 suites ±0 34m 7s ⏱️ -5s For more details on these failures, see this check. Results for commit 2b4490d. ± Comparison against base commit fdf2906. ♻️ This comment has been updated with latest results. |
|
I'll update this comment with idea/steps as we go along. I've included the ones @wahln had above. General aspects
Continuous aperture vs. fixed aperture Keep the "if else" statements.
|
Dear @markbangert @eric11210 ,
this is my updated attempt at merging dev_VMAT with dev especially concerning the new optimization interface, but also dose calculation.
What I did here, is merge dev_VMAT into a copy of the current dev branch. I think that this is better than what I did before (#376 ), because know you have a better acces to the changed files within this pull request (and see the changes i did within the merge commit).
Also @markangert should be able to close (#308 ).
It seems like it runs smoothly now with the old settings, i.e. fluence Opt & DAO opt without preconditioning. It doesn't work with VMAT yet (dose calculation works, but fluence optimization is weird and DAO/VMAT doesn't work)
But anyways, I hope you now have a better basis to continue with the merge.
Some comments:
Let me know if you have questions. I will let you know if I forgot something in the list.
P.S.: Does someone of you have a very light test script for the VMAT?