A community effort to develop an open standard library for Medical Physics in Python. We build high quality, transparent software together via peer review and open source distribution. Open code is better science.
PyMedPhys is an open-source Medical Physics python library built by an open community that values and prioritises code sharing, review, improvement, and learning from each other. It is inspired by the collaborative work of our physics peers in astronomy and the Astropy Project. PyMedPhys is available on PyPI and GitHub.
PyMedPhys first paper in the Journal of Open Source Software contains more background information, including a statement of need. You can access the paper here. When referencing PyMedPhys, please cite this paper as follows:
Biggs, S., Jennings, M., Swerdloff, S., Chlap, P., Lane, D., Rembish, J., McAloney, J., King, P., Ayala, R., Guan, F., Lambri, N., Crewson, C., Sobolewski, M. (2022). PyMedPhys: A community effort to develop an open, Python-based standard library for medical physics applications. Journal of Open Source Software, 7(78), 4555, https://doi.org/10.21105/joss.04555
PyMedPhys is currently within the beta
stage of its life-cycle. It will
stay in this stage until the version number leaves 0.x.x
and enters
1.x.x
. While PyMedPhys is in beta
stage, no API is guaranteed to be
stable from one release to the next. In fact, it is very likely that the
entire API will change multiple times before a 1.0.0
release. In practice,
this means that upgrading pymedphys
to a new version will possibly break
any code that was using the old version of pymedphys. We try to be abreast of
this by providing details of any breaking changes from one release to the next
within the Release Notes.
PyMedPhys has a Discourse community to both help you find your feet using PyMedPhys and to facilitate collaboration and general discussion. Please reach out over there and we'd love to get to know you!
PyMedPhys can be installed with:
pip install pymedphys[user]
Further user installation instructions can be found in the Quick Start Guide.
The PyMedPhys documentation contains two overarching guides:
- The Users Guide: where you can find instructions to get started with the library and the CLI, in-depth how-to guides (examples for users) on PyMedPhys' various tools, some background information on individual PyMedPhys projects as well as the Technical Reference.
- The Contributors Guide: for those who wish to make new contributions to the PyMedPhys library, CLI or app. Here you'll find detailed workstation setup guides to enable contributions, important repository information, and some tips & tricks to overcome common issues.
The PyMedPhys project is managed using Poetry.
After cloning the repository, install the PyMedPhys dependencies and set up pre-commit by running:
poetry install -E all
poetry run pre-commit install
Run automated tests with:
poetry run pymedphys dev tests
PyMedPhys is what it is today due to its maintainers and contributors, both past and present. Here is our team.
- Stuart Swerdloff
- ELEKTA Pty Ltd: New Zealand
- Matthew Jennings
- Royal Adelaide Hospital, Australia
- Phillip Chlap
- Radformation Inc., USA
- University of New South Wales, Australia
- Derek Lane
- ELEKTA AB, Houston TX
- Marcelo Jordao
- ELEKTA AB, Hong Kong SAR
- Marcus Fisk
- Cancer Care Riverina, Australia