Fractal is a framework to process high-content imaging data at scale and prepare it 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 pacakge of core processing tasks that can apply illumination correction, maximum intensity projection, 3D segmentation using cellpose and measurements using napari workflows. All tasks can be orchestrated by Fractal to run locally or on clusters to scale the image analysis. The resulting pyramidal OME-Zarr files enable interactive visualization in different modern viewers like MoBIE and napari.
Here’s an example of browsing a 23-well plate in napari:
Fractal is made of different components, including a server/client architecture, a web client and a set of core tasks for image processing.
|fractal-server on PyPI
|fractal-client on PyPI
|fractal-tasks-core on PyPI
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) 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). Follow along on the github repositories above and feel free to open issues.
Fractal runs locally on a laptop (tested both Linux, macOS and Windows with subsystem Linux) or on a linux server that submits jobs to a SLURM cluster. The documentation above describes the preconditions and the different configurations that can be changed. Fractal can be used via a command line client, as well as via a web client. To get started with Fractal, you can follow the setup in the fractal-demos repository.
Here is a video walk-through for how to set up a local Fractal server:
Once you have a Fractal server running, you can also access it via Fractal web. To do so, set up a Fractal web server as shown here:
If you prefer to follow a written guide, follow the instructions in the server folder to set up Fractal server. Once you have successfully installed and started the Fractal server, you can install a fractal-client environment and interact with the Fractal server from there. To do so, follow the instructions for the 01_cardio_tiny_dataset example. This also includes a link to a tiny dataset and instructions on how to run a full Fractal workflow on this dataset (which should run in under a minute).
To set up Fractal web, follow the instructions in the Fractal web README.
Additional example datasets and workflows are publicly available:
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. The Fractal web license remains to be set (we’re discussing between permissive and copyleft open source licenses).
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 (both in Switzerland) 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..