pyRadPlan
pyRadPlan is an open-source radiotherapy treatment planning toolkit designed for interoperability with matRad.
Development is lead by the Radiotherapy Optimization group at the German Cancer Research Center (DKFZ)
Concept and Goals
pyRadPlan uses a similar datastructure and workflow concept as in matRad, while trying to ensure that the corresponding datastructures can be easily imported and exported from/to matRad. This facilitates the application of either algortihms from matRad or native pyRadPlan at any staget of the treatment planning workflow.
To enforce valid datastructures, we perform validation and serialization with pydantic. Datastructures and algorithms rely mostly on SimpleITK, numpy, and scipy for internal data representation and processing.
If you are interested in helping with development, get in touch.
Note for Developers
pyRadPlan development uses unit-testing and code formatting via pre-commit hooks to ensure clean code.
If you are a developer or want to contribute, make sure to clone the latest state via git. Then, we strongly suggest to create a virtual python environment with a suitable version and do an editable installation of pyRadPlan in dev mode: pip install -e .[dev]
Note If you are using venv to create a virtual environment in the project's root folder, we suggest to name it
.venvas this folder will be automatically excluded by all formatters and linters
This will install an editable pyRadPlan module including pytest and pre-commit in addition to the standard modules.
- pytest is used to run unit tests before publishing the code. Run on the test folder via
pytest test, or choose any test file following the pytest syntax. We encourage writing at least fundamental unit tests for new code. Will also installcoverageand the pytest extension to monitor coverage. - pre-commit allows for automatic code formatting to ensure following of PEPs (mainly PEP8 and PEP257).
After successfully running pip install -e .[dev] check in the console that pre-commit --version provides a correct response.
Afterwards run pre-commit install. This reads the .pre-commit_config.yaml and adds a hook to your git repository, which whenever a commit is made the changed files are reformatted to ensure the PEP standards.
Matlab / Octave Engine
If you want to interface via matRad, you can use install the matlab engine by appending [matlab] to the pip install command. However, as there is some compatibility matrix for what matlabengine version is suitable for your Matlab installation, it might be better to not install the latest version but instead install the correct matlabengine manually before.
To use Octave via oct2py, analogously append [octave].
Metadata
Release files for pyRadPlan 0.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pyradplan-0.0.1.tar.gz | 51.8 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyRadPlan-0.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 103.6 MB
Release files / pyradplan-0.0.1.tar.gz
| Download URL | pyradplan-0.0.1.tar.gz |
|---|---|
| Size | 51.8 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ac99150d90540d5477a161812f9a0649c5498f70ed94f431ded8873a38b29431
|
|
BLAKE2b-256 checksum How to use checksums |
3786593de5e417c1d4b3641fe6891d2e9eff60f40444b19095d30b0b94ca0d0a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.11.7
|
Release files / pyRadPlan-0.0.1-py3-none-any.whl
| Download URL | pyRadPlan-0.0.1-py3-none-any.whl |
|---|---|
| Size | 51.9 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
969f9159b063f918a765fa4cb93ba60846f2125015ad370f5c5b98541528f1dd
|
|
BLAKE2b-256 checksum How to use checksums |
2f1daf86b5dcb595ee6813849a1d6059bed23749998ee4bd27326d2d687a3df3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.11.7
|