Skip to content
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

Implementation of LET modifying objectives #706

Open
wants to merge 44 commits into
base: dev_varRBErobOpt
Choose a base branch
from

Conversation

lisaseckler
Copy link

What's new:

  1. Dirty Dose (dose delivered by high-LET) objectives and its projection and functions (calcDirtyDose and calcLETmask)
  2. LETxDose objectives and its projection (coming from dij.mLETDose)
  3. LETd objectives and its projection (dose weighted LET, but only LETd SquaredUnderdosing is working nicely)
  4. Examples for all those three new objectives, mainly SquaredOverdosing and SquaredUnderdosing are shown
  5. Test Functions to create plots/histograms for the dirty dose share

For all new Objectives there are changes in objectiveFunction, objectiveGradient, OptimizationProblem and so on.

Dirty dose is calculated test wise in matRad_returnDirtyandCleanDose

To implement dirty dose in matRad there are matRad_calcLETmask and matRad_calcDirtyDose

otherwise there are new dirty dose objectives in an extra DirtyDoseObjectives folder
Changes in dirty dose objectives and two more Objectives: mLETDose and LETd
changes in LETd Objectives
cluster variance for dirty dose, dose and LETd + changes in LETd Projection
removing all the unnecessary parts
@amitantony amitantony self-assigned this Mar 27, 2024
@amitantony amitantony self-requested a review April 9, 2024 16:11
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

if ~exist('dij','var') || isempty(dij)
disp('Not enough input arguments! Calculation is not working.')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe "Not enough input arguments, missing or incomplete dij struct"

disp('Not enough input arguments! Calculation is not working.')
else
if ~exist('LET_thres','var') || isempty(LET_thres)
disp('Not enough input arguments! Calculation is not working.')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

here as well

@@ -0,0 +1,72 @@
function [stackedbarDose,physDoseInDepth,RBExDcurve,RBEcurve,h,d] = matRad_plotDirtynCleanDoseShare(definedEnd,index,ct,ctCube,dij,resultGUI,add,LET_thres,k,displayComparison)
%
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

small description on the kind of plot generated here

@@ -0,0 +1,53 @@
function [wPhysDose,LET] = matRad_plotLETbeamletSpectrumInVoxel(index, ct, ctCube, dij, resultGUI, bins, displayfigures)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

could we remove the ctCube in the arguments and just directly use the ct ?

@@ -0,0 +1,83 @@
function [highLETphysDose,lowLETphysDose,totalphysDose] = matRad_returnDirtyandCleanDose(index,ct,ctCube,dij,resultGUI,LET_thres,displayfigures,maxDirtyDose,bins)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same here with the ctCube?

% dij: matRad dij struct
%
% output
% LETmask: logical matrix for dirty dose
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

have to change the documentation for the output variables

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants