rt.indices.from.roi: Dosimetry, volume, conformity, homogeneity indices from RoI

View source: R/rt_indices_from_roi.R

rt.indices.from.roiR Documentation

Dosimetry, volume, conformity, homogeneity indices from RoI

Description

The rt.indices.from.roi function calculates, from a "volume" class object of modality "rtdose", standard indicators of radiotherapy in relation to the target and healthy RoI, as long as their options are transmitted.

Usage

rt.indices.from.roi(
  vol,
  struct = NULL,
  T.MAT = NULL,
  target.roi.name = NULL,
  target.roi.sname = NULL,
  target.roi.idx = NULL,
  healthy.roi.name = NULL,
  healthy.roi.sname = NULL,
  healthy.roi.idx = NULL,
  presc.dose = NA,
  healthy.tol.dose = NA,
  healthy.weight = 1,
  dosimetry = c("D.min", "D.max", "D.mean", "STD"),
  volume.indices = c("V.tot", "area", "V.prescdose"),
  conformity.indices = c("PITV", "PDS", "CI.lomax2003", "CN", "NCI", "DSC",
    "CI.distance", "CI.abs_distance", "CDI", "CS3", "ULF", "OHTF", "gCI", "COIN",
    "G_COSI", "COSI"),
  homogeneity.indices = c("HI.RTOG.max_ref", "HI.RTOG.5_95", "HI.ICRU.max_min",
    "HI.ICRU.2.98_ref", "HI.ICRU.2.98_50", "HI.ICRU.5.95_ref", "HI.mayo2010",
    "HI.heufelder"),
  gradient.indices = c("GI.ratio.50", "mGI"),
  D.xpc = NULL,
  D.xcc = NULL,
  V.xpc = NULL,
  V.xGy = NULL,
  DVH = TRUE,
  verbose = TRUE,
  ...
)

Arguments

vol

"volume" class object, of "rtdose" modality.

struct

"struct" class object.

T.MAT

"t.mat" class object, created by load.patient.from.Rdcm or load.T.MAT. If T.MAT = NULL, struct$ref.pseudo must be equal to vol$ref.pseudo.

target.roi.name

Exact name of target RoI in struct object. By default target.roi.name = NULL. See Details.

target.roi.sname

Name or part of name of target RoI in struct object. By default target.roi.sname = NULL. See Details.

target.roi.idx

Value of the index of target RoI that belong to the struct object. By default target.roi.idx = NULL. See Details.

healthy.roi.name

Exact name of healthy RoI in struct object. By default healthy.roi.name = NULL.

healthy.roi.sname

Name or part of name of healthy RoI in struct object. By default healthy.roi.sname = NULL.

healthy.roi.idx

Value of the index of healthy RoI that belong to the struct object. By default healthy.roi.idx = NULL.

presc.dose

Vector of prescription doses that serve as reference doses for the target RoI.

healthy.tol.dose

Vector of tolerance doses of each healthy RoI.

healthy.weight

Vector of weights, indicating the importance of the healthy RoI.

dosimetry

Vector indicating the requested dose indicators from among 'D.min', 'D.max', 'D.mean' and 'STD'. If D.xpc is different from NULL, it will be added.

volume.indices

Vector indicating the requested volume indices from among 'V.tot', 'V.prescdose' (i.e. volume over presc.dose) and 'area'. If V.xGy is different from NULL, it will be added.

conformity.indices

Vector. Requested conformity indices from among 'PITV', 'PDS', 'CI.lomax2003', 'CN', 'NCI', 'DSC', 'CI.distance', 'CI.abs_distance', 'CDI', 'CS3', 'ULF', 'OHTF', 'gCI', 'COIN', 'COSI' and 'G_COSI'.

homogeneity.indices

Vector. Requested homogeneity indices from among 'HI.RTOG.max_ref', 'HI.RTOG.5_95', 'HI.ICRU.max_min', 'HI.ICRU.2.98_ref', 'HI.ICRU.2.98_50', 'HI.ICRU.5.95_ref', 'HI.mayo2010' and 'HI.heufelder.'

