The Advanced Photon Source
a U.S. Department of Energy Office of Science User Facility

TomoPy for Tomographic reconstruction

Tomographic reconstruction creates three-dimensional views of an object by combining two-dimensional images taken from multiple directions, for example in how a CAT (computer-aided tomography) scanner allows 3D views of the heart or brain.With synchrotron radiation, it becomes possible to obtain high-resolution density images, but also by analyzing x-rays emitted from fluorescence tomographs can show chemical information, by measuring the abundance of key elements.Data collection can be rapid, but the required computations are massive. Further, many common experimental perturbations can degrade the quality of tomographs, unless corrections are applied. Unless automated tools make these corrections, beamline staff can be overwhelmed by data that can be collected far faster thancorrections and reconstruction can be performed. 

To address the needs for image correction and tomographic reconstruction in an instrument independent manner, the TomoPy code was developed, which is a parallelizable high performance reconstruction code. The code is in use or planned to be so at most US synchrotron facilities.

TomoPy is an open-sourced collaborative project, written in primarily in Python, but with some code in C++ (14%) and C (11%).It has been run on Windows, Linux and Mac platforms as well as on supercomputers. The code base is one of the most highly documented open-source projects with 38% of all source code lines being comments.

Recently TomoPy was installed on Argonne Leadership Computing Facility’s MIRA supercomputer. Performance tests with up to 32,000 computing cores demonstrate that TomoPy provides highly scalable iterative tomographic reconstruction.


Distribution & Impact

TomoPy is an open-sourced software, and the repository is on GitHub. Documentation is also available on the web. It is also indexed in the Python Package Index (PyPI). Anyone can download, use it freely, and contribute to it through GitHub. It runs on all major platforms and operating systems provided that a Python interpreter and a C compiler have been installed.

TomoPy is installed and used in production mode at the Advanced Photon Source (APS) imaging beamlines 2-BM and 32-ID and it is distributed to all beamline users to enable tomographic reconstruction at their home institution.Use at several other APS sectors is in consideration by the appropriate beamline scientists.

Different tomographic raw data importers have been developed in a separate module called Data Exchange module, to allow TomoPy to be used within all major synchrotron facilities. Berkeley National Laboratory installed TomoPy on National Energy Research Scientific Computing Center’s (NERSC) EDISON supercomputer to be used for micro-CT beamline users (BL832) at ALS. Brookhaven National Laboratory collaboration aims to integrate it with NIKEA, the NSLS-II data analysis toolbox for tomographic data processing tasks.


Funding Source

TomoPy was initiated as part of Argonne LDRD “The Tao of Fusion: Pathways for Big-data Analysis of Energy Materials at Work”, PI C. Jacobsen, FY2013-2015.


Please cite

Gursoy D, De Carlo F, Xiao X, Jacobsen C. (2014). TomoPy: a framework for the analysis of synchrotron tomographic data. J. Synchrotron Rad. 21. 1188-1193 doi:10.1107/S1600577514013939

Related Publications

Silverman R, Giarra M, Gürsoy D and Socha J, (2015) Using TomoPy to reconstruct synchrotron micro-CT data, The Society for Integrative and Comparative Biology (SICB) Conference, West Palm Beach FL, USA.

Gursoy D, Lanzirotti A, Newville MG., De Carlo F (2014). Spatio-spectaral Penalized Maximum-Likelihood Reconstruction for X-ray fluorescence tomography. (Submitted to Optics Letters)

Gursoy D, Bicer T, Almer J, Kettimuthu R, De Carlo F, Stock S (2014). Regularized phase reconstruction in X-ray powder diffraction tomography. (Submitted to Phil. Trans. R. Soc. A)

Phatak C, Gursoy D (2014). Iterative reconstruction of magnetic induction using Lorentz transmission electron tomography. (Submitted to Ultramicroscopy)


Immediate development goals include
  • Developing inverse models based on L2-norm data fidelity
  • Adding total-variation (TV) regularization as an option
  • Adding (and developing) Ptychographic reconstruction capabilities
  • Developing joint absorption and fluorescence emission reconstruction
  • Improving scalability of the algorithms for grid-computing
  • Developing optimal in-slice parallelization schemes for minimizing computation time on distributed systems
Possible longer-term goals include
  • Developing joint approaches for coherent diffraction imaging (in both Fresnel and Fraunhofer regions) and tomography
  • Applying nonnegative factorization for fluorescence and diffraction datasets
  • Developing level-set/shape reconstruction methods
  • Self-absorption correction for fluorescence tomography
  • Adding grating interferometry tools, both for single-shot and stepped-grating
  • Adding robust registration methods
  • Improve documentation and tutorials
  • Improve installation instructions
  • Providing a GUI