tiamat
Tiled Image Access, Manipulation, and Analysis Toolkit
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.
📑 Table of Contents
- Quick Start
- Installation
- Core Concepts
- Examples
- Development Guidelines
- Contributing
- Acknowledgements
- License
🚀 Quick Start
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.metadata
📦 Installation
Install the latest release from pypi:
pip install tiamat-python
Install the latest development version directly from GitLab:
pip install git+https://jugit.fz-juelich.de/inm-1/bda/software/data_access/tiamat/tiamat
🧠 Core Concepts
Tiamat 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
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).
Extension transormers and readers
- tiamat-justice: Specialized readers and transformers used at INM-1, Forschungszentrum Jülich.
- tiamat-celldetection: AI-based transformers for live cell segmentation.
📁 Examples
See the examples/ directory for usage demonstrations and pipeline configurations.
🛠️ Development Guidelines
- Follow PEP 561 type hinting
- Use Google-style docstrings
- Formatting:
flake8with line length 120 - Tests:
pytestunit tests - Feature development follows
git-flow
Releases
Releases to pypi are automatically performed on semantic versioning tags on the master branch.
🤝 Contributing
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.
📄 License
Apache 2.0 – see LICENSE for details.
🙏 Acknowledgements
See ACKNOWLEDGEMENTS.
Metadata
Release files for tiamat-python 0.1.16
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| tiamat_python-0.1.16.tar.gz | 64.4 kB | Without provenance | Details for tiamat_python-0.1.16.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| tiamat_python-0.1.16-py3-none-any.whl | Python 3 | none | any | Details for tiamat_python-0.1.16-py3-none-any.whl |
Total release size: 138.7 kB
Release files / tiamat_python-0.1.16.tar.gz
| Download URL | tiamat_python-0.1.16.tar.gz |
|---|---|
| Size | 64.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
68e4b671e46c5e7b3404faaebd5060cf671498b95006e0e2f6d94a25672146b4
|
|
BLAKE2b-256 checksum How to use checksums |
aab5de4cc88adde2a319a4f150814f05606db21fbe3139a68a6dcff8e9bb7ad3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / tiamat_python-0.1.16-py3-none-any.whl
| Download URL | tiamat_python-0.1.16-py3-none-any.whl |
|---|---|
| Size | 74.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b960fd25b71d6e21de5d792d76b960c82f09d006af64651dc869018a95a001cc
|
|
BLAKE2b-256 checksum How to use checksums |
a6593eb88352761659a66fb6b08b6e2fbeab9736590e85e24a9c7085ddc1be97
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Security for tiamat-python 0.1.16
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.