rt.chi.index {espadon} | R Documentation |
Chi index 2D - 3D
Description
The rt.chi.index
function computes the local or global
Chi index from a measurement and a reference. These latter are "volume" class
objects containing one (2D) or several planes (3D).
Usage
rt.chi.index(
vol,
vol.ref,
abs = TRUE,
vol.max = vol.ref$max.pixel,
dose.th = 0.02,
delta.r = 3,
analysis.th = 0.05,
local = FALSE,
local.th = 0.3,
project.to.isocenter = TRUE,
alias = "",
description = NULL
)
Arguments
vol |
"volume" class object, which represents the measured volume. |
vol.ref |
"volume" class object, which represents the reference volume. |
abs |
Boolean. If |
vol.max |
Positive number, by default equal to the maximum value of the reference volume. See Details. |
dose.th |
Number between 0 and 1, used to determine the dose difference criterion. See Details. |
delta.r |
Positive number, in mm. Distance difference criterion. |
analysis.th |
Number between 0 and 1. Only the voxels whose value are
greater than or equal |
local |
Boolean. If |
local.th |
Number between 0 and 1. Local threshold, only used if
|
project.to.isocenter |
Boolean. If |
alias |
Character string, |
description |
Character string, describing the created object. If
|
Details
The Chi index of a voxel \(n\) was defined by Bakai and al [1].
It is computed from the formulae:
\[\chi_n = \frac{D_i-Dref_n}{\sqrt{{\Delta D}^2 + {\Delta r}^2~\cdot~\Vert \nabla Dref_n \Vert^2}}\]
If abs = TRUE
, the used formulae is :
\[\chi_n = \frac{\vert D_i-Dref_n\vert}{\sqrt{{\Delta D}^2 + {\Delta r}^2~\cdot~\Vert \nabla Dref_n \Vert^2}}\]
with \(D_i\) the measured dose at voxel \(i\),
\(Dref_n\) the reference dose at voxel \(n\),
\(\nabla Dref_n\) the gradient of reference dose at voxel \(n\),
\(\Delta r\) the distance difference criterion equal to delta.r
, and
\(\Delta D\) the distance difference criterion at voxel \(n\) defined as follows:
If
local = FALSE
a global Chi index is computed and \(\Delta D~=~dose.th~\cdot~vol.max\).If
local = TRUE
, then \(\Delta D~=~dose.th~\cdot~Dref_n\) when \(Dref_n~\ge~local.th~\cdot~vol.max\), and \(\Delta D~=~dose.th~\cdot~local.th~\cdot~vol.max\) otherwise.
Value
Returns a "volume" class object (see espadon.class
for class definitions). The $vol3D.data
field represents the Chi index.
Two fields are added:
the $setup
field recalls the calculation setup, and the $chi.info
field
details the number of dose points, the number of evaluated dose points,the rate
of evaluated dose points, the rate of absolute values of the Chi index below 1,
above 1.2 and 1.5,the max and the mean Chi index.
References
[1] Bakai A, Alber A, Nüsslin F (2003). “A revision of the Gamma-evaluation concept for the comparison of dose distributions.” Physics in Medicine and Biologys, 48(21), 3543–3553.
See Also
Examples
# Creation of a reference volume and measured volume
# loading of toy-patient objects (decrease dxyz for better result)
patient <- toy.load.patient (modality = c ("rtdose", "rtstruct"),
roi.name = "ptv", dxyz = c (3, 3, 3))
D.ref <- patient$rtdose[[1]]
# We will assume that the measured dose is equal to the reference dose shifted
# by 3 pixels on the x axis
D.meas <- vol.copy (D.ref, alias = "measured_dose")
D.meas$vol3D.data[1:(D.meas$n.ijk[1] - 3) ,,] <- D.ref$vol3D.data[4:D.ref$n.ijk[1],,]
D.max <- as.numeric(quantile(as.numeric(D.ref$vol3D.data),
probs = 99.99/100, na.rm = TRUE))
abs_chi <- rt.chi.index (D.meas, D.ref, vol.max = D.max, delta.r = 6)
abs_chi$chi.info
# Display chi index at isocenter
G.iso <- patient$rtstruct[[1]]$roi.info$Gz[
patient$rtstruct[[1]]$roi.info$name == "ptv"]
display.plane(abs_chi, view.coord = G.iso,
bottom.col = c ("#00FF00", "#007F00", "#FF8000", "#FF0000",
"#AF0000"),
bottom.breaks = c (0, 0.8, 1, 1.2, 1.5, abs_chi$max.pixel),
interpolate = FALSE, bg = "blue")