| 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 \mjeqncm^3ascii, 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)
\mjeqn-~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 (\mjeqncm^3ascii)
of structure volume.
All numbers are displayed with a resolution depending on the DVH quantization step. The default resolution is 1e-3.
\mjeqn-~volumeascii : dataframe containing, for all target and healthy structures, and isodoses:
the requested volume.indices : V_tot (\mjeqncm^3ascii)
(except for isodose) the total volume of the regions of interest, area
(\mjeqncm^2ascii) (except for isodose) their surface areas,
V.prescdose (\mjeqncm^3ascii) the volumes receiving at least
presc.dose Gy,
the requested V.xGy (\mjeqncm^3ascii):
volumes receiving at least x Gy.
the requested V.xpc (\mjeqncm^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]
\mjdeqnPITV = \fracV_presc.doseV_targetascii
PDS : (1) Prescription Dose Spillage
defined by SABR UK Consortium 2019 [2]
\mjdeqnPDS = \fracV_presc.doseV_target ~\ge~ presc.dose =
\fracV_presc.doseV_target ~\cap~ V_presc.doseascii
CI.lomax2003 : (1) Conformity Index defined by Lomax and al
[3]
\mjdeqnCI_lomax2003 = \fracV_target ~\ge~ presc.doseV_presc.dose =
\fracV_target ~\cap~ 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]
\mjdeqnCN = CI_paddick2000 =\fracV_target ~\ge~ presc.dose^2V_target~\cdot~V_presc.dose =
\frac(V_target ~\cap~ V_presc.dose)^2V_target~\cdot~V_presc.doseascii
NCI : (1) New conformity index, inverse of CN, defined by
Nakamura and al [6]
\mjdeqnNCI =\frac1CNascii
DSC : (1) Dice Similarity Coefficient [7]
\mjdeqnDSC = 2 ~\cdot~\fracV_target ~\ge~ presc.doseV_target + V_presc.dose =
2 ~\cdot~\fracV_target ~\cap~ V_presc.doseV_target + V_presc.doseascii
CI.distance : (1) Conformity Index based on distance defined by
Park and al [8]
\mjdeqnCI.distance = \frac100N \sum^N \fracdist_S_presc.dose~\to~G_target -
dist_S_target~\to~G_targetdist_S_target~\to~G_targetascii
where \mjeqndist_S_presc.dose~\to~G_targetascii is the distance between
the surface of the prescription dose volume and the centroid of the target,
and \mjeqndist_S_target~\to~G_targetascii the surface of the target
volume and the centroid of the target.
\mjeqnNascii 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]
\mjdeqnCI.abs_distance = \frac100N \sum^N \frac|dist_S_presc.dose~\to~G_target -
dist_S_target~\to~G_target|dist_S_target~\to~G_targetascii
CDI : (1) Conformity Distance Index defined by Wu and al
[9]
\mjdeqnCDI = 2 \fracV_presc.dose + V_target - 2~V_target ~\ge~ presc.dose
S_target + S_presc.dose = \fracV_presc.dose + V_target - 2~\cdot~V_target ~\cap~ V_presc.dose
S_target + S_presc.doseascii
where \mjeqnS_targetascii is the surface of the target volume and
\mjeqnS_presc.doseascii is the surface of the prescription dose volume.
CS3 : (1) Triple Point Conformity Scale defined by Ansari
and al [10]
\mjdeqnCS3 = \fracV_0.95~\cdot~presc.dose + V_presc.dose +
V_1.05~\cdot~presc.dose3~\cdot~V_targetascii
ULF : (1) Underdosed lesion factor defined by Lefkopoulos
and al [11]
\mjdeqnULF = \fracV_target ~<~ presc.doseV_target=
\fracV_target ~\cap~ \overlineV_presc.doseV_targetascii
OHTF :(1) Overdosed healthy tissues factor defined by Lefkopoulos
and al [11]
\mjdeqnOHTF = \frac\sum V_healthy ~\ge~ presc.doseV_target =
\frac\sum V_healthy ~\cap~ V_presc.doseV_target ascii
gCI : (1) Geometric Conformity Index defined by
Lefkopoulos and al [11]
\mjdeqngCI = ULF + OHTFascii
COIN : Conformity Index defined by Baltas and al [12]
\mjdeqnCOIN =\fracV_target ~\ge~ presc.dose^2V_target~\cdot~V_presc.dose~\cdot~
\prod^N_healthy \left( 1 -\fracV_healthy ~\ge~ presc.doseV_healthy\right)ascii
gCOSI : generalized COSI, defined by Menhel and al [13].
\mjdeqngCOSI = 1- \sum^N_healthy healthy.weight~\cdot~
\frac\fracV_healthy ~\ge~ healthy.tol.doseV_healthy\fracV_target ~\ge~ 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]
\mjdeqnCOSI = 1-
\frac\fracV_healthy ~\ge~ healthy.tol.doseV_healthy\fracV_target ~\ge~ presc.doseV_targetascii
-~homogeneityascii : dataframe containing
HI.RTOG.max_ref : (1) Homogeneity Index from RTOG defined by
E.Shaw [1]
\mjdeqnHI.RTOG.max_-ref = \fracD_~maxpresc.doseascii
where \mjeqnD_maxascii is the maximum dose in the target volume.
HI.RTOG.5_95 : (1) Homogeneity Index from RTOG [1]
\mjdeqnHI.RTOG.5_-95 = \fracD.5pcD.95pcascii
where \mjeqnD.5pcascii and \mjeqnD.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]
\mjdeqnHI.ICRU.max_-min = \fracD_~maxD_~minascii
where \mjeqnD_maxascii and \mjeqnD_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]
\mjdeqnHI.ICRU.2.98_-ref = 100 \fracD.2pc - D.98pcpresc.doseascii
where \mjeqnD.2pcascii and \mjeqnD.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]
\mjdeqnHI.ICRU.2.98_-50 = 100 \fracD.2pc - D.98pcD.50pcascii
where \mjeqnD.2pcascii, \mjeqnD.98pcascii and \mjeqnD.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]
\mjdeqnHI.ICRU.5.95_-ref = 100 \fracD.5pc - D.95pcpresc.doseascii
where \mjeqnD.5pcascii and \mjeqnD.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]
\mjdeqnHI.mayo2010 =\sqrt\fracD_~maxpresc.dose~\cdot~(1 +
\frac\sigma_Dpresc.dose)ascii
where \mjeqnD_maxascii is the maximum dose in the target volume, and
\mjeqn\sigma_Dascii the standard deviation of the dose in the target volume.
HI.heufelder : (1) Homogeneity Index defined by Heufelder and al
[17]
\mjdeqnHI.heufelder = e^-0.01~\cdot~ (1-\frac\mu_Dpresc.dose)^2~\cdot~
e^-0.01~\cdot~ (\frac\sigma_Dpresc.dose)^2ascii
where \mjeqn\mu_Dascii and \mjeqn\sigma_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]
\mjdeqnGI.ratio.50 = \frac V_0.5~\cdot~presc.doseV_presc.doseascii
mGI: Modified Gradient Index defined by SABR UK Consortium 2019
[2]
\mjdeqnmGI = \fracV_0.5~\cdot~presc.doseV_target ~\ge~ presc.dose =
\fracV_0.5~\cdot~presc.doseV_target ~\cap~ V_presc.doseascii
-~DVHascii : 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.