Live-Cell Tracking: a pipeline architecture for trustworthy imaging.
01 · Phenotypic Discovery
Find meaningful biological responses across large experimental spaces.
High-content experiments generate more images than scientists can examine directly, but scale alone does not produce insight. The analysis must preserve the relationship between perturbations, controls, cells, wells, plates, and batches while turning millions of individual observations into comparable phenotypic profiles.
Fovea Lab supports the full path from image correction and cellular segmentation to feature extraction, representation learning, batch correction, and biological readout. Each result remains connected to the conditions and quality checks that produced it, allowing researchers to distinguish reproducible phenotypes from technical variation and investigate rare responses that would otherwise disappear inside population averages.
02 · Space & Time
Follow biological systems as they form, move, and change.
Volumetric and time-resolved imaging reveals processes that cannot be understood from a single field or endpoint. Cells migrate, tissues reorganize, structures develop, and rare events emerge across large image volumes. Extracting those events requires more than processing individual frames: the analysis must remain consistent across depth, time, scale, and changing image quality.
Fovea Lab brings acquisition context, restoration, segmentation, registration, tracking, and quantitative measurement into one inspectable workflow. Researchers can follow an observation from a rendered volume or trajectory back to the source data and processing decisions that created it, while quality checks expose where depth, motion, density, or signal loss may have changed the reliability of the result.
03 · Tissue & Spatial Biology
Connect cellular organization with molecular and pathological context.
Tissue images contain information at several scales at once: cellular morphology, local neighborhoods, larger anatomical structures, molecular measurements, and clinically meaningful regions. These signals are often processed in separate systems, making it difficult to understand how a final classification, spatial association, or tissue-level measurement was formed.
Fovea Lab structures image processing, registration, object detection, spatial measurement, and model interpretation as one traceable analysis. Imaging and molecular information can remain aligned through each transformation, while provenance, cohort-aware validation, and reviewable outputs help researchers examine whether a finding is consistent across samples, scanners, staining conditions, and experimental sites.
Pipeline architectures, module by module.
WHAT IT IS
Tracking over time
Cells are detected in every frame and then linked across time, so the record is a set of trajectories rather than an endpoint snapshot.
WHY IT FAILS
Identity, not overlap
Per-frame accuracy says little about whether the same cell kept its identity; a missed division or a swapped label corrupts the whole lineage.
GET HELP WITH
Time-lapse pipelines
Bring a movie whose track table looks plausible but does not replicate; drift, bleaching and linking quality are the things worth measuring first.
Pipeline backbone — reshapes per modality. Select a module for its sub-steps, tools, and deliverable.
Live-Cell Tracking
High confidenceIngest
Read multi-position, multi-channel time-lapse acquisitions from proprietary microscope formats (ND2, CZI, LIF, TIFF series, OME-TIFF) into a harmonized, chunked OME-Zarr/OME-NGFF store with correct temporal and spatial axes, channel indexing, and vendor metadata preserved. Getting axis order, frame interval, and position identity right at ingest is the single most consequential step for all downstream tracking and dynamics analysis.
Operations
- Format detection and reader selectionIdentify proprietary vendor format (ND2, CZI, LIF, TIFF series) and dispatch to the appropriate Bio-Formats reader or AICSImageIO/bioio plugin.
- Dimension order validationAssert that TCZYX axis order is correct; detect and warn on missing T/Z axes, singleton dimensions, or swapped channel/frame axes — a common source of downstream failures.
- Multi-position index constructionBuild a position-to-path index mapping stage-position names/XY coordinates to sub-volumes; emit a manifest JSON for downstream parallelism.
- OME-Zarr conversion and chunkingWrite each position as a chunked OME-Zarr v0.4+ dataset with a T-C-Y-X (or T-C-Z-Y-X) layout; choose chunk shape balancing random single-frame access and whole-track streaming.
- Vendor metadata extractionParse and persist OME-XML metadata (pixel size, frame interval, channel names/wavelengths, objective, NA, binning) from the file header into the OME-Zarr .zattrs / OMERO.
- Frame-count and temporal calibration checkVerify that actual frame count matches expected n_timepoints, detect dropped/duplicate frames, and confirm frame interval consistency across positions.
Inputs
- Proprietary time-lapse microscopy files (ND2, CZI, LIF, TIF series, OME-TIFF)ND2 · CZI · LIF · OME-TIFF · TIFF series · LIF
- Acquisition log or plate-map (positions, conditions, treatment schedule)CSV · JSON · XLSX
Outputs
- Indexed multi-position time-lapse image storeOME-Zarr · OME-TIFF
- Position manifest with axis metadataJSON
QC checks
- Frame count consistency — Confirm actual frame count equals n_timepoints declared in vendor metadata; flag dropped frames.
- Frame interval uniformity — Detect irregular time gaps between frames (>5% deviation from declared interval).
- Pixel-size metadata present — Verify pixel size is non-null and within plausible range (0.05–2 µm/px).
- Channel order sanity — Assert that channel count and names match the experiment manifest; flag swapped channels.
Failure modes it guards against
- Swapped or missing temporal axis — Assert T axis is present and length > 1; cross-check with vendor metadata frame count.
- Frame interval not in metadata — Require frame_interval_s from metadata or experiment manifest; fail closed if absent.
- Incomplete multi-position ingest — Compare ingested position count to manifest; alert on any gap.
- Incorrect pixel calibration from vendor — Cross-check pixel_size_um against known magnification and camera spec; flag outliers.
Tools (10)
Primary reader for >150 proprietary and open microscopy formats; preserves vendor OME-XML metadata including time intervals, stage XY, objective, and channel details.
Python reader/writer for OME-TIFF, OME-Zarr, CZI, LIF, ND2 with consistent xarray-backed dimension labelling (TCZYX).
Write, validate, and read OME-Zarr/OME-NGFF datasets; handles multiscale pyramids, labels, and NGFF tables for time-lapse stores.
- bioioOSS · BSD-3-Clause
Successor/refactor of AICSImageIO; plugin-based reader supporting the same formats with improved extensibility and lazy loading.
- zarrLibrary · MIT
Low-level chunked array storage; underpins ome-zarr-py; used for direct Zarr read/write when building custom ingest pipelines.
- tifffileLibrary · BSD-3-Clause
Read/write TIFF, BigTIFF, OME-TIFF, and pyramidal TIFF; fast NumPy-backed I/O for TIFF-series ingest pipelines.
- OMEROOSS · AGPL-3.0
Institutional image data management server; acts as ingest sink and metadata store; supports OMERO.web rendering and API access for large live-cell datasets.
- python-bioformatsOSS · GPL-2.0-or-later
Python wrapper for Bio-Formats via JPype; enables Bio-Formats format reading and metadata extraction from Python scripts.
- nd2OSS · BSD-3-Clause
Pure-Python reader for Nikon ND2 files; faster than Bio-Formats for large ND2 time-lapse datasets on Nikon systems.
- pylibCZIrwOSS · LGPL-3.0-only (Zeiss dual-license: LGPL-3.0 or commercial)
ZEISS CZI reader; pure-Python access to CZI sub-blocks, metadata, and scenes without Bio-Formats; efficient for large ZEISS time-lapse files.
Metadata captured
| Field | Type | Example | Standard |
|---|---|---|---|
| pipeline_run_id | string | live-cell-run-2026-06-05-pos003 | — |
| software_versions | object | {'bioformats': '7.1.0', 'aicsimageio': '4.14.0', 'python': '3.11', 'container': 'sha256:abc123'} | REMBI |
| input_dataset_uri | uri | s3://client-study/raw/experiment01/pos003.nd2 | OME-NGFF |
| output_dataset_uri | uri | s3://client-study/zarr/experiment01/pos003.zarr | OME-NGFF |
| frame_interval_s | float (second) | 300.0 | OME-XML |
| n_timepoints | int (frame) | 144 | OME-XML |
| n_positions | int (count) | 24 | OME-XML |
| position_id | string | pos_003 | OME-XML |
| channel_names | array | DAPI, GFP, mCherry | OME-XML |
| pixel_size_um | float (micrometer) | 0.325 | OME-XML |
| objective_magnification | float (x) | 20.0 | OME-XML |
| numerical_aperture | float | 0.75 | OME-XML |
| vendor_format | enum | ND2 | — |
| dropped_frames | int (count) | 0 | — |
You get
- Multi-position OME-Zarr store · OME-Zarr
- Position manifest · JSON
References