View source: R/rt_indices_from_roi.R
| rt.indices.from.roi | R Documentation |
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.
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,
...
)
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 |
target.roi.name |
Exact name of target RoI in |
target.roi.sname |
Name or part of name of target RoI in |
target.roi.idx |
Value of the index of target RoI that belong to the
|
healthy.roi.name |
Exact name of healthy RoI in |
healthy.roi.sname |
Name or part of name of healthy RoI in |
healthy.roi.idx |
Value of the index of healthy RoI that belong to the
|
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 |
volume.indices |
Vector indicating the requested volume indices from among
'V.tot', 'V.prescdose' (i.e. volume over |
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 |
verbose |
Boolean. if |
... |
others parameters such as |
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.
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.
[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
KAPLAN2021164espadon and
PATEL2020espadon.
rt.indices.from.bin.
# 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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.