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 TRUE (default), the absolute value of Chi is computed.

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 analyse.th * vol.max are processed.

local

Boolean. If local = FALSE (default), a global Chi index is computed, and a local Chi index otherwise.

local.th

Number between 0 and 1. Local threshold, only used if local = TRUE. See Details.

project.to.isocenter

Boolean. If TRUE, and if vol and vol.ref are of modality "rtimage", the size of the pixels is corrected to correspond to that found if the sensor was at the isocenter.

alias

Character string, $object.alias of the created object.

description

Character string, describing the created object. If description = NULL (default value), it will be set to Chi index setup.

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:

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

rt.gamma.index

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")

[Package espadon version 1.6.0 Index]