Skip to content

FOCUS: End-to-end preprocessing, alignment, and registration pipeline

FOCUS is an end-to-end pipeline for integrating spatial multiomics data from multiple imaging and omics instruments acquired on the same tissue section. It handles preprocessing, spatial alignment, and optional feature registration. When a spot-based modality is used as reference and registration is enabled, FOCUS assembles outputs into a single MuData (.h5mu) file ready for downstream analysis in scanpy, squidpy, and AnnData. Alignment-only workflows produce merged AnnData files per modality.


Who is this for?

  • New users


    Start with the interactive GUI. No Python required.

    GUI Walkthrough

  • CLI / power users


    The CLI reference covers running FOCUS in batch mode, on an HPC cluster, or from a script.

    CLI Reference

  • Developers


    The API reference covers integrating FOCUS outputs, extending modality support, and building on top of the Python API.

    API Reference


Key features

  • No programming required: the entire pipeline is driven by a JSON configuration file or the interactive web GUI
  • MuData output: results are written as .h5mu, compatible with scanpy, squidpy, and AnnData
  • Four modalities: fluorescence/brightfield microscopy, MSI/lipidomics, Raman spectroscopy imaging, and spatial transcriptomics
  • Cross-platform: Windows, macOS, Linux, and HPC environments are all supported
  • Container support: Docker, Podman, and Singularity/Apptainer images are available for reproducible deployment

Getting started in 3 steps

1. Install FOCUS

FOCUS is installed from source. Clone the repository and run the installer, which creates a FOCUS conda environment and registers the focus command:

git clone https://github.com/sifrimlab/FOCUS.git
cd FOCUS
bash install.sh          # Windows (PowerShell): .\install.ps1
conda activate FOCUS

See the full Installation Guide for container and HPC options.

2. Prepare your data

Organize raw files into the standard directory layout:

dataset/
├── sample_001/
│   ├── microscopy/   # .tiff / .tif / .ome.tiff / .ome.tif / .qptiff / .czi
│   ├── msi/          # pos/ and/or neg/ with .imzML + .ibd
│   ├── raman/        # .lif
│   └── st/           # .h5ad
└── sample_002/
    └── ...

See Directory Structure for the full specification.

3. Run the pipeline

focus

Running focus with no arguments starts the web GUI. Open http://localhost:5050 in your browser, load or build a configuration, then press Start Processing.

focus --config my_config.json

All pipeline stages run automatically. Results are written to dataset/merged/multimodal_dataset.h5mu.


Pipeline at a glance

Raw Data → [1] Preprocessing → [2] Alignment → [3] Registration → [4] Compilation → MuData (.h5mu)
Stage What happens
Preprocessing Per-modality QC, normalization, format conversion
Alignment Interactive visual alignment via web GUI
Registration Patch embeddings (images) or Gaussian interpolation (omics) onto reference coordinates
Compilation All modalities merged into a single MuData file

Further reading