HTTomo is a user interface (UI) written in Python for fast big data processing using MPI protocols. It orchestrates I/O data operations and enables processing on a CPU and/or a GPU. HTTomo utilises other libraries, such as TomoPy and HTTomolibgpu as backends for data processing. The methods from the libraries are exposed through YAML templates to enable fast task programming.
Please check the full documentation here.
$ conda create --name httomo # create a fresh conda environment
$ conda activate httomo
$ conda install -c conda-forge -c https://conda.anaconda.org/httomo/ httomo
$ conda install -c https://conda.anaconda.org/httomo/ httomolibgpu # for GPU methodsNote: we recommend using mamba for a much faster dependency resolution. After creating a fresh environment and activating it, install mamba with
$ conda install -c conda-forge mambaAnd install the packages using mamba instead (replace conda with mamba):
$ mamba install -c conda-forge -c https://conda.anaconda.org/httomo/ httomo$ git clone git@github.com:DiamondLightSource/HTTomo.git # clone the repo
$ conda env create --name httomo --file conda/environment.yml # install dependencies
$ conda activate httomo # activate environment
$ pip install .[tomopy,httomolib,httomolibgpu] # Install the module + backend(s)$ pip install -e .[dev] # development mode- Install the module as described in "Install as a Python module"
- Execute the python module with
python -m httomo <args> - For help with the command line interface, execute
python -m httomo --help
- Create an output directory
mkdir output_dir/ - Go to the home directory and run:
python -m httomo run tests/test_data/tomo_standard.nxs samples/pipeline_template_examples/02_basic_cpu_pipeline_tomo_standard.yaml output_dir/
python -m httomo check samples/pipeline_template_examples/02_basic_cpu_pipeline_tomo_standard.yaml
We use the setuptools-git-versioning
package for automatically determining the version from the latest git tag.
For this to work, release tags should start with a v followed by the actual version,
e.g. v1.1.0a.
We have setup a tag_filter in pyproject.toml to filter tags following this pattern.