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.

build pypi python license

What is PyMedPhys?#

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

Beta level of development#

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.

Community#

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!

Documentation#

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:

  1. 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.

  2. 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.

Development#

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

Our Team#

PyMedPhys is what it is today due to its maintainers and contributors, both past and present. Here is our team.

Maintainers#

sjs rah

Active contributors#

uth ccr

Past contributors#