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. Data
  8. Acknowledgements
  9. Contributors
  10. 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 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

📁 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

pypi publication

Note: Preliminary instructions until publication is automated.

  1. Make sure the repository is clean (no unstaged changes).
  2. Make sure your pypi or test.pypi credentials are configured in ~/.pypirc.
  3. Make sure the current commit has a version tag, e.g. git tag v0.1.8
  4. python -m build
  5. twine check dist/*
  6. python -m venv .venv-test; source .venv-test/bin/activate; pip install dist/*.whl; python -c "import tiamat; print(tiamat.__version__)"; deactive; rm -rf .venv-test
  7. twine upload --repository testpypi dist/*

🤝 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.


📂 Data

Some test and example datasets require git-lfs for download.


👥 Contributors

  • Forschungszentrum Jülich, Institute of Neuroscience and Medicine (INM-1)
  • Community contributors via GitLab merge requests

📄 License

Apache 2.0 – see LICENSE for details.


🙏 Acknowledgements

This project has received funding from the Helmholtz Association’s Initiative and Networking Fund through the Helmholtz International BigBrain Analytics and Learning Laboratory (HIBALL) under the Helmholtz International Lab grant agreement InterLabs-0015.

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.8.tar.gz (58.8 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.8-py3-none-any.whl (68.0 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for tiamat_python-0.1.8.tar.gz
Algorithm Hash digest
SHA256 cef128c7b0f34ad7b7dcb9711a507da4db220db145800cb04f68377d94376c61
MD5 8e2f90cd3a07d293103567db0350768e
BLAKE2b-256 e7c3130440cf9ed6e8a41240d7a87140f9e11890072c01f967e4e114a3acd014

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for tiamat_python-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 8f9d9b31847517ac274f5226a0f058058beac4715f2b93316ea0e19059c4c327
MD5 461a2207fb78a81290ffbce3005a947d
BLAKE2b-256 1ef9477ffc03d7daf46a0dd6fa9e6df4aa45d607b7f39f2ad1b1ecff943950df

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