NEWS | R Documentation |
RadOnc News
CHANGES IN VERSION 1.1.8
NEW FEATURES
Added 95-percentile Hausdorff distance method to
compareStructures()
OTHER UPDATES
Adds
CITATION
file
CHANGES IN VERSION 1.1.7
OTHER UPDATES
Exposes file
encoding
parameter forread.DVH()
function
ACKNOWLEDGEMENTS
Thank you to Tomas Kalibera for his help in supporting file encoding.
CHANGES IN VERSION 1.1.6
NEW FEATURES
Added Aria v15 formatted DVH input functionality to
read.DVH()
Added automatic filetype matching to
read.DVH()
in cases wheretype
not specified
BUG FIXES
Fixes error handling structure import in absence of corresponding DICOM image.
Fixes error important RayStation prescription dose in
read.DVH()
Fixes error handling empty structure during DICOM import
OTHER UPDATES
Eliminates use of deprecated
rgl
package andplot()
method for structure3D and structure.list objects
ACKNOWLEDGEMENTS
Thank you to Jahan Mohiuddin for his help in supporting Aria v15 DVH export format.
Thank you to Gregory Smyth for identifying and reporting bug in structure set import.
Thank you to Thomas Dilling for his help in supporting RayStation DVH import.
CHANGES IN VERSION 1.1.5
NEW FEATURES
[currently in development] Adds a modified Earth-Mover's Distance to
compareStructures()
BUG FIXES
Adds
modality
argument toread.DVH()
to fix problem calculating DVH from DICOM-RT data viaread.DVH()
function.Fixes bug in
read.DICOM.RT()
that was occurring for rare files with improperly formatted reference frame UIDs.
OTHER UPDATES
Updated
RadOnc-package.Rd
file to conform with latest CRAN requirementsUpdated package vignette to correct a typo re: instructions for use
ACKNOWLEDGEMENTS
Credit to Abhinav Nellore and Zachary Fried for their work on
compareStructures()
.Thank you to Enrico Clementel and Fadoua Raouassi for helping to fix a bug in reading DVHs from DICOM-RT data.
Thank you to Alessandro Savini for helping to uncover the issue in DICOM reference frame UID handling.
CHANGES IN VERSION 1.1.4
NEW FEATURES
Added support for plan sum import from Aria 13 using
read.DVH(..., type="aria13")
ACKNOWLEDGEMENTS
Thanks to Maura Kirk for her assistance with Aria 13 plan sum import.
CHANGES IN VERSION 1.1.3
NEW FEATURES
Added a new function,
get.HU()
, which is able to extract corresponding Hounsfield Unit (HU) values fromRTdata
for one or more structures.
ACKNOWLEDGEMENTS
Thanks to Hans-Erik Kallman for his suggestion to include the capability to extract Hounsfield Unit (HU) details for a structure3D object (
get.HU()
function).
CHANGES IN VERSION 1.1.2
NEW FEATURES
Added new plotting method,
plot(..., plot.type="correlation")
, to enable numerical correlation of dose from a collection of DVHs with an independent variable (for instance toxicity or other clinical outcome).
OTHER UPDATES
Extended
read.DICOM.RT()
function to import MRI data (previous code was unable to import MR data)
ACKNOWLEDGEMENTS
Thanks to Sonam Sharma and Peter Ahn for their assistance implementing DVH-toxicity correlation plotting.
Thanks to Matt Moores for his assistance with implementing MR DICOM-RT import.
CHANGES IN VERSION 1.1.1
NEW FEATURES
Extended
read.DVH()
function to import RayStation files.Extended
read.DVH()
function to import TomoTherapy files.
BUG FIXES
Dose-volume histogram interpolation accuracy was decreased when number of datapoints available was very small and the dose gradient was exceedingly steep.
Improper scaling of dose units when plotting certain groupwise mean tendencies in some DVH plots.
OTHER UPDATES
Documentation for
plot.DVH()
updated to includehighlight
parameter, which specifies shading of p-value data.Documentation for
plot.DVH()
updated to includepaired
parameter, which specifies behavior oft.test()
andwilcox.test()
.
ACKNOWLEDGEMENTS
Thanks to Maura Kirk for identifying the DVH dose scaling bug.
Thanks to Daniel Wollschlaeger for his contributions regarding improvement of DVH interpolation accuracy.
Thanks to Lukasz Matulewicz for his contributions regarding inclusion of TomoTherapy-formatted data.
Thanks to Michael Young for his contributions regarding inclusion of RayStation-formatted data.
CHANGES IN VERSION 1.1.0
NEW FEATURES
Extended
read.DVH()
function to import Elekta Monaco files.Added ability to display gridlines when plotting DVH graphs.
Added ability to extract median dose as a dosimetric parameter.
Added ability to check for arbitrary dose constraints (e.g.
V20Gy < 15(%)
).New function
subset()
to extract a desired subset of aDVH.list
object based upon patient identifiers, structure name, and/or dosimetric constraints.
BUG FIXES
-
read.DVH()
maintained open file connections, problematic for simultaneous import of hundreds of DVH files. -
oro.dicom
package failed to recognize DICOM files formatted without 128 byte headers (patch applied tooro.dicom
package version 0.5.0). This affected import of DICOM-RT data from TomoTherapy systems and other instances where file format departed from strict DICOM standards. -
read.DVH()
failed to calculate structure volumes appropriately when structure volumes were not explicitly specified.
DEPRECATED AND DEFUNCT
Function
getStructureList()
has been removed and replaced instead with a wider array of functionality usingsubset()
.
OTHER UPDATES
-
read.DICOM.RT()
behavior updated, such that CT data is now scaled (using DICOM parameters"RescaleSlope"
and"RescaleIntercept"
) to represent Hounsfield Unit data. Internal DVH conversion now generates warning when trying to convert from 'relative' to 'absolute' volume units when structure volume is zero.
DVH class behavior changed to enable relative/absolute dose conversion for stored dose parameters (e.g.
dose.max
); changes affectread.DVH()
,mean()
,min()
,max()
,range()
, and other internal DVH specification and conversion functions.Isodose line specification support added to
read.DVH(..., type="cadplan")
.
ACKNOWLEDGEMENTS
Thanks to Daniel Wollschlaeger for identifying and fixing the bug in
read.DVH()
.Thanks to Francis Gibbons for his contributions regarding inclusion of Elekta Monaco-formatted DVH data.
Thanks to Usman Lula for helping to identify an issue with DICOM-RT import from certain TomoTherapy workstations and to Brandon Whitcher for patching the
oro.dicom
package accordingly.
CHANGES IN VERSION 1.0.9
NEW FEATURES
New parameter
panel.lower
to specify plotting behavior when usingplot(..., plot.type="wilcox")
.Enabled
xlim
andylim
specification when plottingDVH
object(s).Enabled import of a single collapsed
DVH.list
from multiple input files (previously only able to import a nested list of individualDVH.list
objects corresponding to each input file).Enabled dose range specification on parameter export (e.g. can now calculate
"V10-20Gy"
or"V<1500cGy"
) for a givenDVH
object.
BUG FIXES
-
range()
calculation for an empty structure list failed, and calculation for a structure defined by a single point inappropriately returned value ofNA
. -
calculate.DVH()
failed when structure contained fewer than three points or was confined to a single plane along the x or y axes. -
read.DICOM.RT()
failed when calculating DVHs from dose grid -
calculate.DVH()
subroutines improperly ignoreddose.unit
parameter input DVHs containing plan sum data without prescription dose/isodose information were considered as invalid DVH objects.
DVH plotting using
plot(..., plot.type="ttest")
orplot(..., plot.type="wilcox")
improperly displayed relative volume information along an absolute volume y-axis when parametervolume="absolute"
was specified.DVH plotting using
plot(..., plot.type="wilcox")
displayed inaccurate confidence intervals.
OTHER UPDATES
Updated behavior of
wilcox.test(..., paired=TRUE)
to return parameter"estimate"
as the true median of pairwise differences in lieu of the statistical (pseudo)median calculated by wilcoxon signed-rank test.Enhanced legend when using
plot(..., plot.type="grouped")
(now supports filling/shading)Added
demo()
functionality as a package tutorial.
ACKNOWLEDGEMENTS
Thanks to Maura Kirk for identifying the plan sum DVH class validation bug.
Thanks to Eric Ojerholm for identifying the DVH plotting bugs, for suggesting user-modifiable
xlim
/ylim
specification as well as dose ranges on volumetric parameter export, and for suggesting DVH plotting enhancements when usingplot(..., plot.type="wilcox")
.Thanks to Abodunde Adegunloye for identifying the error in structure
range()
calculation as well as the error incalculate.DVH()
andread.DICOM.RT()
.
CHANGES IN VERSION 1.0.8
NEW FEATURES
DVH plotting using
plot(..., plot.type="ttest")
has been expanded to incorporate width specification as implemented forplot(..., plot.type="grouped")
.New function
getStructureList()
to extract desired structures from a list of DVH lists (generated byread.DVH()
using multiple input files)
BUG FIXES
Error in validity check for classes
DVH
andzDVH
whenrx.isodose
not specified.Error in
read.DICOM.RT()
function preventing proper import of RT plan data when the plan contained more than one dose reference point.Error in
read.DICOM.RT()
function preventing proper import of RT plan data when the plan contained no dose grid.Error in initialization of new
RTdata
objects containing dose grid information (attributedose.units
improperly specified).Error in sub-selection of
DVH.list
andstructure.list
objects where individual names were coercible to numerical values (e.g. "45").Improper z coordinate specification when using
read.DICOM.RT()
on an inversely ordered list of DICOM image slices.DVH plotting using
plot(..., plot.type="ttest")
generated improper shading ranges in some instances. This graphical depiction has been adjusted to generate actual confidence intervals with relative contributions scaled by a group's internal variance.DVH parameter selection (e.g.
DVH["V20Gy"]
) failed when called upon an empty DVH object.
ACKNOWLEDGEMENTS
Thanks to Primoz Peterlin for identifying the bug in
DVH
class validation.Thanks to Nicola Dinapoli for identifying the bug in
read.DICOM.RT()
import.
CHANGES IN VERSION 1.0.7
NEW FEATURES
New class
zDVH
(along with relevant methods) to store one or more axially-segmented and calculated dose-volume histograms. The class otherwise contains all elements of theDVH
class and is largely interchangeable with otherDVH
objects.New plot functionality for axial dose-volume histogram displayed from one or more
zDVH
objects.New method for
compareStructures()
("DSC") which calculates Dice similarity coefficients between pairs of structures.
BUG FIXES
Fatal error in
convert.DVH(..., dose="relative")
when prescription dose not specified.
OTHER UPDATES
Added attribute
dose.units
to dose grid in classRTdata
to enable specification and processing of dose units.Added
stomach
to package data contents in order to provide an example of azDVH
object.
CHANGES IN VERSION 1.0.6
NEW FEATURES
Added
calculate.DVH()
function to perform DVH calculation given one or more input structure set(s) and dose grid data. This function now also implicitly extendsread.DVH(..., method="dicom")
to enable DVH calculation from DICOM-RT data.
BUG FIXES
Fixed v.1.0.5 Windows build error due to incorrect file path specification in vignette.
DEPRECATED AND DEFUNCT
Prior internal function
extract.DVH()
has been removed.
OTHER UPDATES
Added
janedoe.RTdata
to package data contents in order to provide an example of aRTdata
object.New method for
as()
function to convert astructure3D
object to aDVH
object.Package vignette has been updated to incorporate some of the changes in recent releases.
CHANGES IN VERSION 1.0.5
NEW FEATURES
Functionality expanded for
[]
accessor method toDVH.list
andstructure.list
objects to enable pattern matching (e.g.janedoe["KIDNEY$"]
and handling of redundant structure names inDVH.list
(see updated package Vignette for further details).New method for
as()
function to convert a list ofDVH
and/orDVH.list
objects to a single combinedDVH.list
object.New method for
as()
function to convert a list ofstructure3D
and/orstructure.list
objects to a single combinedstructure.list
object.Expanded
read.DICOM.RT()
functionality to include calculation of DVHs from dose grid information. DVH calculations can be enabled by specifying logical parameterDVH=TRUE
(default).-
LQE()
now supports fractionation specification in either dose per fraction or total number of fractions (parameterN
was introduced for this purpose).
BUG FIXES
Fixed structure import using
read.DICOM.RT()
for structure sets not mapped to a DVH present within the dose file (previously returned empty structures instead of populating the structures with their respective vertices).Fixed fatal error in DVH extraction from dose grid data (previously occurred when one or more points were duplicated within a structure).
Input of empty directly previously caused fatal error in
read.DICOM.RT()
-
t.test()
,wilcox.test()
and methods employing this functionality (e.g.plot(..., plot.type="ttest")
) previously failed if any elements in DVH list were empty. -
sum()
,mean()
,median()
,mad()
,var()
, andsd()
previously failed if any elements in DVH list were empty. Fixed integral dose calculation, which previously returned values that were inadvertently scaled by the dose bin width.
Fixed validity checking of
DVH
objects containing a single dose-volume value.x-axis improperly specified dose units as "cGy" when plotting DVHs in units of "Gy".
Isoeffective dose calculation using
LQE()
was previously inaccurate due to incorrect implementation of the Withers isoeffective dose formula – this has now been corrected.Previously improper handling of
type
specifier inread.DVH()
where specified type was not provided and list of input files was longer than length 6.
DEPRECATED AND DEFUNCT
Removed unused package dependency on Rcpp (future releases may reincorporate this dependency in order to support C++ implementations of various algorithms).
OTHER UPDATES
Changed formatting of printed
DVH
objects (structure volume is now displayed to precision of one decimal point and min/max doses displayed to two decimals).-
dose.units
parameter introduced forLQE()
function. -
DVH
class expanded to include patient identifying information (new parameterspatient
andID
) -
read.DVH(..., type="dicom")
now links toread.DICOM.RT(..., DVH=TRUE)
and returns a DVH list extracted from the relevant DICOM-RT directory.
ACKNOWLEDGEMENTS
Thanks to Daniel Wollschlaeger for identifying the bug in
read.DVH()
type specification and for his suggestion to expand theDVH
class specification to include patient identification.
CHANGES IN VERSION 1.0.4
NEW FEATURES
Expanded
read.DICOM.RT()
functionality to include import of DVHs from dose file where relevant.Expanded
plot()
functionality to include display of astructure.list
object containing multiple structures.Function
compareStructures(..., method="axial")
can now process structures that contain one or more holes (e.g. a hollow sphere)New wrapper class
RTdata
to store a corresponding CT image, dose grid, and structure set.New functions to support interaction with
RTdata
class.
BUG FIXES
Updated DVH parameter extraction to return maximal dose in cases where extrapolated dose exceeds actual maximum dose.
DVH methods previously failed without graceful warning or exit in cases where prescription dose was not specified (e.g. plan sum DVH data from Eclipse).
DEPRECATED AND DEFUNCT
Method
compareStructures(..., method="grid")
has been renamed tocompareStructures(..., method="axial")
. Code still supports call using "grid" method, however it now generates a warning to use the preferred "axial" method.
OTHER UPDATES
Added plotting support for
structure3D
objects without pre-specified triangulation; previously a call toplot()
would generate an empty plotting window.Updated
gEUD()
calculation to improve performance for large values of tissue-specific parameter 'a'.Added slot
rx.isodose
to classDVH
to enable application of prescription dose to variable isodose lines (relevant in select cases).
ACKNOWLEDGEMENTS
Thanks to Daniel Wollschlaeger for identifying the bug in DVH dose extraction as well as for his suggestion regarding variable prescription isodose lines.
Thanks to Brandon Whitcher for his phenomenal and generous support regarding the
oro.dicom
pacakge.
CHANGES IN VERSION 1.0.3
NEW FEATURES
New methods for
sum()
implemented to handle DVH data (assumes *non-overlapping* structures); it can be used to calculate total dose from multiple independent structures (e.g. paired/bilateral lungs or kidneys).New function
gEUD()
to calculate generalized equivalent uniform dose values fromDVH
andDVH.list
objects.New function
LQE()
to perform linear quadratic extrapolation for iso-effective dose conversion amongDVH
andDVH.list
objects with different fractionation.Extended
read.DVH()
function to import CadPlan files (for achival/historical data).Extended
read.DVH()
function to import multiple files simultaneously, if desired.Expanded functionality of DVH parameter access; now a user may specify output type in parentheses (e.g.
DVH["V20Gy(cc)"]
).
BUG FIXES
Updated
plot(..., plot.type="grouped")
to ensure thatmultiplier
contains a positive value (previously inappropriate negative value would result in a plotting error).Fixed issue with
mean()
,median()
,mad()
,sd()
, andvar()
calculations on DVH lists where differing dose units were not handled appropriately.Added method to
mean()
for proper handling ofDVH
objects (code was previously omitted, leading to an error on call to the function).Updated NAMESPACE file to export method definitions for
dim()
.Fixed an internal function which was causing errors upon processing of
DVH.list
objects containing one or more empty DVHs.Fixed fatal error in
read.DVH()
caused by attempted read of an improperly-formatted file.Fixed error in
read.DICOM.RT()
affecting structure set import when DICOM header "FrameOfReferenceUID" not specified.
DEPRECATED AND DEFUNCT
The
center
parameter in the DVH-specificplot(..., plot.type="grouped")
function is no longer supported. Instead, the parameter is now implicitly determined from thewidth
parameter (e.g.center="mean"
whenwidth="sd"
).
OTHER UPDATES
Added version requirement for
oro.dicom
package (must be >= 0.4.1) in order to appropriately import high-resolution structure sets.DVH list method for
wilcox.test()
now updated to includeestimate
parameter in returned values.Confidence interval display updated in DVH list methods
plot(..., plot.type="ttest")
andplot(..., plot.type="wilcox")
.Added slot
dose.fx
to classDVH
to enable specification of dose fractionation (relevant in select cases).
ACKNOWLEDGEMENTS
Thanks to Daniel Wollschlaeger for his suggestion to include CadPlan support as well as his support in implementation.
Thanks to Brandon Whitcher for his phenomenal and generous support regarding the
oro.dicom
pacakge.
CHANGES IN VERSION 1.0.2
NEW FEATURES
Expanded class
DVH
,read.DVH()
, and other supporting functions to allow for dose specification (and analysis) in either units of cGy or Gy.Added ability to calculate integral dose for
DVH
objects, with usage and implementation described further in an updated package vignette.
BUG FIXES
Fixed issue where structure import from DICOM-RT files failed (due to variable ordering of "ReferencedROINumber" DICOM header).
Fixed issue where attempted structure import from an empty DICOM-RT file caused fatal error.
Fixed issue where attempted structure import from an empty structure set file caused fatal error.
Fixed issue where one or more empty structures in structure list input caused
compareStructures()
to fail.Fixed issue within
compareStructures()
where fault in internal color specification caused fatal error.Fixed issue when plotting using
compareStructures()
andmethod="grid"
where improper colors would be displayed for partially overlapping structures.Fixed issue where axial comparisons were plotted in improper order when using
compareStructures()
andmethod="grid"
.
OTHER UPDATES
Added implementation of
dim
function to assess size ofstructure3D
objects.Updated implementation of
read.DVH
function to allow for import of relative dose parameters (e.g. max dose as percent of prescription dose).-
new("DVH")
now creates a structure with volume equivalent to zero (instead of prior NULL value default). -
johndoe
andjanedoe
datasets were updated to conform to newestDVH
specifications.
ACKNOWLEDGEMENTS
Thanks to Daniel Wollschlaeger for his critical feedback and help in updating this version of the package.
CHANGES IN VERSION 1.0.1
NEW FEATURES
New function
read.DICOM.RT()
to import 3-dimensional structural information from one or more DICOM-RT files.New class
structure3D
to store 3-dimensional information encoding a structure.New functions to support interaction with
structure3D
class.New class
structure.list
to store a list ofstructure3D
objects.New functions to support interaction with
structure.list
class.New function
compareStructures()
to assess similarities and differences among two or morestructure3D
objects within astructure.list
.
BUG FIXES
For
plot(..., method="grouped", width="IQR", center="mean")
, shading offset was previously incorrect, resulting in improper plotting.For
plot(..., method="grouped", width="quantile", center="mean")
, shading offset was previously incorrect, resulting in improper plotting.Fixed error causing overwrite of slot
structure.volume
, preventing proper creation ofDVH
objects.Fixed
names<-
function forDVH.list
class which had erroneously prevented lookup of newly assigned names
OTHER UPDATES
RadOnc.RData file updated to include example 3-dimensional structural data (
cord
,mandible
,teeth
).Implemented coercion from class DVH to DVH.list,
as(..., Class="DVH.list")
.
CHANGES IN VERSION 1.0.0
NEW FEATURES
This is the first release of the RadOnc package.
DEPRECATED AND DEFUNCT
This is the first release of the RadOnc package.
BUG FIXES
This is the first release of the RadOnc package.