Skip to main content

GUI to analyze the results of a Monte-Carlo radiation simulation

Project description

TopasGraphSim

A GUI to simplify and streamline the plotting and analysis of medical physics simulations

This GUI can visualize and analyze percentage depth dose (pdd) and dose profiles (dp) simulations from TOPAS. Depth dose measurements are assumed to be in the z-direction, dose profiles in the x- or y-directions. Data read-in is handled by topas2numpy.

Installation

Install using pip:

$ pip install topasgraphsim     

Then, start the GUI by running:

$ python -m topasgraphsim

Or, if your Python is added to $PATH, simply run:

$ topasgraphsim

Open compatible files from the command line:

$ topasgraphsim "path_to_your_file"

Note: Linux users need to have python3-tk installed. If it isnt installed yet, use:

$ sudo apt-get install python3-tk

Also, you may need python-dev. Install if for your python version using:

$ sudo apt-get install python<your main version>-dev

Since all my testing in done on Windows 11, I cannot guarantee this will work on any other plattform. I'm open to suggestions or PRs making the software work better cross-plattfrom!

Features

  • Reproducible graphing and analysis of 1D TOPAS simulation for medical physics
  • Simultaneous plotting and parameter calculation for up to 10 datasets
  • Calculation of the Gamma Index
  • Graph adjustment options
    • Normalization (On/Off)
    • Error bars (On/Off)
    • Difference plot between two datasets
    • Graph order and colors
    • Marker size and style
    • Line width
    • Zoom-in window
    • Half view of dose profiles
  • Drag and drop of files
  • Value indication on hover
  • Center axis deviation correction
  • Import of EGS and RadCalc simulation results
  • Import of custom measurements (as numpy .txt files)
  • Import of PTW tbaScan (MEPHYSTO mc2) measurements
  • Easy to use keyboard shortcuts (see manual below)
  • German and english language support
  • Dark mode

Screenshots

dpp

dp

Manual

Most customization options are available via the menubar, however the workflow can be sped up greatly by using the included keyboard and mouse shortcuts documented below.

Loading and saving data

Keyboard Shortcut Associated Function
Ctrl + O Open a TOPAS simulation file [*.csv *.bin]
Ctrl + P Open a PTW tbaScan file [*.mcc]
Ctrl + T Open a PDD measurement file [*.txt]
Ctrl + D Open a DP measurement file [*.txt]
Ctrl + S Save the current graph [*.png *.jpg]
Ctrl + Z Remove the last imported dataset
Escape Close the current project

Adjusting the Graph Style

Mouse/Keyboard Shortcut Associated Function
Ctrl + Increase/decrease the marker size
Ctrl + Increase/decrease the line width
Scrollwheel Increase/decrease the X-axis limits
Ctrl + Alt + + - Increase/decrease the error plot upper limits
Ctrl + Shift + + - Increase/decrease the error plot lower limits
Double Left Click on Graph Change zoom window location
Left Click on Top of Graph Add/change title
Left Click on Left Axis Rename left axis
Left Click on Bottom Axis Open axis range selector
Left Click on Bottom Axis Rename bottom axis

Adjusting the Graph Legend

Mouse/Keyboard Shortcut Associated Function
Hover over Graph Name + Change the graph order
Left Click on Graph Name Rename the selected graph
Right Click on Graph Name Change color of the selected graph

Parameters

Depending on the imported measurement, the following parameters can be calculated:

Measurement type Parameters
Depth dose Q-Factor zmax
Dose profile FWHM CAXdev FLATKrieger FLATstddev Penumbra (L&R) Integral (L&R)
  • Q-Factor : Radiation Quality Factor

  • zmax : Depth at Maximum

  • FWHM : Full-Width at Half-Maximum

  • CAXdev : Centre Axis Deviation

  • FLATKrieger : Flatness of Dose Plateau (Definition by Krieger)

  • FLATstddev : Flatness of Dose Plateau (Standard Deviation)

  • Penumbra (L&R) : Width of Left and Right Penumbra

  • Integral (L&R) : Integral below Left and Right Penumbra

Dependencies

Built using the beautiful Azure-ttk theme by @rdbende. Requires python3, numpy, scipy, matplotlib, Pillow, python-opencv, pynput, requests, topas2numpy and tkinter.

The drag-and-drop functionality is powered by TkinterDnD2 by Michael Lange and tkdnd by @petassis.

Contact me!

Thank you for using TopasGraphSim! Please let me know about any issues you encounter, or suggestions/wishes you might have!

Downloads

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

topasgraphsim-22.0.0.tar.gz (967.8 kB view hashes)

Uploaded Source

Built Distribution

topasgraphsim-22.0.0-py3-none-any.whl (1.0 MB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page