The Graz Application for Tomographic Reconstruction (Graptor) is a software tool developed to allow for efficient, high quality tomographic reconstruction from Radon-transform data. It originates from a project concerning Scanning Transmission Electron Tomography of the Institute of Mathematics and Scientific Computing at the University of Graz together with the Institute for Electron Microscopy and Nanoanalysis and the Centre for Electron Microscopy at Graz University of Technology, though it is not limited to such applications. A special feature of this toolbox is the coupling in multi-channel tomography (originally developed for joint HAADF-EDX reconstruction), yielding superior reconstruction quality for data sets with complementing information. The reconstruction algorithm bases on an iterative procedure that minimizes the Tikhonov functional associated with the tomographic reconstruction problem and multi-channel total generalized variation regularization. The code features a powerful OpenCL/GPU implementation, resulting in high reconstruction speed, and a Graphical User Interface allowing for easy use.
- High quality tomography reconstructions.
- Easy to use graphical user interface.
- Fast reconstruction due to custom OpenCL/GPU-implementation.
- Preprocessing options to ensure data fits the framework.
The code is written for Python 2.7 though it also works in Python 3. No dedicated installation is needed for the program, simply download the code and get started. Be sure to have the following Python modules installed, most of which should be standard.
- tkinter
- pyopencl (>=pyopencl-2014.1)
- argparse
- numpy
- scipy
- matplotlib (with tkagg backend)
- mrcfile
- subprocess
- queue
- threading
- shlex
- shutil
- h5py
Particularly, correctly installing and configuring PyOpenCL might take some time, as dependent on the used platform/GPU, suitable drivers must be installed.
To start the Graphical User interface, run GUI.py
inside the Graptor folder (e.g. in a terminal via python GUI.py
or similarly from an Python development environment).
We refer to the manual for precise instructions on how to use the GUI. It is adviced to run the examples in the manual with the phantom test data in order to get a grasp of the relevant functions and options.
Additionally, the script Reconstruction_coupled.py
is provided for using the reconstruction algorithm inside a terminal. You can find help via python Reconstruction_coupled.py --help
concerning possible parameters as well as an example for the call.
- There appears to be an issue with the automatic splitting in case of insufficient GPU memory under Windows. If problems occur, try to use the
Maximal chunk size
option in the GUI or the--Chunksize
parameter ofReconstruction_coupled.py
to reduce memory requirements.
- Richard Huber [email protected]
- Martin Holler [email protected]
- Kristian Bredies [email protected]
All authors are affiliated with the Institute of Mathematics and Scientific Computing at the University of Graz.
If you find this tool useful, please cite the following associated publication.
- R. Huber, G. Haberfehlner, M. Holler, G. Kothleitner and K. Bredies. Total Generalized Variation regularization for multi-modal electron tomography. Nanoscale, 2019. DOI: 10.1039/C8NR09058K
The experimental data set used in this work can be obtained from the following reference.
- G. Haberfehlner and G. Kothleitner. EDX Electron Tomography Dataset on AlSiYb-Alloy [Data set]. Zenodo, 2019. DOI: 10.5281/zenodo.2578866
The results of the article Total Generalized Variation regularization for multi-modal electron tomography can be reproduced with the software by running the following terminal commands inside the Graptor folder.
# Reproduce results with phantom data and save to `phantom_data_results`
python Reconstruction_coupled.py "example/HAADF_lrsino.mrc" "example/Yb_EDXsino.mrc" "example/Al_EDXsino.mrc" "example/Si_EDXsino.mrc" --Outfile "phantom_data_results/reconstruction" --alpha 4.0 1.0 --mu 0.2 0.0005 0.004 0.0005 --Maxiter 2500 --Regularisation TGV --Discrepancy KL --Coupling FROB3D --SliceLevels 0 59 1 --Channelnames "HAADF" "ytterbium" "aluminum" "silicon" --Datahandling bright thresholding 0 "" 0.05 --Find_Bad_Projections 0 0 --Overlapping 1
# Download experimental data
wget -r -l 1 -nd -P experimental_data -A .mrc,.rawtlt https://zenodo.org/record/2578866
# Reproduce results with phantom data and save to `experimental_data_results`
python Reconstruction_coupled.py "experimental_data/FEI HAADF_aligned_norm_ad.mrc" "experimental_data/EDS Al K Map_aligned_norm.mrc" "experimental_data/EDS Si K Map_aligned_norm.mrc" "experimental_data/EDS Yb L Map_aligned_norm.mrc" --Outfile "experimental_data_results/reconstruction" --Datahandling bright thresholding 0.0 "" 0.05 --Discrepancy=KL --Regularisation=TGV --SliceLevels 10 270 1 --alpha 4.0 1.0 --mu 0.1 0.0024 0.0014 0.001 --Coupling=Frob3d --Channelnames HAADF Aluminum Silicon Ytterbium --Maxiter=5000 --Scalepars 0 100
The development of this software was partially supported by the following projects:
-
Regularization Graphs for Variational Imaging, funded by the Austrian Science Fund (FWF), grant P-29192,
-
Lifting-based regularization for dynamic image data, funded by the Austrian Science Fund (FWF), grant J-4112,
-
International Research Training Group IGDK 1754 Optimization and Numerical Analysis for Partial Differential Equations with Nonsmooth Structures, funded by the German Research Council (DFG) and the Austrian Science Fund (FWF), grant W-1244.
We wish to express special thanks to Georg Haberfehlner and Gerald Kothleitner from the Austrian Centre for Electron Microscopy and Nanoanalysis who offered us much insight into application of electron tomography, and aside from many other intellectual contributions to this program, designed the synthetic data set in the example
folder.
- G. Haberfehlner and G. Kothleitner acknowledge support by the European Union’s Horizon 2020 research and innovation programme under Grant Agreement No. 823717 ESTEEM3.
This project is licensed under the GPLv3 license - see the LICENSE file for details.