How it works#

Packages tomopyui relies on#

As mentioned on the home page, tomopyui is built on many open-source python packages including:

tomopy

astra-toolbox

  • Documentation

  • Tomographic reconstruction toolbox with many GPU-accelerated algorithms

ipywidgets

cupy

bqplot

bqplot-image-gl

tomocupy

  • Documentation TK

  • Utilizes GPU-acceleration to speed up automatic alignment

  • Built from tomopy, but sends data to the GPU to do some of the calculations.

  • Only a few functions available now, but could be expanded significantly

  • Included as a module in tomopyui (for now)

  • Helps run a lot of the backend of tomopyui

Structure#

The code is divided into the frontend (tomopyui.widgets) and the backend (tomopyui.backend and tomopyui.tomocupy).

When the user calls tomopyui.widgets.main.create_dashboard, they are creating several different objects:

  1. Import tab:

    • The type of Import tab is dictated by the user’s choice in string on the call from the Jupyter notebook (e.g., “SSRL_62C” or “ALS_832”)

    • Holds both raw and prenormalized Uploaders, which hold a specific type of RawProjections (depending on the choice above) and a general Prenormalized_Projections object, respectively.

    • Uploaders upload the data (hold buttons, viewers, etc.), and Projections hold the data.

    • Projection objects also hold specific types of metadata. Storing metadata along the processing pipeline is critical.

  2. Center tab:

  3. Align tab:

    • Used to align jittery data using the automatic alignment algorithms built into tomopy.

    • Align only a part of a dataset by selecting an ROI in the “Imported Projections” viewer.

  4. Recon tab:

    • Used to reconstruct data using one of many algorithms available from TomoPy and Astra Toolbox.

  5. Data Explorer tab:

    • Used to look at prior alignments.

All of these objects talk to view.py, which holds the image viewers.