A community effort to develop an open standard library for Medical Physics in Python. Building quality transparent software together via peer review and open source distribution. Open code is better science.

build pypi python license

Docs under construction

This documentation is currently undergoing a major revamp. At this point in time many of the below links will take you to empty pages. If you are able to help, drop me a line at me@simonbiggs.net.

First steps

Are you new to PyMedPhys or new to Python programming? Then these resources are for you:

How the documentation is organised

Here is a high level overview of how the documentation is organised to help you to know where to look for things:

  • Tutorials take you by the hand through a series of steps to create a tool built with PyMedPhys for use within a Medical Physics clinic. Start here if you’re new to PyMedPhys or Python programming.
  • How-To guides are recipes. They guide you through the steps involved in addressing key problems and use-cases. They are more advanced than tutorials and assume some knowledge of how to build tools with PyMedPhys.
  • Reference Documents is the technical reference for the public APIs exposed by both the pymedphys library and the pymedphys command line tool.
  • Explanatory documents provide the higher level descriptions of the implementation of the tools and provides justifications for development decisions.

The above layout has been heavily inspired by both the Django documentation and Daniele Procida’s writeup.


A slide from Daniele Procida’s writeup describing the documentation layout.

Beyond the user documentation there are two other sections, the contributor documentation aimed at those who wish to become a PyMedPhys contributor, and the labs documentation which details code contributed by the community that aims to one day be refined to become part of the primary pymedphys library.

What is PyMedPhys?

A place to share, review, improve, and transparently learn off of each other’s code. It is an open-source library of tools that we all have access to. It is inspired by the collaborative work of our physics peers in astronomy and their Astropy Project. PyMedPhys is available on PyPI, GitHub and conda-forge.

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.

Our Team

PyMedPhys is what it is today due to its contributors. Core contributors and contributors who have been active in the last six months as well as their respective employers are presented below.