Dependencies#

ToMoBAR relies on several dependencies which we list bellow in the order of priority. In general, we would recommend installing 1,2 and 4 packages.

$ conda install astra-toolbox::astra-toolbox
$ conda install ccpi::ccpi-regulariser # linux/windows
$ conda install httomo::ccpi-regulariser # linux
$ conda install httomo::ccpi-regularisation-cupy # all OS / CuPy modules only
  • 3. Wavelet toolbox pypwt or pycudwt is required if the soft/hard thresholding of Wavelets coefficients is added to the regularisers above. In some cases it can be beneficial for the reconstruction quality.

    For Python installation one can try pip install pycudwt or:

$ conda install httomo::pypwt # linux only
$ conda install httomo::tomophantom # linux/windows
  • 5. CuPy dependency is optional to be able to use algorithms operating on CuPy array kept on the GPU device instead of Numpy arrays. It is a work in progress to fully support the feature in ToMoBAR, however, many main reconstruction methods such as direct and basic were already ported. FISTA ordered-subsets with some regularisres has been exposed and offers up to several times acceleration compared to the version in tomobar.methodsIR. We have plans to continue developing and supporting this new capability as it offers promising efficiency for GPU computations.

    For Python installation see the conda-cupy page.

$ conda install conda-forge::cupy # linux/windows
  • 6. CuPy-enabled CCPi-Regularisation-Toolkit is required when (5) is satisfied. This extension doesn’t depend on (2) and can co-exist with (2) installation or standalone. Note, however, it is also WIP and not all regularisers tomobar.regularisersCuPy have been ported.

$ conda install httomo::ccpi-regularisation-cupy # all OS supported
  • 7. mpi4py is a Python extension for parallel computing using MPI. Install only if you are planning to use multi-GPU computing. ToMoBAR in itself doesn’t offer any parallelisation and you might want to check the HTTomo package. HTTomo supports MPI-based reconstruction and uses ToMoBAR as a backend.