gradient.indices

Vector. Requested gradient indices from among 'GI.ratio.50', 'mGI'.

D.xpc

Vector of the percentage of the volume, for which the dose coverage is requested.

D.xcc

Vector of the volume in cm³, for which the dose coverage is requested.

V.xpc

Vector of the percentage of the reference dose, received by the volume to be calculated.

V.xGy

Vector of the minimum dose in Gy, received by the volume to be calculated.

DVH

boolean. If TRUE (default), the function returns the DVHs of the target and healthy ROIs.

verbose

Boolean. if TRUE (default) a progress bar is displayed.

...

others parameters such as DVH.step.

Details

If target.roi.name, target.roi.sname, and target.roi.idx are all set to NULL, all RoI containing 'ptv' (if they exist) are selected.

If target.roi.name, target.roi.sname, and target.roi.idx are all set to NULL,no target RoI are selected.

If healthy.roi.name, healthy.roi.sname, and healthy.roi.idx are all set to NULL, no healthy RoI are selected.

Value

Returns a list containing (if requested):

dosimetry : dataframe containing, for all target and healthy structures:

  • the requested dosimetry : D.min (Gy), D.max (Gy), D.mean (Gy) and STD (Gy), respectively the minimum, maximum, mean and standard deviation of the dose in the regions of interest.

  • the requested $D.x% : (Gy) Dose covering x percent of structure volume.

  • the requested $D.xcc : (Gy) Dose covering x (cm³) of structure volume.

All numbers are displayed with a resolution depending on the DVH quantization step. The default resolution is 1e-3.

volume : dataframe containing, for all target and healthy structures, and isodoses:

  • the requested volume.indices : V_tot (cm³) (except for isodose) the total volume of the regions of interest, area (cm²) (except for isodose) their surface areas, V.prescdose (cm³) the volumes receiving at least presc.dose Gy,

  • the requested V.xGy (cm³): volumes receiving at least x Gy.

  • the requested V.xpc (cm³) Volume receiving at least x% of the reference dose.

