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,
...
)Returns a list containing (if requested)
-~dosimetryascii : 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^3ascii)
of structure volume.
All numbers are displayed with a resolution depending on the DVH quantization step. The default resolution is 1e-3.
-~volumeascii : dataframe containing, for all target and healthy structures, and isodoses:
the requested volume.indices : V_tot (cm^3ascii)
(except for isodose) the total volume of the regions of interest, area
(cm^2ascii) (except for isodose) their surface areas,
V.prescdose (cm^3ascii) the volumes receiving at least
presc.dose Gy,
the requested V.xGy (cm^3ascii):
volumes receiving at least x Gy.
the requested V.xpc (cm^3ascii)
Volume receiving at least x% of the reference dose.
-~conformityascii : dataframe containing, if requested,
PITV : (1) Prescription Isodose Target Volume, or conformity index
defined by E.Shaw [1]
PITV = V_presc.doseV_targetascii
PDS : (1) Prescription Dose Spillage
defined by SABR UK Consortium 2019 [2]
PDS = V_presc.doseV_target ~~ presc.dose =
V_presc.doseV_target ~~ V_presc.doseascii
CI.lomax2003 : (1) Conformity Index defined by Lomax and al
[3]
CI_lomax2003 = V_target ~~ presc.doseV_presc.dose =
V_target ~~ V_presc.doseV_presc.doseascii
CN : (1) Conformation Number defined by Van't Riet and al
[4]. It corresponds to conformity index defined by Paddick
[5]
CN = CI_paddick2000 =V_target ~~ presc.dose^2V_target~~V_presc.dose =
(V_target ~~ V_presc.dose)^2V_target~~V_presc.doseascii
NCI : (1) New conformity index, inverse of CN, defined by
Nakamura and al [6]
NCI =1CNascii
DSC : (1) Dice Similarity Coefficient [7]
DSC = 2 ~~V_target ~~ presc.doseV_target + V_presc.dose =
2 ~~V_target ~~ V_presc.doseV_target + V_presc.doseascii
CI.distance : (1) Conformity Index based on distance defined by
Park and al [8]
CI.distance = 100N ^N dist_S_presc.dose~~G_target -
dist_S_target~~G_targetdist_S_target~~G_targetascii
where dist_S_presc.dose~~G_targetascii is the distance between
the surface of the prescription dose volume and the centroid of the target,
and dist_S_target~~G_targetascii the surface of the target
volume and the centroid of the target.
Nascii 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 and al [8]
CI.abs_distance = 100N ^N |dist_S_presc.dose~~G_target -
dist_S_target~~G_target|dist_S_target~~G_targetascii
CDI : (1) Conformity Distance Index defined by Wu and al
[9]
CDI = 2 V_presc.dose + V_target - 2~V_target ~~ presc.dose
S_target + S_presc.dose = V_presc.dose + V_target - 2~~V_target ~~ V_presc.dose
S_target + S_presc.doseascii
where S_targetascii is the surface of the target volume and
S_presc.doseascii is the surface of the prescription dose volume.
CS3 : (1) Triple Point Conformity Scale defined by Ansari
and al [10]
CS3 = V_0.95~~presc.dose + V_presc.dose +
V_1.05~~presc.dose3~~V_targetascii
ULF : (1) Underdosed lesion factor defined by Lefkopoulos
and al [11]
ULF = V_target ~<~ presc.doseV_target=
V_target ~~ V_presc.doseV_targetascii
OHTF :(1) Overdosed healthy tissues factor defined by Lefkopoulos
and al [11]
OHTF = V_healthy ~~ presc.doseV_target =
V_healthy ~~ V_presc.doseV_target ascii
gCI : (1) Geometric Conformity Index defined by
Lefkopoulos and al [11]
gCI = ULF + OHTFascii
COIN : Conformity Index defined by Baltas and al [12]
COIN =V_target ~~ presc.dose^2V_target~~V_presc.dose~~
^N_healthy ( 1 -V_healthy ~~ presc.doseV_healthy)ascii
gCOSI : generalized COSI, defined by Menhel and al [13].
gCOSI = 1- ^N_healthy healthy.weight~~
V_healthy ~~ healthy.tol.doseV_healthyV_target ~~ presc.doseV_targetascii
-~COSIascii : 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 and al
[13]
COSI = 1- V_healthy ~~ healthy.tol.doseV_healthyV_target ~~ presc.doseV_targetascii
-~homogeneityascii : dataframe containing
HI.RTOG.max_ref : (1) Homogeneity Index from RTOG defined by
E.Shaw [1]
HI.RTOG.max_-ref = D_~maxpresc.doseascii
where D_maxascii is the maximum dose in the target volume.
HI.RTOG.5_95 : (1) Homogeneity Index from RTOG [1]
HI.RTOG.5_-95 = D.5pcD.95pcascii
where D.5pcascii and D.95pcascii 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 = D_~maxD_~minascii
where D_maxascii and D_minascii 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 D.2pc - D.98pcpresc.doseascii
where D.2pcascii and D.98pcascii 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 D.2pc - D.98pcD.50pcascii
where D.2pcascii, D.98pcascii and D.50pcascii 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 D.5pc - D.95pcpresc.doseascii
where D.5pcascii and D.95pcascii 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 and al
[16]
HI.mayo2010 =D_~maxpresc.dose~~(1 +
_Dpresc.dose)ascii
where D_maxascii is the maximum dose in the target volume, and
_Dascii the standard deviation of the dose in the target volume.
HI.heufelder : (1) Homogeneity Index defined by Heufelder and al
[17]
HI.heufelder = e^-0.01~~ (1-_Dpresc.dose)^2~~
e^-0.01~~ (_Dpresc.dose)^2ascii
where _Dascii and _Dascii are
respectively the mean and the standard deviation of the dose in the target volume.
-~gradientascii : dataframe containing
GI.ratio.50: Gradient Index based on volumes ratio defined by
Paddick and Lippitz [18]
GI.ratio.50 = V_0.5~~presc.doseV_presc.doseascii
mGI: Modified Gradient Index defined by SABR UK Consortium 2019
[2]
mGI = V_0.5~~presc.doseV_target ~~ presc.dose =
V_0.5~~presc.doseV_target ~~ V_presc.doseascii
-~DVHascii : dataframe containing the Dose-Volume histograms of target and healthy ROIs, in percent.
"volume" class object, of "rtdose" modality.
"struct" class object.
"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.
Exact name of target RoI in struct object.
By default target.roi.name = NULL. See Details.
Name or part of name of target RoI in struct
object. By default target.roi.sname = NULL. See Details.
Value of the index of target RoI that belong to the
struct object. By default target.roi.idx = NULL. See Details.
Exact name of healthy RoI in struct object.
By default healthy.roi.name = NULL.
Name or part of name of healthy RoI in struct
object. By default healthy.roi.sname = NULL.
Value of the index of healthy RoI that belong to the
struct object. By default healthy.roi.idx = NULL.
Vector of prescription doses that serve as reference doses for the target RoI.
Vector of tolerance doses of each healthy RoI.
Vector of weights, indicating the importance of the healthy RoI.
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.
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.
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'.
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.'
Vector. Requested gradient indices from among 'GI.ratio.50', 'mGI'.
Vector of the percentage of the volume, for which the dose coverage is requested.
Vector of the volume in cm^3ascii, for which the dose coverage is requested.
Vector of the percentage of the reference dose, received by the volume to be calculated.
Vector of the minimum dose in Gy, received by the volume to be calculated.
boolean. If TRUE (default), the function returns the DVHs of
the target and healthy ROIs.
Boolean. if TRUE (default) a progress bar is displayed.
others parameters such as DVH.step.
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.
[1] SHAW19931231espadon
[2] SABRespadon
[3] LOMAX20031409espadon
[4] RIET1997731espadon
[5] Paddick2000ASSespadon
[6] Nakamura2002espadon
[7] DICE1945espadon
[8] Park2014espadon
[9] Wu2003espadon
[10] Ansari2018espadon
[11] LEFKOPOULOS2000espadon
[12] Baltas1998ACIespadon
[13] Menhel2006espadon
[14] ICRU621espadon
[15] ICRU83espadon
[16] MAYO20101457espadon
[17] HEUFELDER2003231espadon
[18] Paddick2006ASDespadon
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)
Run the code above in your browser using DataLab