A curated list of awesome libraries, tools, and resources for Medical Physicists who dabble in programming.
The list is in semi-random order, following alphabetical order within a category.
Libraries are meant as tools within the context of a larger project. They generally do one set of things well.
- ApertureComplexity -
It is a Python 3.x port of the Eclipse ESAPI plug-in script. As such, it aims to contain the complete functionality of the aperture complexity analysis.
- BeamSchemeV1 - (Pascal) BeamScheme is an analysis tool for 2D datasets. It will assist you in extracting 1D profiles from 2D datasets and can calculate over 90 different parameters. The parameter modules can be used separately.
- CIL -
Computational Imaging Library (CIL) is a Python library for tomographic imaging with particular emphasis on reconstruction of challenging datasets.
- ClinicalTemplateReader -
A public API to interpret Eclipse plan templates, objective templates, and clinical protocols and utilize the interpretation in the generation of automated plans.
- conehead - (Undocumented) A collapsed-cone convolution radiotherapy dose calculation algorithm.
- cornerstone -
Cornerstone.js delivers a complete web based medical imaging platform for displaying medical images in modern web browsers.
- deid -
Best effort anonymization for medical images in Python.
- dicomParser -
dicomParser is a lightweight library for parsing DICOM P10 byte streams, as well as raw (not encapsulated in part 10) byte streams.
- DLTK -
DLTK is a neural networks toolkit written in python, on top of TensorFlow for medical imaging.
- ESAPIX -
An open source extension library for the Varian Eclipse Scripting API that contains extra methods, and bootstrapping frameworks.
- Evil-DICOM -
A simple to use C# library for reading and manipulating DICOM files.
- FlashGamma -
A python package for speedy analyses of 2D radiotherapy dose distributions.
- FO-DICOM -
Fellow Oak DICOM, a DICOM toolkit in C# for all .NET Standard 2.0 compatible frameworks.
- med-imagetools -
Med-Imagetools, a python package offers the perfect tool to transform messy medical dataset folders to deep learning ready format in few lines of code.
- mri_distortion_toolkit -
Library enabling measurement, characterization, correction, and reporting of geometric distortion in Magnetic Resonance Imaging
- mudicom -
A light-weight python package that validates, reads, and extracts images from a DICOM file.
- opengate -
GATE is an advanced opensource software developed by the international OpenGATE collaboration and dedicated to numerical simulations in medical imaging and radiotherapy. GATE is based on the Geant4 toolkit.
- openTPS -
OpenTPS is an open-source treatment planning system (TPS) for research in radiation therapy and proton therapy. It was developed in Python with a special focus on simplifying contribution to the core functions to let the user develop their own features.
- ParticlePhaseSpace -
Import, analysis, and export of particle phase space data supporting a variety of formats, with extension mechanisms for new data formats.
- PlatiPy -
PlatiPy is a library of amazing tools for image processing and analysis - designed specifically for medical imaging!
- PortPy -
PortPy is an initiative aimed at creating an open-source Python library for cancer radiotherapy treatment planning optimization.
- PyDicer - A tool to ease the process of converting Radiotherapy DICOM data objects into a format typically used for research purposes.
- pydicom -
A pure Python package for working with DICOM files. It lets you read, modify and write DICOM data in an easy "pythonic" way.
- PyESAPI -
A passion project to help accelerate breakthroughs in medical physics research by bringing the power of Python into the Varian API ecosystem.
- pylinac -
Pylinac contains high-level modules for automatically analyzing images and data generated by linear accelerators, CT simulators, and other radiation oncology equipment. Most scripts can be utilized with less than 10 lines of code.
- pymcc -
Module that reads mephisto mcc files from watertank scans or array files.
- 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.
- pynetdicom -
A Python implementation of the DICOM networking protocol, originally based on (legacy) pynetdicom.
- pyorthanc -
Python library that wraps the Orthanc REST API and facilitates the manipulation of data with several cool utilities.
- pyradiomics -
PyRadiomics is an open-source python package for the extraction of Radiomics features from medical imaging.
- RTToolbox -
RTToolbox is a software library to support quantitative analysis of treatment outcome for radiotherapy.
- TopasOpt -
provides a framework for performing optimisation on monte carlo radiation transport simulations using TOPAS.
- TrajectoryLog.NET -
Interprets trajectorylog binary files into .NET class specifications.
End-user focused applications; may contain a GUI or browser interface.
- BeamSchemeV1 - (Pascal) BeamScheme is an analysis tool for 2D datasets. It will assist you in extracting 1D profiles from 2D datasets and can various parameters.
- Bistromath - Analyse 1D profiles from beam scanners.
- CERR - A Computational Environment for Radiological Research
- Conquest - A full featured DICOM server
- ctqa - This utility aims to perform automated QA testing on CT machines for technologists.
- ctqa-cp - (Appears deprecated) Analysis tool for CT images of the CatPhan phantom.
- DicomCleaner - A free open source tool with a user interface for importing, "cleaning" and saving sets of DICOM instances (files)
- DICOMClient - Application for anonymizing, viewing, editing, and uploading to a PACS system.
- Dicompyler - (Deprecated) dicompyler is an extensible open source radiation therapy research platform based on the DICOM standard. It also functions as a cross-platform DICOM RT viewer.
- dicomutils - (Appears deprecated) A set of utilities for working with DICOM files.
- DVH-Analytics - (Deprecated) A software application for building a local database of radiation oncology treatment planning data.
- EasyPACS - (Appears Deprecated) EasyPACS is the simplest PACS server for your dicom files.
- Fabolus-v16 - Modifies STL files representing bolus for radiation therapy. Prepares them for 3D printing.
- LinaQA - LinaQA is a GUI frontend for pylinac and pydicom. It is intended to be a general purpose medical physics quality assurance tool for radiotherapy, nuclear medicine and diagnostic radiology.
- MAAS-PlanScoreCard - Medical Affairs Applied Solutions ESAPI tool to create dosimetric ScoreCards and score plans.
- matRad - matRad is an open source treatment planning system for radiation therapy written in Matlab.
- MUSIMAN - MUltiple SImulations MANagement. The Monte Carlo code for radiation transport PENELOPE 2014.
- OMG Dosimetry - With OMG Dosimetry, you can easily perform film calibration, film-to-dose conversion, and dose analysis.
- openTPS - OpenTPS is an open-source treatment planning system (TPS) for research in radiation therapy and proton therapy. It was developed in Python with a special focus on simplifying contribution to the core functions to let the user develop their own features.
- Orthanc - Orthanc is a lightweight DICOM server for medical imaging.
- PDFtoAria - An executable script that uses Oncology Services and Eclipse Scripting APIs to upload a PDF file into Aria.
- PlanCheck - A version 15/16 read-only plugin script that checks: Plan DVH metrics including planSums and planSetups, with PDF reports and customizable templates.
- PortPy - PortPy represents a collective effort to establish an open-source Python library dedicated to advancing the development and clinical implementation of cancer radiotherapy treatment planning algorithms.
- PyBeam-QA - A graphical user interface program for performing quality assurance tests in radiotherapy.
- pyCERR - pyCERR provides convenient data structure for imaging metadata and their associations.
- pyQAserver - Pyqaserver connects Pylinac and Orthanc with a simplistic web interface.
- QALMA - A Matlab based toolkit with GUI for quantitative analysis of Quality Assurance tests for Medical Linear Accelerators in Radiation Therapy.
- QATrack - QATrack is a fully configurable, free, and open source (MIT License) web application for managing QA data for radiation therapy and medical imaging equipment.
- Sentinel - Automated log-file analysis for Varian linacs (TrueBeam, Halcyon, Edge).
- SIRF - SIRF is a software toolkit for tomographic image reconstruction developed by the Synergistic Image Reconstruction Framework (SIRF) consortium.
- STIR - STIR is Open Source software for use in tomographic imaging. Its aim is to provide a Multi-Platform Object-Oriented framework for all data manipulations in tomographic imaging.
- TotalSegmentator - Tool for segmentation of 104 classes in CT images.
- VarianESAPI-FieldEditor - A Varian ESAPI script for viewing and editing field parameters, mostly MLC and Jaw positions and meterset weights.
- VarianESAPI-EQD2Converter - A Varian ESAPI script that can be used to convert nominal dose distributions to EQD2 or BED.
- VarianESAPI-HalcyonGantryAngle - Varian ESAPI script and standalone app to determine Halcyon cardinal gantry angle error by manually analyzing a 2D image of the CIRS Iso Phantom.
Repos, books, or links to a teaching resource
- Innolitics - Super useful DICOM tag browser; also contains a file parser.
- RadMachine API Examples - Examples on how to use and call the RadMachine API.
- Varian Code Samples - Here you will find code samples for ESAPI and other Varian APIs and web services.
- Mayo RadOnc NLP Database - This is the world's first dedicated NLP dataset for radiation oncology, and it covers various NLP tasks to help advance research in this field.
Pull Requests are welcome! The item should be
specifically applicable to medical physics. E.g. numpy
doesn't count.
For libraries and applications, the project should be meant to be used by others;
a set of scripts that might be interesting does not count.
The item must have documentation of some sort on how to use it.