You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,10 @@
1
1
# Change Log
2
2
All notable changes in ToMoBAR project will be documented in this file.
3
3
4
+
## v.1.0
5
+
6
+
To better communicate breaking changes, ToMoBAR is moving from calendar versioning to semantic versioning. The initial `1.0` release is based on the `2025.12` version.
<br><font size="3" face="verdana" color="green"><b> ToMoBAR</b> is a Python and Matlab (not currently maintained) library of direct and model-based regularised iterative reconstruction algorithms with a plug-and-play capability. ToMoBAR offers you a selection of various data models and regularisers resulting in complex objectives for tomographic reconstruction. ToMoBAR can handle multi-GPU parallel reconstruction in Python and also device-to-device methods operating on CuPy arrays. </font></br>
10
+
<br><font size="3" face="verdana" color="green"><b> ToMoBAR</b> is a Python library of fast direct and model-based regularised iterative algorithms with a plug-and-play capability for reconstruction of parallel-beam geometry data. ToMoBAR offers you a selection of various data models and regularisers resulting in complex objectives for tomographic reconstruction. ToMoBAR can handle multi-GPU parallel reconstruction in Python and also device-to-device methods operating on CuPy arrays. It is currently used in production at <a href="https://www.diamond.ac.uk/Home.html">Diamond Light Source</a> as a part of the <a href="https://diamondlightsource.github.io/httomo/">HTTomo</a> framework for big-data processing and reconstruction.</font></br>
11
11
</td>
12
12
</tr>
13
13
</table>
@@ -16,21 +16,23 @@
16
16
|--------|-------------------|
17
17
||[](https://anaconda.org/httomo/tomobar/)|
18
18
19
-
### Updates:
20
-
There are $\sf\color{red}BREAKING$ $\sf\color{red}CHANGES$ from ToMoBAR $\sf\color{red}v.2025.08$, see [CHANGELOG](https://github.com/dkazanc/ToMoBAR/blob/master/CHANGELOG.md) for all detailed changes.
19
+
### Updates:
20
+
* $\sf\color{red}!$ To better communicate breaking changes, ToMoBAR is moving from calendar versioning to semantic versioning. The initial 1.0 release is based on the 2025.12 version.
21
+
* There are $\sf\color{red}BREAKING$ $\sf\color{red}CHANGES$ from ToMoBAR $\sf\color{red}v.2025.08$, see [CHANGELOG](https://github.com/dkazanc/ToMoBAR/blob/master/CHANGELOG.md) for all detailed changes.
21
22
22
23
## ToMoBAR highlights:
23
24
Check what ToMoBAR can [do](https://dkazanc.github.io/ToMoBAR/introduction/about.html#what-tomobar-can-do). Please also see [Tutorials](https://dkazanc.github.io/ToMoBAR/tutorials/direct_recon.html) and [Demos](https://github.com/dkazanc/ToMoBAR/tree/master/Demos/Python).
25
+
ToMoBAR
24
26
25
27
## Installation
26
28
Please check the detailed [installation](https://dkazanc.github.io/ToMoBAR/howto/installation.html) guide where all [software dependencies](https://dkazanc.github.io/ToMoBAR/introduction/dependencies.html) are listed.
27
29
28
30
### Software includes:
29
-
* A wrapper around [ASTRA-toolbox](https://www.astra-toolbox.com/) to simplify access to various reconstruction methods available in ASTRA
31
+
* Wrappers around [ASTRA-toolbox](https://www.astra-toolbox.com/) to simplify access to various reconstruction methods available in ASTRA-Toolbox
32
+
* Optimised CUDA/CuPy implementation of the fast [Log-Polar](https://epubs.siam.org/doi/10.1137/15M1023762) (Fourier-based) direct reconstruction method.
30
33
* Regularised iterative ordered-subsets [FISTA](https://epubs.siam.org/doi/10.1137/080716542) reconstruction algorithm with linear and non-linear data fidelities
* CuPy driven [forward/backward projectors](https://github.com/dkazanc/ToMoBAR/blob/master/Demos/Python/Demo_CuPy_3D.py) to enable faster device-to-device operations and all in GPU memory protoyping of algorithms
33
-
*[Access to multi-GPU capability through mpi4py library](https://github.com/dkazanc/ToMoBAR/blob/master/Demos/Python/MultiGPU_demo.py)
35
+
* CuPy driven [forward/backward projectors](https://github.com/dkazanc/ToMoBAR/blob/master/Demos/Python/Demo_CuPy_3D.py) to enable faster device-to-device operations and all-in-GPU memory prototyping of algorithms.
34
36
*[Demos](https://github.com/dkazanc/ToMoBAR/tree/master/Demos) to reconstruct synthetic and also real data [4-6]
35
37
36
38
<divalign="center">
@@ -40,24 +42,5 @@ Please check the detailed [installation](https://dkazanc.github.io/ToMoBAR/howto
1.[D. Kazantsev and N. Wadeson 2020. TOmographic MOdel-BAsed Reconstruction (ToMoBAR) software for high resolution synchrotron X-ray tomography. CT Meeting 2020](https://github.com/dkazanc/ToMoBAR/tree/master/docs/Kazantsev_CT_20.pdf)
45
-
2.[P. Paleo and A. Mirone 2015. Ring artifacts correction in compressed sensing tomographic reconstruction. Journal of synchrotron radiation, 22(5), pp.1268-1278.](https://doi.org/10.1107/S1600577515010176)
46
-
3.[D. Kazantsev et al. 2017. A Novel Tomographic Reconstruction Method Based on the Robust Student's t Function For Suppressing Data Outliers. IEEE TCI, 3(4), pp.682-693.](https://doi.org/10.1109/TCI.2017.2694607)
47
-
4.[D. Kazantsev et al. 2017. Model-based iterative reconstruction using higher-order regularization of dynamic synchrotron data. Measurement Science and Technology, 28(9), p.094004.](https://doi.org/10.1088/1361-6501/aa7fa8)
48
-
5.[H. Om Aggrawal et al. 2017. A Convex Reconstruction Model for X-ray tomographic Imaging with Uncertain Flat-fields", IEEE Transactions on Computational Imaging](http://ieeexplore.ieee.org/document/7967846/)
49
-
6.[V. Van Nieuwenhove et al. 2015. Dynamic intensity normalization using eigen flat fields in X-ray imaging. Optics express 23(21)](https://visielab.uantwerpen.be/sites/default/files/ffc_2016.pdf).
50
-
51
-
### Applications (where ToMoBAR software have been used or referenced):
52
-
7.[D. Kazantsev et al. 2019. CCPi-Regularisation toolkit for computed tomographic image reconstruction with proximal splitting algorithms. SoftwareX, 9, pp.317-323.](https://doi.org/10.1016/j.softx.2019.04.003)
53
-
8.[E. Guo et al. 2018. The influence of nanoparticles on dendritic grain growth in Mg alloys. Acta Materialia.](https://doi.org/10.1016/j.actamat.2018.04.023)
54
-
9.[E. Guo et al. 2018. Revealing the microstructural stability of a three-phase soft solid (ice cream) by 4D synchrotron X-ray tomography. Journal of Food Engineering](https://www.sciencedirect.com/science/article/pii/S0260877418302309)
55
-
10.[E. Guo et al. 2017. Dendritic evolution during coarsening of Mg-Zn alloys via 4D synchrotron tomography. Acta Materialia](https://doi.org/10.1016/j.actamat.2016.10.022)
56
-
11.[E. Guo et al. 2017. Synchrotron X-ray tomographic quantification of microstructural evolution in ice cream–a multi-phase soft solid. Rsc Advances](https://doi.org/10.1039/C7RA00642J)
57
-
12.[Liu Shi et al. 2020. Review of CT image reconstruction open source toolkits, Journal of X-Ray Science and Technology](https://content.iospress.com/articles/journal-of-x-ray-science-and-technology/xst200666)
[D. Kazantsev and N. Wadeson 2020. TOmographic MOdel-BAsed Reconstruction (ToMoBAR) software for high resolution synchrotron X-ray tomography. CT Meeting 2020](https://github.com/dkazanc/ToMoBAR/tree/master/docs/Kazantsev_CT_20.pdf)
Copy file name to clipboardExpand all lines: docs/source/howto/installation.rst
+3-2Lines changed: 3 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,8 +2,9 @@
2
2
3
3
Installation Guide
4
4
------------------
5
-
ToMoBAR is a Python package with several :ref:`ref_dependencies`. To ensure its full functionality it is recommended to install them.
6
-
It mostly relies on the GPU-enabled computations and therefore we suggest using a decent NVIDIA graphics card to support it.
5
+
ToMoBAR is a Python package with several :ref:`ref_dependencies`. To enable full functionality, it is recommended to install a subset of these dependencies.
6
+
7
+
.. note:: ToMoBAR relies on GPU-accelerated computations; therefore, we also recommend using a capable NVIDIA graphics card to take full advantage of its features.
Copy file name to clipboardExpand all lines: docs/source/introduction/about.rst
+18-8Lines changed: 18 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,32 +5,42 @@ About ToMoBAR
5
5
6
6
The general concept:
7
7
====================
8
+
8
9
ToMoBAR is a Python library (Matlab is not currently supported) of direct and model-based
9
10
regularised iterative reconstruction algorithms with a plug-and-play capability.
10
11
ToMoBAR offers you a selection of various data models and regularisers resulting in
11
12
complex objectives for tomographic reconstruction. ToMoBAR uses ASTRA-Toolbox [VanAarle2015]_,
12
13
for projection-backprojection parallel-beam geometry routines, which is
13
14
a common geometry for X-ray synchrotron imaging [SX2022]_.
14
15
15
-
ToMoBAR can operate in GPU device-to-device fashion on CuPy arrays therefore ensuring
16
-
a better computational efficiency. With GPU device controlling :ref:`ref_api`
17
-
exposed it can also support multi-GPU parallel computing [CT2020]_ .
16
+
Where it is used:
17
+
=================
18
+
19
+
ToMoBAR is currently used in production at `Diamond Light Source <https://www.diamond.ac.uk/Home.html>`_, which is
20
+
the United Kingdom's national synchrotron science facility. ToMoBAR is exposed through the
21
+
`HTTomolibGPU <https://diamondlightsource.github.io/httomolibgpu/>`_ library which is the backend for the
22
+
`HTTomo <https://diamondlightsource.github.io/httomo/>`_'s framework for big-data processing and
23
+
reconstruction.
18
24
19
-
.. figure:: ../_static/TomoRec_surf2.jpg
20
-
:scale:30 %
21
-
:alt:ToMoBAR in action
22
25
23
-
What ToMoBAR can do:
26
+
What can ToMoBAR do:
24
27
====================
25
28
29
+
ToMoBAR can operate in GPU device-to-device fashion on CuPy arrays therefore ensuring a better computational
30
+
efficiency. With the GPU device controlling :ref:`ref_api` exposed it can also support multi-GPU parallel computing [CT2020]_ .
31
+
26
32
* Reconstruct parallel-beam projection data in 2D and 3D using GPU-accelerated routines from ASTRA-toolbox [VanAarle2015]_.
27
33
* Employ fast GPU-accelerated direct methods, such as FBP method in :mod:`tomobar.methodsDIR` and CuPy accelerated Fourier
28
-
reconstruction :func:`FOURIER_INV` in :mod:`tomobar.methodsDIR_CuPy`.
34
+
reconstruction :func:`FOURIER_INV` [NIKITIN2017]_ in :mod:`tomobar.methodsDIR_CuPy`.
29
35
* Use advanced model-based regularised iterative schemes such as FISTA and ADMM proximal splitting algorithms in :mod:`tomobar.methodsIR` or
30
36
even faster implementations with CuPy in :mod:`tomobar.methodsIR_CuPy`.
31
37
* The FISTA algorithm [BT2009]_, [Xu2016]_ offers various modifications: convergence acceleration with ordered-subsets,
32
38
different data fidelities: PWLS, Huber, Group-Huber [PM2015]_, Students't [KAZ1_2017]_, and SWLS [HOA2017]_
33
39
to deal with noise and various imaging artefacts, such as, rings, streaks.
34
40
* Combine FISTA and ADMM methods with regularisers from the CCPi-Regularisation Toolkit [KAZ2019]_. It is possible to construct different combinations of the objective function.
.. note:: For faster device-to-device regularised iterative reconstruction, consider using the CuPy-based version of ToMoBAR (see point 3).
35
36
36
-
If one needs to install only CuPy modules (see 6.), the quickest way will be
37
+
* 3. `CuPy <https://cupy.dev/>`_ dependency provides access to GPU-accelerated routines that are separate from the main host-device-host implementation approach. The CuPy-driven algorithms operate on CuPy arrays that remain on the GPU, rather than on NumPy arrays stored in CPU memory.
38
+
When the CuPy dependency is available, users can access methods from the following classes:
39
+
:mod:`tomobar.methodsDIR_CuPy` and :mod:`tomobar.methodsIR_CuPy`. For example, the ultra-fast reconstruction method
40
+
:func:`tomobar.methodsDIR_CuPy.RecToolsDIRCuPy.FOURIER_INV`, based on the Fourier transform [NIKITIN2017]_, is available in :mod:`tomobar.methodsDIR_CuPy`.
41
+
In addition, faster regularised iterative reconstruction methods are also provided (see point 4).
42
+
We plan to continue developing and supporting this capability, as it offers significant efficiency gains f
43
+
or GPU-based computations without requiring explicit software builds.
44
+
45
+
For Python installation see `conda-cupy <https://anaconda.org/anaconda/cupy>`_ page.
37
46
38
47
.. code-block:: console
39
48
40
-
$ pip install ccpi-regularisation-cupy # all OS but CuPy modules only
49
+
$ conda install conda-forge::cupy
50
+
51
+
* 4. CuPy-enabled CCPi-Regularisation-Toolkit can be used when point 3 is satisfied. This will give you an access to
52
+
:mod:`tomobar.methodsIR_CuPy` modules, where more efficient iterative regularisation methods are implemented.
53
+
Note, however, that modules in :mod:`tomobar.methodsIR` won't be accessible without installation of CCPi-Regularisation-Toolkit (see point 2).
41
54
42
-
* 3. `TomoPhantom <https://github.com/dkazanc/TomoPhantom>`_ is optional but can be very
55
+
56
+
* 5. `TomoPhantom <https://github.com/dkazanc/TomoPhantom>`_ is optional but can be very
43
57
handy to generate synthethic tomographic data and play with :ref:`examples_synth_iter`.
44
-
Also most of the `Demos <https://github.com/dkazanc/ToMoBAR/tree/master/Demos/Python>`_ in ToMoBAR using TomoPhantom.
58
+
Also most of the `Demos <https://github.com/dkazanc/ToMoBAR/tree/master/Demos/Python>`_ in ToMoBAR
59
+
using TomoPhantom.
45
60
46
61
For Python installation see the `installation guide <https://dkazanc.github.io/TomoPhantom/howto/installation.html>`_.
47
62
@@ -50,7 +65,13 @@ If one needs to install only CuPy modules (see 6.), the quickest way will be
* 4. Wavelet toolbox `pypwt <https://github.com/pierrepaleo/pypwt>`_ or **pycudwt** is optional and required only
68
+
* 6. `HTTomolibGPU <https://diamondlightsource.github.io/httomolibgpu/>`_ is a library of GPU accelerated methods for tomography which uses ToMoBAR as a backend for `reconstruction <https://diamondlightsource.github.io/httomolibgpu/reference/methods_list/reconstruction_methods.html>`_. This library can be useful if one builds the full pipeline for raw data processing, including pre-processing, reconstruction and post-processing.
69
+
70
+
.. code-block:: console
71
+
72
+
$ pip install httomolibgpu
73
+
74
+
* 7. Wavelet toolbox `pypwt <https://github.com/pierrepaleo/pypwt>`_ or **pycudwt** is optional and required only
54
75
if the CCPi-Regularisation-Toolkit already installed. It adds soft/hard thresholding of Wavelets coefficients to the available regularisers.
55
76
In some cases it can be beneficial for the reconstruction quality.
56
77
@@ -62,29 +83,7 @@ If one needs to install only CuPy modules (see 6.), the quickest way will be
62
83
$ conda install httomo::pypwt # if above didn't work (linux only)
63
84
64
85
65
-
* 5. `CuPy <https://cupy.dev/>`_ dependency is optional and used to write high-level code in Python for GPU computations.
66
-
Those algorithms operating on CuPy arrays that are kept on the GPU device as opposed to Numpy arrays kept in the CPU memory.
67
-
It is a work in progress to fully support the CuPy compute in ToMoBAR, however, some reconstruction methods, such as direct and iterative
68
-
were already ported, see :mod:`tomobar.methodsDIR_CuPy` and :mod:`tomobar.methodsIR_CuPy`, respectively.
69
-
We have plans to continue developing and supporting this new capability as it offers promising efficiency for GPU computations, no OS-specific builds required,
70
-
and simplicity of the implementation.
71
-
72
-
For Python installation see the `conda-cupy <https://anaconda.org/anaconda/cupy>`_ page.
73
-
74
-
.. code-block:: console
75
-
76
-
$ conda install conda-forge::cupy # linux/windows
77
-
78
-
* 6. CuPy-enabled CCPi-Regularisation-Toolkit can be used when (5) is satisfied. This will give you an access to
79
-
:mod:`tomobar.methodsDIR_CuPy` and :mod:`tomobar.methodsIR_CuPy` modules, while regularisation methods of
80
-
:mod:`tomobar.methodsIR` won't be accessible.
81
-
82
-
.. code-block:: console
83
-
84
-
$ pip install ccpi-regularisation-cupy # all OS but CuPy modules only
85
-
86
-
87
-
* 7. `mpi4py <https://mpi4py.readthedocs.io/en/stable/>`_ is a Python extension for parallel computing using MPI.
86
+
* 8. `mpi4py <https://mpi4py.readthedocs.io/en/stable/>`_ is a Python extension for parallel computing using MPI.
88
87
Install only if you are planning to use multi-GPU computing. ToMoBAR in itself doesn't offer
89
88
any parallelisation and you might want to check the `HTTomo <https://github.com/DiamondLightSource/httomo>`_ package.
90
89
HTTomo supports MPI-based reconstruction and uses ToMoBAR as a backend.
0 commit comments