Fractal
Fractal is a framework developed at the BioVisionCenter to process bioimaging data at scale in the OME-Zarr format and prepare the images for interactive visualization.
Fractal enables distributed workflows that convert TBs of image data into OME-Zarr files. Tasks are modular and can be provided by users to apply image processing and measurements. We provide a package of core processing tasks that include registration, segmentation and measurements. All tasks can be orchestrated by Fractal to run locally or on clusters to scale the image analysis. You can build & control Fractal workflows via the web client or the Fractal command line client.
The resulting pyramidal OME-Zarr files enable interactive visualization in different modern viewers like MoBIE and napari.
Fractal components¶
Fractal is made of different components, including a server/client architecture, a web client and a set of core tasks for image processing.
Component | GitHub Repository | Documentation | Package |
---|---|---|---|
server | fractal-server | fractal-server docs | fractal-server on PyPI |
client | fractal-client | fractal-client docs | fractal-client on PyPI |
web client | fractal-web | fractal-web docs | - |
core tasks | fractal-tasks-core | fractal-tasks-core docs | fractal-tasks-core on PyPI |
Status¶
Fractal is under active development. We have tasks in our core repository and in multiple other tasks repositories. Our core repository contains a converter for Yokogawa CV7000/CV8000 image data as well as different processing tasks for illumination correction, maximum intensity projection, cellpose segmentation. We're working with others to expand the number of compatible OME-Zarr converters (see e.g. fractal-faim-hcs, which uses the faim-hcs converters for the MD Image Xpress), additional image processing tasks (see e.g. APx Fractal Task Collection for tasks centered around 2D image analysis and drug profiling) and additional processing tasks (e.g. the scMultipleX package, which contains a Fractal task to make many scikit-image based measurements in 2D and 3D, as well as organoid registration for multiplexed images). Follow along on the github repositories above and feel free to open issues.
Build your own task¶
You can easily add your own task to Fractal. Fractal can run Linux executables that follow its task API, as defined in the task building documentation. We primarily run Python-based tasks. You can find a full walk-through and templates in the Build Your Own Fractal Task page.
Examples¶
Example datasets and workflows are publicly available:
- Example output data from Fractal in the OME-Zarr format can be found here: Small dataset: 10.5281/zenodo.10257149, larger dataset: 10.5281/zenodo.10257532
- Example input datasets can be found here: Small Fractal dataset for automated testing & task development, Larger example input data for Fractal.
- Additional example workflows can be found in the fractal-demos repository in the
examples
folder.
Contributors and license¶
Unless otherwise stated in each individual module, all Fractal components are released according to a BSD 3-Clause License, and Copyright is with the BioVisionCenter at the University of Zurich.
Fractal was conceived in the Liberali Lab at the Friedrich Miescher Institute for Biomedical Research and in the Pelkmans Lab at the University of Zurich by @jluethi and @gusqgm. The Fractal project is now developed at the BioVisionCenter at the University of Zurich and the project lead is with @jluethi. The core development is done under contract by eXact lab S.r.l..