conformity : dataframe containing, if requested:

  • PITV : (1) Prescription Isodose Target Volume, or conformity index defined by E.Shaw [1]

    PITV = \frac{V_{presc.dose}}{V_{target}}

  • PDS : (1) Prescription Dose Spillage defined by SABR UK Consortium 2019 [2]

    PDS = \frac{V_{presc.dose}}{V_{target \ge presc.dose}} = \frac{V_{presc.dose}}{V_{target} \cap V_{presc.dose}}

  • CI.lomax2003 : (1) Conformity Index defined by Lomax et al. [3]

    CI_{lomax2003} = \frac{V_{target \ge presc.dose}}{V_{presc.dose}} = \frac{V_{target} \cap V_{presc.dose}}{V_{presc.dose}}

  • CN : (1) Conformation Number defined by Van't Riet et al. [4]. It corresponds to conformity index defined by Paddick [5]

    CN = CI_{paddick2000} = \frac{V_{target \ge presc.dose}^2}{V_{target} \cdot V_{presc.dose}} = \frac{(V_{target} \cap V_{presc.dose})^2}{V_{target} \cdot V_{presc.dose}}

  • NCI : (1) New conformity index, inverse of CN, defined by Nakamura et al. [6]

    NCI = \frac{1}{CN}

  • DSC : (1) Dice Similarity Coefficient [7]

    DSC = 2 \cdot \frac{V_{target \ge presc.dose}}{V_{target} + V_{presc.dose}} = 2 \cdot \frac{V_{target} \cap V_{presc.dose}}{V_{target} + V_{presc.dose}}

  • CI.distance : (1) Conformity Index based on distance defined by Park et al. [8]

    CI.distance = \frac{100}{N} \sum^N \frac{dist_{S_{presc.dose} \to G_{target}} - dist_{S_{target} \to G_{target}}}{dist_{S_{target} \to G_{target}}}

    where dist_{S_{presc.dose} \to G_{target}} is the distance between the surface of the prescription dose volume and the centroid of the target, and dist_{S_{target} \to G_{target}} the surface of the target volume and the centroid of the target. N is the number of directions where the distances are calculated. These directions are computed every 1°. If the centroid is not within the target volume, then CI.distance = NA.

  • CI.abs_distance : (1) Conformity Index based on distance defined by Park et al. [8]

    CI.|distance| = \frac{100}{N} \sum^N \frac{|dist_{S_{presc.dose} \to G_{target}} - dist_{S_{target} \to G_{target}}|}{dist_{S_{target} \to G_{target}}}

  • CDI : (1) Conformity Distance Index defined by Wu et al. [9]

    CDI = 2 \frac{V_{presc.dose} + V_{target} - 2 V_{target \ge presc.dose}}{ S_{target} + S_{presc.dose}} = \frac{ V_{presc.dose} + V_{target} - 2 (V_{target} \cap V_{presc.dose})}{ S_{target} + S_{presc.dose}}

    where S_{target} is the surface of the target volume and S_{presc.dose} is the surface of the prescription dose volume.

  • CS3 : (1) Triple Point Conformity Scale defined by Ansari et al. [10]

    CS3 = \frac{V_{0.95 \cdot presc.dose} + V_{presc.dose} + V_{1.05 \cdot presc.dose}}{3 \cdot V_{target}}

  • ULF : (1) Underdosed lesion factor defined by Lefkopoulos et al. [11]

    ULF = \frac{V_{target < presc.dose}}{V_{target}} = \frac{ V_{target} \cap \overline{V_{presc.dose}}}{V_{target}}

  • OHTF : (1) Overdosed healthy tissues factor defined by Lefkopoulos et al. [11]

    OHTF = \frac{\sum V_{healthy \ge presc.dose}}{V_{target}} = \frac{ \sum V_{healthy} \cap V_{presc.dose}}{V_{target}}

  • gCI : (1) Geometric Conformity Index defined by Lefkopoulos et al. [11]

    gCI = ULF + OHTF

  • COIN : Conformity Index defined by Baltas et al. [12]

    COIN = \frac{V_{target \ge presc.dose}^2}{ V_{target} \cdot V_{presc.dose}} \cdot \prod^{N_{healthy}} (1 - \frac{ V_{healthy \ge presc.dose}}{V_{healthy}})

  • gCOSI : generalized COSI, defined by Menhel et al. [13].

    gCOSI = 1 - \sum^{N_{healthy}} healthy.weight \cdot \frac{ \frac{V_{healthy \ge healthy.tol.dose}}{V_{healthy}}}{ \frac{V_{target \ge presc.dose}}{V_{target}}}

COSI : if "COSI" is requested in conformity.indices, it returns a dataframe of Critical Organ Scoring Index for each healthy organ, at each presc.dose, and for each target. COSI is defined by Menhel et al. [13]

COSI = 1 - \frac{\frac{V_{healthy \ge healthy.tol.dose}}{V_{healthy}}}{ \frac{V_{target \ge presc.dose}}{V_{target}}}

