pyradise


Namepyradise JSON
Version 0.2.3 PyPI version JSON
download
home_pagehttps://pyradise.readthedocs.io/
SummaryPyRaDiSe: A Python package for DICOM-RT-based auto-segmentation pipeline construction and DICOM-RT data conversion
upload_time2023-05-30 13:51:39
maintainer
docs_urlNone
authorElias Ruefenacht
requires_python>=3.8
licenseApache-2.0
keywords medical image analysis deep learning auto-segmentation radiotherapy dicom conversion dicom data handling dicom-rt structure sets
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            PyRaDiSe
========

[![Documentation Status](https://readthedocs.org/projects/pyradise/badge/?version=latest)](https://pyradise.readthedocs.io/en/latest/?badge=latest)

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.

<img alt="PyRaDiSe_Meme" src="https://github.com/ubern-mia/pyradise/raw/main/docs/_static/meme.jpg" width="300">

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](https://pyradise.readthedocs.io/en/latest/reference/pyradise.fileio.html). 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](https://pyradise.readthedocs.io/en/latest/reference/pyradise.fileio.html) 
package offers the necessary methods to address these issues with flexible approaches and prototypes. Furthermore, 
the [`fileio` package](https://pyradise.readthedocs.io/en/latest/reference/pyradise.fileio.html) provides 
routines to select specific entities from the available data before loading by generating filterable pre-loading 
information (so-called [`SeriesInfo`](https://pyradise.readthedocs.io/en/latest/reference/pyradise.fileio.series_info.html#pyradise.fileio.series_info.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](https://pyradise.readthedocs.io/en/latest/reference/pyradise.data.html). 
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](https://pyradise.readthedocs.io/en/latest/reference/pyradise.process.html). 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](https://pyradise.readthedocs.io/en/latest/reference/pyradise.fileio.html) 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.

<img src="https://github.com/ubern-mia/pyradise/raw/main/docs/_static/architecture_overview_v2.png" alt="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:

 - [Installation](https://pyradise.readthedocs.io/en/latest/installation.html) for installation instructions - or simply run `pip install pyradise`
 - [Examples](https://pyradise.readthedocs.io/en/latest/examples.html) give you an overview of PyRaDiSe's intended use. Jupyter notebooks are available in the directory [./examples](https://github.com/ubern-mia/pyradise/tree/main/examples/).
 - [Change history](https://pyradise.readthedocs.io/en/latest/change_history.html)
 - [Acknowledgments](https://pyradise.readthedocs.io/en/latest/acknowledgment.html)


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}
    }

            

Raw data

            {
    "_id": null,
    "home_page": "https://pyradise.readthedocs.io/",
    "name": "pyradise",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "",
    "keywords": "medical image analysis,deep learning,auto-segmentation,radiotherapy,DICOM conversion,DICOM data handling,DICOM-RT Structure Sets",
    "author": "Elias Ruefenacht",
    "author_email": "Elias Ruefenacht <elias.ruefenacht@unibe.ch>",
    "download_url": "https://files.pythonhosted.org/packages/02/7b/c75591e2bc85e9e67cdcfa9d5346c26bb41c99155d6a119830d31a742e8e/pyradise-0.2.3.tar.gz",
    "platform": null,
    "description": "PyRaDiSe\n========\n\n[![Documentation Status](https://readthedocs.org/projects/pyradise/badge/?version=latest)](https://pyradise.readthedocs.io/en/latest/?badge=latest)\n\nPyRaDiSe is an open-source Python (Py) package for developing deployable, radiotherapy-oriented (Ra), DICOM-based (Di) \nauto-segmentation (Se) solutions. PyRaDiSe is DL framework-independent but can easily integrate most DL frameworks, \nsuch as PyTorch or TensorFlow. The package addresses the following challenges for building radiotherapy-oriented \nauto-segmentation solutions: handling DICOM data, managing and converting DICOM-RTSS data (incl. a 2D-based and \na 3D-based conversion algorithm), invertible pre-processing, and post-processing. In addition to building \nauto-segmentation solutions, PyRaDiSe allows for converting and curating DICOM image series and DICOM-RTSS data to \nsimplify segmentation training dataset construction. Therefore, PyRaDiSe is highly flexible, allows for fast \nprototyping, and facilitates a fast transition of data science research results into clinical radiotherapy research.\n\n<img alt=\"PyRaDiSe_Meme\" src=\"https://github.com/ubern-mia/pyradise/raw/main/docs/_static/meme.jpg\" width=\"300\">\n\nMain Features\n-------------\nThe main features of PyRaDiSe are data handling, conversion from and to DICOM-RTSS, and data processing, including deep \nlearning model inference. The intended use of PyRaDiSe in the radiotherapy environment is depicted below. The \nDICOM and other discrete medical image file formats, such as NIfTI, are imported into the provided data model using \nthe [`fileio` package](https://pyradise.readthedocs.io/en/latest/reference/pyradise.fileio.html). In contrast to the \nstandard way of loading DICOM data, this package provides comprehensive and flexible import routines that consider \ndata relation details and automate import steps, such as registering DICOM images if DICOM registration files are \navailable. However, in some cases, the DICOM standard does not provide sufficient information for automation, \nrequiring minimal human interaction for resolution. In addition, discrete medical images also suffer from the lack of \nidentification data needed for automation. However, the [`fileio` package](https://pyradise.readthedocs.io/en/latest/reference/pyradise.fileio.html) \npackage offers the necessary methods to address these issues with flexible approaches and prototypes. Furthermore, \nthe [`fileio` package](https://pyradise.readthedocs.io/en/latest/reference/pyradise.fileio.html) provides \nroutines to select specific entities from the available data before loading by generating filterable pre-loading \ninformation (so-called [`SeriesInfo`](https://pyradise.readthedocs.io/en/latest/reference/pyradise.fileio.series_info.html#pyradise.fileio.series_info.SeriesInfo))\nso that the computation time and memory usage for loading is minimal. Finally, after the data is loaded, it is \nrepresented using the data model implemented in the [`data` package](https://pyradise.readthedocs.io/en/latest/reference/pyradise.data.html). \nAll downstream tasks are performed using the simple and extensible radiotherapy-oriented data model from this step on.\n\nAfter loading, the data is either converted and written to a file or processed using routines from the \n[`process` package](https://pyradise.readthedocs.io/en/latest/reference/pyradise.process.html). This package includes \nfunctionality and prototypes for pre-processing, deep learning model inference, and post-processing with a similar mode \nof operations as well-known medical image libraries, such as SimpleITK or ITK. However, in contrast to other libraries, \nthe process package offers a mechanism for guaranteeing reproducibility and limited invertibility.\n\nAfter processing or loading, the altered data can be written to disk using a versatile writer from the \n[`fileio` package](https://pyradise.readthedocs.io/en/latest/reference/pyradise.fileio.html) to save the data as either \na discrete image file or as DICOM-RTSS. In addition, specific writers provide the additional functionality to copy \nthe input data from the source to the target directory. This feature is handy if the developed auto-segmentation \nsolution will be deployed to the clinical environment or the cloud, where the original input data should remain \nunmodified.\n\n<img src=\"https://github.com/ubern-mia/pyradise/raw/main/docs/_static/architecture_overview_v2.png\" alt=\"Schematic illustration of PyRaDiSe in the radiotherapy environment\">\n\n\nGetting Started\n---------------\n\nIf you are new to PyRaDiSe, here are a few guides to get you up to speed right away:\n\n - [Installation](https://pyradise.readthedocs.io/en/latest/installation.html) for installation instructions - or simply run `pip install pyradise`\n - [Examples](https://pyradise.readthedocs.io/en/latest/examples.html) give you an overview of PyRaDiSe's intended use. Jupyter notebooks are available in the directory [./examples](https://github.com/ubern-mia/pyradise/tree/main/examples/).\n - [Change history](https://pyradise.readthedocs.io/en/latest/change_history.html)\n - [Acknowledgments](https://pyradise.readthedocs.io/en/latest/acknowledgment.html)\n\n\nCitation\n--------\n\nIf you use PyRaDiSe for your research, please acknowledge it accordingly by citing our paper:\n\nBibTeX entry:\n\n    @article{Ruefenacht2023,\n    author = {R\u00fcfenacht, Elias and Kamath, Amith and Suter, Yannick and Poel, Robert and Ermis, Ekin and Scheib, Stefan and Reyes, Mauricio},\n    title = {{PyRaDiSe: A Python package for DICOM-RT-based auto-segmentation pipeline construction and DICOM-RT data conversion}},\n    journal = {Computer Methods and Programs in Biomedicine},\n    doi = {10.1016/j.cmpb.2023.107374},\n    issn = {0169-2607},\n    year = {2023}\n    }\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "PyRaDiSe: A Python package for DICOM-RT-based auto-segmentation pipeline construction and DICOM-RT data conversion",
    "version": "0.2.3",
    "project_urls": {
        "Bug Tracker": "https://github.com/ubern-mia/pyradise/issues",
        "GitHub": "https://github.com/ubern-mia/pyradise/",
        "Homepage": "https://pyradise.readthedocs.io/"
    },
    "split_keywords": [
        "medical image analysis",
        "deep learning",
        "auto-segmentation",
        "radiotherapy",
        "dicom conversion",
        "dicom data handling",
        "dicom-rt structure sets"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9277f8ce260190495d59db0b75fa3464eb4cb78fd783719f9e4d8e2f0d166863",
                "md5": "2ed6c65ee786461cc6dab1c75de87219",
                "sha256": "7b04aa52ae756c5d67397a358ea1e192619227c58543d569bc49f08a57c41ca3"
            },
            "downloads": -1,
            "filename": "pyradise-0.2.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "2ed6c65ee786461cc6dab1c75de87219",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 123829,
            "upload_time": "2023-05-30T13:51:37",
            "upload_time_iso_8601": "2023-05-30T13:51:37.808280Z",
            "url": "https://files.pythonhosted.org/packages/92/77/f8ce260190495d59db0b75fa3464eb4cb78fd783719f9e4d8e2f0d166863/pyradise-0.2.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "027bc75591e2bc85e9e67cdcfa9d5346c26bb41c99155d6a119830d31a742e8e",
                "md5": "f5182185b30aa5f69716c7a717f87758",
                "sha256": "31271cf476452394fbca2660ce1d69bc2767ba26b94674356a47de3d244dcbee"
            },
            "downloads": -1,
            "filename": "pyradise-0.2.3.tar.gz",
            "has_sig": false,
            "md5_digest": "f5182185b30aa5f69716c7a717f87758",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 109601,
            "upload_time": "2023-05-30T13:51:39",
            "upload_time_iso_8601": "2023-05-30T13:51:39.891710Z",
            "url": "https://files.pythonhosted.org/packages/02/7b/c75591e2bc85e9e67cdcfa9d5346c26bb41c99155d6a119830d31a742e8e/pyradise-0.2.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-05-30 13:51:39",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ubern-mia",
    "github_project": "pyradise",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "tox": true,
    "lcname": "pyradise"
}
        
Elapsed time: 0.09935s