




# Welcome to Dosepy
Main [documentation](https://dosepy.readthedocs.io/en/latest/intro.html)
Dosepy is an open-source Python library to perform radiochromic film dosimetry.
Dosepy is intended to be an accessible tool for medical physicists in radiation oncology to perform film dosimetry effortlessly.
## 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
* Automatic film detection.
* Uncertainty analysis.
* Quality control test for error detection.
* Average of multiple scans for noise reduction.
* Handle lateral scanner response artifact.
## 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](https://imageio.github.io/) 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 platform to store and develop the software.
* To report software bugs, create an 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 repository, 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.11",
"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/82/b8/e4743ef16c5b4e41d386b1ff2c6cdfa3bce2193c4b77307b3eb78dbbaff9/dosepy-0.11.0.tar.gz",
"platform": null,
"description": "\n\n\n\n\n\n\n# Welcome to Dosepy\n\nMain [documentation](https://dosepy.readthedocs.io/en/latest/intro.html)\n\nDosepy is an open-source Python library to perform radiochromic film dosimetry.\n\nDosepy is intended to be an accessible tool for medical physicists in radiation oncology to perform film dosimetry effortlessly.\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* Automatic film detection.\n* Uncertainty analysis.\n* Quality control test for error detection.\n* Average of multiple scans for noise reduction.\n* Handle lateral scanner response artifact.\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](https://imageio.github.io/) 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 platform to store and develop the software.\n* To report software bugs, create an 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 repository, 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.11.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": null,
"digests": {
"blake2b_256": "b9737b815791dc0b028f04e9c5dc624031860aa80434ea77b5563795218de7d7",
"md5": "a7d55e817a9a3c78e406fffae696b196",
"sha256": "08fbae9f6d3ce7825e4af2427d4279d4e9f125e4124c0543a718c3e7bfd2ae83"
},
"downloads": -1,
"filename": "dosepy-0.11.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a7d55e817a9a3c78e406fffae696b196",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 2199601,
"upload_time": "2025-07-21T16:35:20",
"upload_time_iso_8601": "2025-07-21T16:35:20.933307Z",
"url": "https://files.pythonhosted.org/packages/b9/73/7b815791dc0b028f04e9c5dc624031860aa80434ea77b5563795218de7d7/dosepy-0.11.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "82b8e4743ef16c5b4e41d386b1ff2c6cdfa3bce2193c4b77307b3eb78dbbaff9",
"md5": "35f7a4b95e49ad1f074707ee7ec712d4",
"sha256": "d5e93c867a4eddaa125f8577242889a577c11d831d1c53f2394159aca201c87d"
},
"downloads": -1,
"filename": "dosepy-0.11.0.tar.gz",
"has_sig": false,
"md5_digest": "35f7a4b95e49ad1f074707ee7ec712d4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 2182390,
"upload_time": "2025-07-21T16:35:26",
"upload_time_iso_8601": "2025-07-21T16:35:26.444947Z",
"url": "https://files.pythonhosted.org/packages/82/b8/e4743ef16c5b4e41d386b1ff2c6cdfa3bce2193c4b77307b3eb78dbbaff9/dosepy-0.11.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-21 16:35:26",
"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": "scipy",
"specs": [
[
"==",
"1.14.1"
]
]
},
{
"name": "scikit-image",
"specs": [
[
">=",
"0.25"
]
]
},
{
"name": "tifffile",
"specs": [
[
"==",
"2024.9.20"
]
]
},
{
"name": "tomlkit",
"specs": [
[
"==",
"0.13.2"
]
]
},
{
"name": "tqdm",
"specs": [
[
"==",
"4.66.5"
]
]
},
{
"name": "pyyaml",
"specs": [
[
"==",
"6.0.2"
]
]
},
{
"name": "plotly",
"specs": [
[
">=",
"6.0.0"
]
]
},
{
"name": "ipykernel",
"specs": [
[
">=",
"6.29.5"
]
]
},
{
"name": "nbformat",
"specs": [
[
">=",
"5.10.4"
]
]
}
],
"lcname": "dosepy"
}