![Dosepy-Logo](https://dosepy.readthedocs.io/en/latest/_static/Logo_Dosepy.png)
![PyPI - Version](https://img.shields.io/pypi/v/Dosepy)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/Dosepy)
![PyPI - Downloads](https://img.shields.io/pypi/dm/Dosepy)
![GitHub commit activity](https://img.shields.io/github/commit-activity/m/LuisOlivaresJ/Dosepy)
# Welcome to Dosepy
Main [documentation](https://dosepy.readthedocs.io/en/latest/intro.html)
Dosepy is an open source application to perform radiochromic film dosimetry.
Dosepy is intended to be an accessible tool for medical physicist in radiation oncology to perform patient-specific dose verification based on film measurements.
The software works with scanned films (in TIFF format) and a DICOM file (typically exported from a treatment planning system, TPS).
A 2D gamma analysis can be performed in order to evaluate the similarity between the measured (scanned film) and the planed (DICOM file) dose distributions.
## Installation
Dosepy is distributed as a Python library under the [Python Package Index](https://pypi.org/) (PyPI).
Open a console (or 'terminal', or 'command prompt') and use the pip command:
```bash
pip install Dosepy
```
See the Python for Beginners [getting started tutorial](https://opentechschool.github.io/python-beginners/en/getting_started.html#what-is-python-exactly) for an introduction to using your operating system’s console and interacting with Python.
## Features
## Film dosimetry
Dosepy has a graphical user interface (GUI) to perform film dosimetry. Once a TIFF file is loaded, scanned films are automatically detected. Multiple scans of the same film can be loaded and averaged automatically for noise reduction.
## Gamma index
Dose distributions comparison can be performed using the 2-dimensional gamma index test according to Low's definition [Daniel_Low_gamma_1998](https://doi.org/10.1118/1.598248), as well as some AAPM TG-218 [Miften_TG218_2018](https://doi.org/10.1002/mp.12810) recommendations:
* The acceptance criteria for dose difference can be selected in absolute mode (in Gy) or relative mode (in %).
* In relative mode, the percentage could be interpreted with respect to the maximum dose (global normalization), or with respect to the local dose (local normalization); according to user selection.
* Dose threshold can be adjusted by the user.
* The reference distribution can be selected by the user.
* It is possible to define a search radius as an optimization process for calculation.
* By default, percentile 99 from dose distribution is used as maximum dose. This is used to avoid the possible inclusion of artifacts or user markers.
* Interpolation is not yet supported.
## Used technologies
* [Matplotlib](https://matplotlib.org/) for data visualization.
* [Numpy](https://numpy.org/) for data array manipulation.
* [PySide6](https://doc.qt.io/qtforpython-6/) for graphical user interface (GUI).
* [Pydicom](https://pydicom.github.io/) to read files in DICOM format.
* [Imageio](imageio) to read files in TIFF format.
* [Scikit-image](https://scikit-image.org/) and [scipy](https://scipy.org/) for image processing.
## Warning!
To use a software as a [medical device](https://www.imdrf.org/documents/software-medical-device-samd-key-definitions), it is required to demonstrate its safety and efficacy through a [risk categorization structure](https://www.imdrf.org/documents/software-medical-device-possible-framework-risk-categorization-and-corresponding-considerations), a [quality management system](https://www.imdrf.org/documents/software-medical-device-samd-application-quality-management-system) and a [clinical evaluation](https://www.imdrf.org/documents/software-medical-device-samd-clinical-evaluation); as described in the International Forum of Medical Device Regulators working group guidelines (IMDRF).
Dosepy is currently **under development** to meet quality standards. To achieve this in Mexico the regulatory mechanism is through NOM-241-SSA1-2021, in addition to the IMDRF guidelines.
## Contributing
Dosepy uses GitHub as a plataform to store and develop the software.
* To report software bugs create a issue [here](https://github.com/LuisOlivaresJ/Dosepy/issues)
* To commit changes, create an issue, [fork](https://docs.github.com/en/get-started/exploring-projects-on-github/contributing-to-a-project) the respository, make your changes and make a new pull request.
## Discussion
Have questions? Ask them on the Dosepy [discussion forum](https://groups.google.com/g/dosepy).
Raw data
{
"_id": null,
"home_page": null,
"name": "Dosepy",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "Radiotherapy, Dose distribution, gamma index, python",
"author": null,
"author_email": "Luis Alfonso Olivares Jimenez <alfonso.cucei.udg@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/aa/12/1b420ed52694271985140e34d97e9843ab18937eaf70f418cddadb843f73/dosepy-0.7.0.tar.gz",
"platform": null,
"description": "![Dosepy-Logo](https://dosepy.readthedocs.io/en/latest/_static/Logo_Dosepy.png)\n\n![PyPI - Version](https://img.shields.io/pypi/v/Dosepy)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/Dosepy)\n![PyPI - Downloads](https://img.shields.io/pypi/dm/Dosepy)\n![GitHub commit activity](https://img.shields.io/github/commit-activity/m/LuisOlivaresJ/Dosepy)\n\n# Welcome to Dosepy\n\nMain [documentation](https://dosepy.readthedocs.io/en/latest/intro.html)\n\nDosepy is an open source application to perform radiochromic film dosimetry.\n\nDosepy is intended to be an accessible tool for medical physicist in radiation oncology to perform patient-specific dose verification based on film measurements.\n\nThe software works with scanned films (in TIFF format) and a DICOM file (typically exported from a treatment planning system, TPS).\nA 2D gamma analysis can be performed in order to evaluate the similarity between the measured (scanned film) and the planed (DICOM file) dose distributions.\n\n## Installation\n\nDosepy is distributed as a Python library under the [Python Package Index](https://pypi.org/) (PyPI).\nOpen a console (or 'terminal', or 'command prompt') and use the pip command:\n\n```bash\npip install Dosepy\n```\n\nSee the Python for Beginners [getting started tutorial](https://opentechschool.github.io/python-beginners/en/getting_started.html#what-is-python-exactly) for an introduction to using your operating system\u2019s console and interacting with Python.\n\n## Features\n\n## Film dosimetry\n\nDosepy has a graphical user interface (GUI) to perform film dosimetry. Once a TIFF file is loaded, scanned films are automatically detected. Multiple scans of the same film can be loaded and averaged automatically for noise reduction.\n\n## Gamma index\n\n Dose distributions comparison can be performed using the 2-dimensional gamma index test according to Low's definition [Daniel_Low_gamma_1998](https://doi.org/10.1118/1.598248), as well as some AAPM TG-218 [Miften_TG218_2018](https://doi.org/10.1002/mp.12810) recommendations:\n\n* The acceptance criteria for dose difference can be selected in absolute mode (in Gy) or relative mode (in %).\n * In relative mode, the percentage could be interpreted with respect to the maximum dose (global normalization), or with respect to the local dose (local normalization); according to user selection.\n* Dose threshold can be adjusted by the user.\n* The reference distribution can be selected by the user.\n* It is possible to define a search radius as an optimization process for calculation.\n* By default, percentile 99 from dose distribution is used as maximum dose. This is used to avoid the possible inclusion of artifacts or user markers.\n* Interpolation is not yet supported.\n\n## Used technologies\n\n* [Matplotlib](https://matplotlib.org/) for data visualization.\n* [Numpy](https://numpy.org/) for data array manipulation.\n* [PySide6](https://doc.qt.io/qtforpython-6/) for graphical user interface (GUI).\n* [Pydicom](https://pydicom.github.io/) to read files in DICOM format.\n* [Imageio](imageio) to read files in TIFF format.\n* [Scikit-image](https://scikit-image.org/) and [scipy](https://scipy.org/) for image processing.\n\n## Warning!\nTo use a software as a [medical device](https://www.imdrf.org/documents/software-medical-device-samd-key-definitions), it is required to demonstrate its safety and efficacy through a [risk categorization structure](https://www.imdrf.org/documents/software-medical-device-possible-framework-risk-categorization-and-corresponding-considerations), a [quality management system](https://www.imdrf.org/documents/software-medical-device-samd-application-quality-management-system) and a [clinical evaluation](https://www.imdrf.org/documents/software-medical-device-samd-clinical-evaluation); as described in the International Forum of Medical Device Regulators working group guidelines (IMDRF).\n\nDosepy is currently **under development** to meet quality standards. To achieve this in Mexico the regulatory mechanism is through NOM-241-SSA1-2021, in addition to the IMDRF guidelines.\n\n## Contributing\n\nDosepy uses GitHub as a plataform to store and develop the software.\n* To report software bugs create a issue [here](https://github.com/LuisOlivaresJ/Dosepy/issues)\n* To commit changes, create an issue, [fork](https://docs.github.com/en/get-started/exploring-projects-on-github/contributing-to-a-project) the respository, make your changes and make a new pull request.\n\n## Discussion\nHave questions? Ask them on the Dosepy [discussion forum](https://groups.google.com/g/dosepy).\n",
"bugtrack_url": null,
"license": null,
"summary": "Film dosimetry and gamma analysis for dose distributions in radiotherapy",
"version": "0.7.0",
"project_urls": {
"Bug-Tracker": "https://github.com/LuisOlivaresJ/Dosepy",
"homepage": "https://dosepy.readthedocs.io/en/latest/intro.html",
"repository": "https://pypi.org/project/Dosepy/"
},
"split_keywords": [
"radiotherapy",
" dose distribution",
" gamma index",
" python"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "8c6d7a85ff8fe7c453658f5cee8a3301aba9dfd32e3141db08f2655572c29d29",
"md5": "167e2cfae6e72f65ab6f1c6dd7a397e2",
"sha256": "67d089ce72e19ac02a24194bcb7ac21c69e148eff0c0069d4a9cac448537c86b"
},
"downloads": -1,
"filename": "Dosepy-0.7.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "167e2cfae6e72f65ab6f1c6dd7a397e2",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 795578,
"upload_time": "2024-10-01T02:14:57",
"upload_time_iso_8601": "2024-10-01T02:14:57.494948Z",
"url": "https://files.pythonhosted.org/packages/8c/6d/7a85ff8fe7c453658f5cee8a3301aba9dfd32e3141db08f2655572c29d29/Dosepy-0.7.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "aa121b420ed52694271985140e34d97e9843ab18937eaf70f418cddadb843f73",
"md5": "6f937ba568574cc27c2d724af4f056be",
"sha256": "ede39efe5f18668ca1834bcb1a7a4fb757181eeff3c3edb593c9c160364a605e"
},
"downloads": -1,
"filename": "dosepy-0.7.0.tar.gz",
"has_sig": false,
"md5_digest": "6f937ba568574cc27c2d724af4f056be",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 780865,
"upload_time": "2024-10-01T02:14:59",
"upload_time_iso_8601": "2024-10-01T02:14:59.755252Z",
"url": "https://files.pythonhosted.org/packages/aa/12/1b420ed52694271985140e34d97e9843ab18937eaf70f418cddadb843f73/dosepy-0.7.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-01 02:14:59",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "LuisOlivaresJ",
"github_project": "Dosepy",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "imageio",
"specs": [
[
"==",
"2.35.1"
]
]
},
{
"name": "matplotlib",
"specs": [
[
"==",
"3.9.2"
]
]
},
{
"name": "numpy",
"specs": [
[
"==",
"2.1.1"
]
]
},
{
"name": "pydantic",
"specs": [
[
"==",
"2.9.2"
]
]
},
{
"name": "pydicom",
"specs": [
[
"==",
"3.0.1"
]
]
},
{
"name": "PyQt6",
"specs": [
[
"==",
"6.7.1"
]
]
},
{
"name": "PyQt6_sip",
"specs": [
[
"==",
"13.8.0"
]
]
},
{
"name": "PySide6",
"specs": [
[
"==",
"6.7.2"
]
]
},
{
"name": "relative_dose_1d",
"specs": [
[
"==",
"0.1.7"
]
]
},
{
"name": "scipy",
"specs": [
[
"==",
"1.14.1"
]
]
},
{
"name": "skimage",
"specs": [
[
"==",
"0.0"
]
]
},
{
"name": "tifffile",
"specs": [
[
"==",
"2024.9.20"
]
]
},
{
"name": "tomlkit",
"specs": [
[
"==",
"0.13.2"
]
]
},
{
"name": "tqdm",
"specs": [
[
"==",
"4.66.5"
]
]
}
],
"lcname": "dosepy"
}