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
- Quick Start
- Installation
- Core Concepts
- Examples
- Development Guidelines
- Contributing
- Data
- Acknowledgements
- Contributors
- 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:
flake8with line length 120 - Tests:
pytestunit tests - Feature development follows
git-flow
pypi publication
Note: Preliminary instructions until publication is automated.
- Make sure the repository is clean (no unstaged changes).
- Make sure your pypi or test.pypi credentials are configured in
~/.pypirc. - Make sure the current commit has a version tag, e.g.
git tag v0.1.8 python -m buildtwine check dist/*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-testtwine 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cef128c7b0f34ad7b7dcb9711a507da4db220db145800cb04f68377d94376c61
|
|
| MD5 |
8e2f90cd3a07d293103567db0350768e
|
|
| BLAKE2b-256 |
e7c3130440cf9ed6e8a41240d7a87140f9e11890072c01f967e4e114a3acd014
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f9d9b31847517ac274f5226a0f058058beac4715f2b93316ea0e19059c4c327
|
|
| MD5 |
461a2207fb78a81290ffbce3005a947d
|
|
| BLAKE2b-256 |
1ef9477ffc03d7daf46a0dd6fa9e6df4aa45d607b7f39f2ad1b1ecff943950df
|