homogeneity : dataframe containing:

  • HI.RTOG.max_ref : (1) Homogeneity Index from RTOG defined by E.Shaw [1]

    HI.RTOG.max/ref = \frac{D_{max}}{presc.dose}

  • HI.RTOG.5_95 : (1) Homogeneity Index from RTOG [1]

    HI_{RTOG.5/95} = \frac{D_{5\%}}{D_{95\%}}

    where D_{5\%} and D_{95\%} are respectively the doses at 5% and 95% of the target volume in cumulative dose-volume histogram.

  • HI.ICRU.max_min : (1) Homogeneity Index from ICRU report 62 [14]

    HI_{ICRU.max/min} = \frac{D_{max}}{D_{min}}

    where D_{max} and D_{min} are respectively the maximum and the minimum dose in the target volume.

  • HI.ICRU.2.98_ref : (1) Homogeneity Index from ICRU report 83 [15]

    HI_{ICRU.2.98/ref} = 100 \cdot \frac{D_{2\%} - D_{98\%}}{presc.dose}

    where D_{2\%} and D_{98\%} are respectively the doses at 2% and 98% of the target volume in cumulative dose-volume histogram.

  • HI.ICRU.2.98_50 : (1) Homogeneity Index from ICRU report 83 [15]

    HI_{ICRU.2.98/50} = 100 \cdot \frac{D_{2\%} - D_{98\%}}{D_{50\%}}

    where D_{2\%}, D_{98\%} and 50\% are respectively the doses at 2%, 98% and 50% of the target volume in cumulative dose-volume histogram.

  • HI.ICRU.5.95_ref : (1) Homogeneity Index from ICRU report 83 [15]

    HI_{ICRU.5.95/ref} = 100 \cdot \frac{D_{5\%} - D_{95\%}}{presc.dose}

    where D_{5\%} and D_{95\%} are respectively the doses at 5% and 95% of the target volume in cumulative dose-volume histogram.

  • HI.mayo2010 : (1) Homogeneity Index defined by Mayo et al. [16]

    HI_{mayo2010} = \sqrt{\frac{D_{max}}{presc.dose} \cdot (1 + \frac{ \sigma_D}{presc.dose})}

    where D_{max} is the maximum dose in the target volume, and \sigma_D the standard deviation of the dose in the target volume.

  • HI.heufelder : (1) Homogeneity Index defined by Heufelder et al. [17]

    HI_{heufelder} = e^{-0.01 \cdot (1 - \frac{ \mu_D}{presc.dose})^2} \cdot e^{-0.01 \cdot (\frac{\sigma_D}{presc.dose})^2}

    where \mu_D and \sigma_D are respectively the mean and the standard deviation of the dose in the target volume.

gradient : dataframe containing:

  • GI.ratio.50: Gradient Index based on volumes ratio defined by Paddick and Lippitz [18]

    GI_{ratio.50} = \frac{V_{0.5 \cdot presc.dose}}{V_{presc.dose}}

  • mGI: Modified Gradient Index defined by SABR UK Consortium 2019 [2]

    mGI = \frac{V_{0.5 \cdot presc.dose}}{V_{target \ge presc.dose}} = \frac{ V_{0.5 \cdot presc.dose}}{V_{target} \cap V_{presc.dose}}

DVH : dataframe containing the Dose-Volume histograms of target and healthy ROIs, in percent.

References

[1] \insertRefSHAW19931231espadon

[2] \insertRefSABRespadon

[3] \insertRefLOMAX20031409espadon

[4] \insertRefRIET1997731espadon

[5] \insertRefPaddick2000ASSespadon

[6] \insertRefNakamura2002espadon

[7] \insertRefDICE1945espadon

[8] \insertRefPark2014espadon

[9] \insertRefWu2003espadon

[10] \insertRefAnsari2018espadon

[11] \insertRefLEFKOPOULOS2000espadon

[12] \insertRefBaltas1998ACIespadon

[13] \insertRefMenhel2006espadon

[14] \insertRefICRU621espadon

[15] \insertRefICRU83espadon

[16] \insertRefMAYO20101457espadon

[17] \insertRefHEUFELDER2003231espadon

[18] \insertRefPaddick2006ASDespadon

All this references are compiled by

  • \insertRef

    KAPLAN2021164espadon and

  • \insertRef

    PATEL2020espadon.

See Also

rt.indices.from.bin.

Examples

# loading of toy-patient objects (decrease dxyz and increase beam.nb 
#  for better result)
step <- 5
patient <- toy.load.patient (modality = c("rtdose", "rtstruct"), roi.name = "eye",
                             dxyz = rep (step, 3), beam.nb = 3)
indices <- rt.indices.from.roi (patient$rtdose[[1]],  patient$rtstruct[[1]],
                                target.roi.sname = "ptv",
                                healthy.roi.sname = "eye", presc.dose = 50,
                                conformity.indices = c("PITV", "PDS", "CI.lomax2003", 
                                                       "CN", "NCI", "DSC","COIN"),
                                verbose = FALSE)
indices[c("dosimetry","volume", "conformity","homogeneity","gradient")]
head(indices$DVH)

espadon documentation built on May 8, 2026, 9:07 a.m.