NEWS | R Documentation |
Added 95-percentile Hausdorff distance method to compareStructures()
Adds CITATION
file
Exposes file encoding
parameter for read.DVH()
function
Thank you to Tomas Kalibera for his help in supporting file encoding.
Added Aria v15 formatted DVH input functionality to read.DVH()
Added automatic filetype matching to read.DVH()
in cases where type
not specified
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
Eliminates use of deprecated rgl
package and plot()
method for structure3D and structure.list objects
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.
[currently in development] Adds a modified Earth-Mover's Distance to compareStructures()
Adds modality
argument to read.DVH()
to fix problem calculating DVH from DICOM-RT data via read.DVH()
function.
Fixes bug in read.DICOM.RT()
that was occurring for rare files with improperly formatted reference frame UIDs.
Updated RadOnc-package.Rd
file to conform with latest CRAN requirements
Updated package vignette to correct a typo re: instructions for use
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.
Added support for plan sum import from Aria 13 using read.DVH(..., type="aria13")
Thanks to Maura Kirk for her assistance with Aria 13 plan sum import.
Added a new function, get.HU()
, which is able to extract corresponding Hounsfield Unit (HU) values from RTdata
for one or more structures.
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).
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).
Extended read.DICOM.RT()
function to import MRI data (previous code was unable to import MR data)
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.
Extended read.DVH()
function to import RayStation files.
Extended read.DVH()
function to import TomoTherapy files.
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.
Documentation for plot.DVH()
updated to include highlight
parameter, which specifies shading of p-value data.
Documentation for plot.DVH()
updated to include paired
parameter, which specifies behavior of t.test()
and wilcox.test()
.
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.
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 a DVH.list
object based upon patient identifiers, structure name, and/or dosimetric constraints.
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 to oro.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.
Function getStructureList()
has been removed and replaced instead with a wider array of functionality using subset()
.
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 affect read.DVH()
, mean()
, min()
, max()
, range()
, and other internal DVH specification and conversion functions.
Isodose line specification support added to read.DVH(..., type="cadplan")
.
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.
New parameter panel.lower
to specify plotting behavior when using plot(..., plot.type="wilcox")
.
Enabled xlim
and ylim
specification when plotting DVH
object(s).
Enabled import of a single collapsed DVH.list
from multiple input files (previously only able to import a nested list of individual DVH.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 given DVH
object.
range()
calculation for an empty structure list failed, and calculation for a structure defined by a single point inappropriately returned value of NA
.
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 ignored dose.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")
or plot(..., plot.type="wilcox")
improperly displayed relative volume information along an absolute volume y-axis when parameter volume="absolute"
was specified.
DVH plotting using plot(..., plot.type="wilcox")
displayed inaccurate confidence intervals.
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.
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 using plot(..., plot.type="wilcox")
.
Thanks to Abodunde Adegunloye for identifying the error in structure range()
calculation as well as the error in calculate.DVH()
and read.DICOM.RT()
.
DVH plotting using plot(..., plot.type="ttest")
has been expanded to incorporate width specification as implemented for plot(..., plot.type="grouped")
.
New function getStructureList()
to extract desired structures from a list of DVH lists (generated by read.DVH()
using multiple input files)
Error in validity check for classes DVH
and zDVH
when rx.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 (attribute dose.units
improperly specified).
Error in sub-selection of DVH.list
and structure.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.
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.
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 the DVH
class and is largely interchangeable with other DVH
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.
Fatal error in convert.DVH(..., dose="relative")
when prescription dose not specified.
Added attribute dose.units
to dose grid in class RTdata
to enable specification and processing of dose units.
Added stomach
to package data contents in order to provide an example of a zDVH
object.
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 extends read.DVH(..., method="dicom")
to enable DVH calculation from DICOM-RT data.
Fixed v.1.0.5 Windows build error due to incorrect file path specification in vignette.
Prior internal function extract.DVH()
has been removed.
Added janedoe.RTdata
to package data contents in order to provide an example of a RTdata
object.
New method for as()
function to convert a structure3D
object to a DVH
object.
Package vignette has been updated to incorporate some of the changes in recent releases.
Functionality expanded for []
accessor method to DVH.list
and structure.list
objects to enable pattern matching (e.g. janedoe["KIDNEY$"]
and handling of redundant structure names in DVH.list
(see updated package Vignette for further details).
New method for as()
function to convert a list of DVH
and/or DVH.list
objects to a single combined DVH.list
object.
New method for as()
function to convert a list of structure3D
and/or structure.list
objects to a single combined structure.list
object.
Expanded read.DICOM.RT()
functionality to include calculation of DVHs from dose grid information. DVH calculations can be enabled by specifying logical parameter DVH=TRUE
(default).
LQE()
now supports fractionation specification in either dose per fraction or total number of fractions (parameter N
was introduced for this purpose).
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()
, and sd()
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 in read.DVH()
where specified type was not provided and list of input files was longer than length 6.
Removed unused package dependency on Rcpp (future releases may reincorporate this dependency in order to support C++ implementations of various algorithms).
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 for LQE()
function.
DVH
class expanded to include patient identifying information (new parameters patient
and ID
)
read.DVH(..., type="dicom")
now links to read.DICOM.RT(..., DVH=TRUE)
and returns a DVH list extracted from the relevant DICOM-RT directory.
Thanks to Daniel Wollschlaeger for identifying the bug in read.DVH()
type specification and for his suggestion to expand the DVH
class specification to include patient identification.
Expanded read.DICOM.RT()
functionality to include import of DVHs from dose file where relevant.
Expanded plot()
functionality to include display of a structure.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.
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).
Method compareStructures(..., method="grid")
has been renamed to compareStructures(..., method="axial")
. Code still supports call using "grid" method, however it now generates a warning to use the preferred "axial" method.
Added plotting support for structure3D
objects without pre-specified triangulation; previously a call to plot()
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 class DVH
to enable application of prescription dose to variable isodose lines (relevant in select cases).
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.
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 from DVH
and DVH.list
objects.
New function LQE()
to perform linear quadratic extrapolation for iso-effective dose conversion among DVH
and DVH.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)"]
).
Updated plot(..., plot.type="grouped")
to ensure that multiplier
contains a positive value (previously inappropriate negative value would result in a plotting error).
Fixed issue with mean()
, median()
, mad()
, sd()
, and var()
calculations on DVH lists where differing dose units were not handled appropriately.
Added method to mean()
for proper handling of DVH
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.
The center
parameter in the DVH-specific plot(..., plot.type="grouped")
function is no longer supported. Instead, the parameter is now implicitly determined from the width
parameter (e.g. center="mean"
when width="sd"
).
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 include estimate
parameter in returned values.
Confidence interval display updated in DVH list methods plot(..., plot.type="ttest")
and plot(..., plot.type="wilcox")
.
Added slot dose.fx
to class DVH
to enable specification of dose fractionation (relevant in select cases).
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.
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.
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()
and method="grid"
where improper colors would be displayed for partially overlapping structures.
Fixed issue where axial comparisons were plotted in improper order when using compareStructures()
and method="grid"
.
Added implementation of dim
function to assess size of structure3D
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
and janedoe
datasets were updated to conform to newest DVH
specifications.
Thanks to Daniel Wollschlaeger for his critical feedback and help in updating this version of the package.
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 of structure3D
objects.
New functions to support interaction with structure.list
class.
New function compareStructures()
to assess similarities and differences among two or morestructure3D
objects within a structure.list
.
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 of DVH
objects.
Fixed names<-
function for DVH.list
class which had erroneously prevented lookup of newly assigned names
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")
.
This is the first release of the RadOnc package.
This is the first release of the RadOnc package.
This is the first release of the RadOnc package.