Skip to main content

PyRaDiSe

Documentation Status

PyRaDiSe is an open-source Python (Py) package for developing deployable, radiotherapy-oriented (Ra), DICOM-based (Di) auto-segmentation (Se) solutions. PyRaDiSe is DL framework-independent but can easily integrate most DL frameworks, such as PyTorch or TensorFlow. The package addresses the following challenges for building radiotherapy-oriented auto-segmentation solutions: handling DICOM data, managing and converting DICOM-RTSS data (incl. a 2D-based and a 3D-based conversion algorithm), invertible pre-processing, and post-processing. In addition to building auto-segmentation solutions, PyRaDiSe allows for converting and curating DICOM image series and DICOM-RTSS data to simplify segmentation training dataset construction. Therefore, PyRaDiSe is highly flexible, allows for fast prototyping, and facilitates a fast transition of data science research results into clinical radiotherapy research.

PyRaDiSe_Meme

Main Features

The main features of PyRaDiSe are data handling, conversion from and to DICOM-RTSS, and data processing, including deep learning model inference. The intended use of PyRaDiSe in the radiotherapy environment is depicted below. The DICOM and other discrete medical image file formats, such as NIfTI, are imported into the provided data model using the fileio package. In contrast to the standard way of loading DICOM data, this package provides comprehensive and flexible import routines that consider data relation details and automate import steps, such as registering DICOM images if DICOM registration files are available. However, in some cases, the DICOM standard does not provide sufficient information for automation, requiring minimal human interaction for resolution. In addition, discrete medical images also suffer from the lack of identification data needed for automation. However, the fileio package package offers the necessary methods to address these issues with flexible approaches and prototypes. Furthermore, the fileio package provides routines to select specific entities from the available data before loading by generating filterable pre-loading information (so-called SeriesInfo) so that the computation time and memory usage for loading is minimal. Finally, after the data is loaded, it is represented using the data model implemented in the data package. All downstream tasks are performed using the simple and extensible radiotherapy-oriented data model from this step on.

After loading, the data is either converted and written to a file or processed using routines from the process package. This package includes functionality and prototypes for pre-processing, deep learning model inference, and post-processing with a similar mode of operations as well-known medical image libraries, such as SimpleITK or ITK. However, in contrast to other libraries, the process package offers a mechanism for guaranteeing reproducibility and limited invertibility.

After processing or loading, the altered data can be written to disk using a versatile writer from the fileio package to save the data as either a discrete image file or as DICOM-RTSS. In addition, specific writers provide the additional functionality to copy the input data from the source to the target directory. This feature is handy if the developed auto-segmentation solution will be deployed to the clinical environment or the cloud, where the original input data should remain unmodified.

Schematic illustration of PyRaDiSe in the radiotherapy environment

Getting Started

If you are new to PyRaDiSe, here are a few guides to get you up to speed right away:

Citation

If you use PyRaDiSe for your research, please acknowledge it accordingly by citing our paper:

BibTeX entry:

@article{Ruefenacht2023,
author = {Rüfenacht, Elias and Kamath, Amith and Suter, Yannick and Poel, Robert and Ermis, Ekin and Scheib, Stefan and Reyes, Mauricio},
title = {{PyRaDiSe: A Python package for DICOM-RT-based auto-segmentation pipeline construction and DICOM-RT data conversion}},
journal = {Computer Methods and Programs in Biomedicine},
doi = {10.1016/j.cmpb.2023.107374},
issn = {0169-2607},
year = {2023}
}

Metadata

Release files for pyradise 0.2.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyradise 0.2.3
File Size Uploaded
pyradise-0.2.3.tar.gz 109.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyradise 0.2.3
File Interpreter ABI Platform
pyradise-0.2.3-py3-none-any.whl Python 3 none any Details

Total release size: 233.4 kB

Release files / pyradise-0.2.3.tar.gz

Download URL pyradise-0.2.3.tar.gz
Size 109.6 kB
Tags Source
SHA-256 checksum
How to use checksums
31271cf476452394fbca2660ce1d69bc2767ba26b94674356a47de3d244dcbee
BLAKE2b-256 checksum
How to use checksums
027bc75591e2bc85e9e67cdcfa9d5346c26bb41c99155d6a119830d31a742e8e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.16

Release files / pyradise-0.2.3-py3-none-any.whl

Download URL pyradise-0.2.3-py3-none-any.whl
Size 123.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7b04aa52ae756c5d67397a358ea1e192619227c58543d569bc49f08a57c41ca3
BLAKE2b-256 checksum
How to use checksums
9277f8ce260190495d59db0b75fa3464eb4cb78fd783719f9e4d8e2f0d166863
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.16

Release history Release notifications | RSS feed

This release

0.2.3 This release

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page