tiamat is a modular Python toolkit for accessing, transforming, and exposing large scientific image datasets. It provides a flexible, pluggable pipeline model that separates data access (readers), transformation (transformers), and delivery (interfaces) — allowing on-the-fly, tool-agnostic image workflows without data duplication or format conversion.
Supported outputs include NumPy arrays, Napari, Neuroglancer, OpenSeadragon, and FUSE-mounted virtual filesystems.
- Quick Start
- Installation
- Core Concepts
- Examples
- Development Guidelines
- Contributing
- Acknowledgements
- License
from tiamat import Pipeline
from tiamat.io import ImageAccessor
from tiamat.transformers import FractionalTransformer, LUTTransformer
# Create a pipeline with fractional coordinate access and a rainbow colormap
pipeline = Pipeline(
access_transformers=[FractionalTransformer()],
image_transformers=[LUTTransformer(colormap="rainbow")]
)
# Request the central 50% of the image
accessor = ImageAccessor(x=(0.25, 0.75), y=(0.25, 0.75))
result = pipeline("example_image.tif", accessor=accessor)
# Get the transformed NumPy image and metadata
image = result.image
metadata = result.metadataInstall the latest release from pypi:
pip install tiamat-pythonInstall the latest development version directly from GitLab:
pip install git+https://jugit.fz-juelich.de/inm-1/bda/software/data_access/tiamat/tiamatTiamat defines a modular pipeline composed of:
- Readers: Load image data from formats like TIFF, NIfTI, HDF5, or memory arrays.
- Transformers: Apply dynamic, on-the-fly transformations (e.g., colormaps, axis reordering, tiling).
- Interfaces: Serve data to tools like Napari, Neuroglancer, OpenSeadragon, or directly as arrays.
This decoupled architecture allows you to:
- Build pipelines from reusable components
- Extend with custom readers or transformers
- Avoid costly format conversions
Interfaces use tiamat to expose data to various client applications.
- tiamat-openseadragon: Interface compatible with OpenSeadragon.
- tiamat-ng: Interface compatible with Neuroglancer.
- tiamat-fuse-zarr: Interface for exposing
tiamatpipelines as zarr files through FUSE (experimental). - tiamat-napari: Napari plugin interface for
tiamat(experimental).
- tiamat-justice: Specialized readers and transformers used at INM-1, Forschungszentrum Jülich.
- tiamat-celldetection: AI-based transformers for live cell segmentation.
See the examples/ directory for usage demonstrations and pipeline configurations.
- Follow PEP 561 type hinting
- Use Google-style docstrings
- Formatting:
flake8with line length 120 - Tests:
pytestunit tests - Feature development follows
git-flow
Releases to pypi are automatically performed on semantic versioning tags on the master branch.
We welcome contributions!
- Fork the repository and work on a feature branch.
- Submit a Merge Request (MR) into
develop. - All contributions are reviewed and tested before merging.
This project follows the git-flow workflow.
Releases are merged into master from develop on a regular basis.
Apache 2.0 – see LICENSE for details.
See ACKNOWLEDGEMENTS.
