Difference: FREDOptimizerStudies (4 vs. 5)

Revision 52020-10-12 - AlessioSarti

 
META TOPICPARENT name="SBAMSoftwareProjects"

FRED Optimizer tips & helps


Installing and running

The Optimizer lives under git.

Changed:
<
<
Download using
>
>
Download using
Deleted:
<
<
<--?xml version="1.0" encoding="UTF-8"?-->
 
git clone http://XXXuser@arpg-serv.ing2.uniroma1.it:8181/git/Optimizer.git 

where you need to replace XXXuser with the account under the git server (if you don't know if you have an account, ask a.sarti) and compile it as it is explained inside README.txt

To run the optimizer one has to launch it using the syntax

Deleted:
<
<
 
./optiRoot #inputfile
Changed:
<
<
A template for the input file that uses 7 different fields can be found in the folder inpFiles.
>
>
A template for the input file that uses 7 different fields can be found in the folder inpFiles.
 

The input file

The input files contains several fields and lines to setup the optimizer:

  • The dij for each field can be specified using dij:
  • ptv: defines what is the PTV and the goal dose, the weight
  • oar: for the organs at risk one can set the max dose, the weight and the DMF.
  • NoT: for the normal tissues (CT - PTV - OARs) one can set the max dose, the weight, the DMF and the threshold applied to consider the voxels as NoT
  • outFlag: flags the output files
As an example:
Deleted:
<
<
 
dij: SingleFieldMatrix/70MeV/Dij_merge1.bin
dij: SingleFieldMatrix/70MeV/Dij_merge2.bin
dij: SingleFieldMatrix/70MeV/Dij_merge3.bin
dij: SingleFieldMatrix/70MeV/Dij_merge4.bin
dij: SingleFieldMatrix/70MeV/Dij_merge5.bin
dij: SingleFieldMatrix/70MeV/Dij_merge6.bin
dij: SingleFieldMatrix/70MeV/Dij_merge7.bin
ptv: PTVTrue_NEW_itk.mhd Dgoal 2
oar: vescica_NEW_itk.mhd maxDose 2.2 DMF 1. weight 20 
oar: retto_NEW_itk.mhd maxDose 2.2 DMF 1. weight 20 
oar: bulbopenieno_NEW_itk.mhd maxDose 2.2 DMF 1. weight 20 
oar: femoredx_NEW_itk.mhd maxDose 1. DMF 1. weight 20 
oar: femoresin_NEW_itk.mhd maxDose 1. DMF 1. weight 20 
oar: ano_NEW_itk.mhd maxDose 2.2 DMF 1. weight 20 
NoT: maxDose 1.2 DMF 1. weight 10 thre 5.
Changed:
<
<
outFlag: 70MeV_VeReBp22Gy_NT12_DMF1_OAR20
>
>
outFlag: 70MeV_VeReBp22Gy_NT12_DMF1_OAR20
 
Deleted:
<
<
The use of the weights herebefore sets NoT @ 10%, OARs @ 20% and PTV @ 100%.

The new workflow

 
Changed:
<
<
- legge il DMF_NT (default = 1)
- carica i PTV con relativa plannedDose ed eventuale DMF (default = 1)
- carica gli OAR con relativa maxDose ed eventuale DMF (default = 1)
- crea la mappa “dense” del DMF (per ogni voxel della CT)
- carica le varie Dij (ad esempio una per ogni field) applicando il DMF
>
>
 
Changed:
<
<
- output: scrive la mappa con i voxel appartenenti alle varie ROI => rois.mhd
- output: scrive la mappa densa con il DMF delle varie ROI => alldmf.mhd
>
>
The is also the possibility to choose the initial particle numbers (the initial 'guess') using the directive fluences.
Added:
>
>
Typical input=
...
fluences: choice
...
With the following options for choice
1) "ones" [default] : set all PBs to unitary fluence
2) "random" : fill PBs fluences with random values in [1:10] range
3) path : load initial fluences from given file (format same as writePBs() function)
 
Changed:
<
<
- lancia l’ottimizzatore
>
>
The use of the weights herebefore sets NoT @ 10%, OARs @ 20% and PTV @ 100%.
Added:
>
>

The new workflow

  • PTVs are loaded, setting plannedDose, DMF (default = 1) and weight (default 100%)
  • OARS are loaded, setting maxDose, DMF, weights. If a voxel is flagged as PTV, it is not overwritten.
  • loads the NT as ALL - PTV - OARS applying a threshold that can be tuned in the NoT field.
  • DMF is populated and applied when computing the dose/loading the Dij
After the configuration:
  1. As a first thing the optimizer writes the voxel maps in the different ROIs: rois_outflag.mhd.
  2. Then the dens map of the DMF is written as well: alldmf_outflag.mhd
  3. The optimizer is launched
  4. Reconstruct and writes the optimized dose map: optiDose_outflag.mhd
To investigate the output, please look at the following section.
 
Deleted:
<
<
- output: ricostruisce e scrive la mappa di dose ottimizzata (usando il DMF) => optiDose.mhd
 

Checking the output

Creating the DVHs and analysing the output

In order to generate the DVH a script is provided by git.

To run it:

Deleted:
<
<
 
./testDVH/mhd_DVH.py -p -v -roi PTVTrue_NEW_itk.mhd vescica_NEW_itk.mhd retto_NEW_itk.mhd bulbopenieno_NEW_itk.mhd 
ano_NEW_itk.mhd femoredx_NEW_itk.mhd femoresin_NEW_itk.mhd -dose optiDose_70MeV_0.8Op_PTV_2GyVesRet_1Gyall.mhd 
--norm-volume -Dgoal 200

The available options can be prompted using

Deleted:
<
<
 
./testDVH/mhd_DVH.py -h

The output is.

Added:
>
>
To check the dose using itksnap, you can on lisa use the installed binaries.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/nvidia/nsight-systems/2019.3.7/Host-x86_64/ 
export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/opt/nvidia/nsight-systems/2019.3.7/Host-x86_64/
 

To run the software:

/home_arpg/software/itksnap-3.8.0-20190612-Linux-gcc64-qt4/bin/itksnap  

First of all you can add the dicom, then the optiDose mhd to make a superposition.

 -- Alessio Sarti - 2020-10-06

Comments


<--/commentPlugin-->
Added:
>
>
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback