Skip to main content

Tiled Image Access, Manipulation, and Analysis Toolkit

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tiamat_python-0.1.11.tar.gz (59.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tiamat_python-0.1.11-py3-none-any.whl (67.8 kB view details)

Uploaded Python 3

File details

Details for the file tiamat_python-0.1.11.tar.gz.

File metadata

  • Download URL: tiamat_python-0.1.11.tar.gz
  • Upload date:
  • Size: 59.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for tiamat_python-0.1.11.tar.gz
Algorithm Hash digest
SHA256 754d321e6c586ffdcd501ec9eb6d24f11a229ea8f80b7dda917ce6ebf3ae25be
MD5 3a24e67fdd1ebd78e5cf15c0d533d872
BLAKE2b-256 2fa62344af867ec7db8f538e4b1b8a2f126db61457e7cf52ed2d9be4e71972e3

See more details on using hashes here.

File details

Details for the file tiamat_python-0.1.11-py3-none-any.whl.

File metadata

  • Download URL: tiamat_python-0.1.11-py3-none-any.whl
  • Upload date:
  • Size: 67.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for tiamat_python-0.1.11-py3-none-any.whl
Algorithm Hash digest
SHA256 ab3af7d753255cdddb0f16d5afbec2cf673c019d65a90f8b908fc108bde119eb
MD5 9b887844492c1db6b9131d9ea8357541
BLAKE2b-256 09b183c9f56523bb5d9869b0eebbb7b92e4a5cfba5c0f6e1efec4ca880e9dd6e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page