Skip to main content

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

  1. Quick Start
  2. Installation
  3. Core Concepts
  4. Examples
  5. Development Guidelines
  6. Contributing
  7. Acknowledgements
  8. 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.

Extension transormers and readers


📁 Examples

See the examples/ directory for usage demonstrations and pipeline configurations.


🛠️ Development Guidelines

  • Follow PEP 561 type hinting
  • Use Google-style docstrings
  • Formatting: flake8 with line length 120
  • Tests: pytest unit 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)

Source distribution for tiamat-python 0.1.16
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)

Table of built distributions (wheels) for tiamat-python 0.1.16
File Interpreter ABI Platform Actions
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page