Converters Overview
All converters in this package follow the same Fractal Compound Task structure and share common parameters. This page provides an overview of the shared parameters and how the converters work, as well as links to the individual guides for each supported microscope.
Main Parameters
All init tasks accept the following parameters:
| Parameter | Type | Description |
|---|---|---|
Acquisitions |
list |
List of acquisition objects (microscope-specific, see below). |
Converter Options |
ConverterOptions |
Advanced converter options (tiling, registration, writer mode). Defaults are usually fine. |
Overwrite |
OverwriteMode |
What to do if output already exists: No Overwrite (default), Overwrite, or Extend. |
Acquisition Parameters
Every acquisition object starts with Path and ends with Advanced, whatever converter-specific fields come in between:
| Field | Type | Default | Description |
|---|---|---|---|
Path |
str |
required | Path to the raw acquisition directory or file. |
Advanced |
AcquisitionOptions |
{} |
Advanced options including Condition Table Path and acquisition detail overrides. See Acquisition Options (Advanced) below. |
HCS (plate) acquisitions
HCS converters add the following plate-specific fields:
| Field | Type | Default | Description |
|---|---|---|---|
Plate Name |
str or null |
null |
Custom plate name. If not set, the directory name is used. |
Acquisition Id |
int |
0 |
Identifies the acquisition when combining multiple acquisitions into one plate. |
Some HCS converters add further fields — Layout for ScanR, Image Extension for CellVoyager, and Z Processing for CQ3K, CellVoyager and MD ImageXpress. See the individual converter pages for details.
If multiple acquisitions need to be combined into a single plate, simply provide multiple acquisition objects with the same Plate Name, but different Acquisition Id values (e.g. in case of multiplexed experiments).
Single-image acquisitions
Single-image converters (e.g., Custom TIFF Single Image) add:
| Field | Type | Default | Description |
|---|---|---|---|
Image Name |
str or null |
null |
Custom output OME-Zarr image name. If not set, the directory or file name is used. |
Acquisition Options (Advanced)
The Advanced field on each acquisition allows per-acquisition overrides and filtering. Most users only need Condition Table Path here.
| Field | Type | Default | Description |
|---|---|---|---|
Channels |
list[ChannelInfoUI] or null |
null |
Override channel names, wavelength ids and colors. The list is positional for most converters; the CQ3K and CellVoyager converters instead key each entry by instrument channel number, so only the channels to change need an entry. |
Pixel Size Information |
PixelSizeModel or null |
null |
Override pixel size (Pixelsize, Z Spacing, T Spacing in micrometers). |
Condition Table Path |
str or null |
null |
Absolute path to a condition table CSV file. |
Axes |
str or null |
null |
Override axes string (e.g., "czyx"). |
Data Type |
DataTypeEnum |
"autodetect" |
Pixel data type of the output: autodetect, uint8, uint16 or uint32. autodetect infers it from the input images. |
Stage Orientation |
StageOrientation |
{} |
Flip or swap stage axes (see below). |
Filters |
list |
[] |
Filters selecting which tiles are converted (see below). |
Stage Orientation
If the microscope stage orientation does not match the expected coordinate system, you can apply corrections:
| Field | Type | Default | Description |
|---|---|---|---|
Flip X |
bool |
false |
Flip positions along the X axis. |
Flip Y |
bool |
false |
Flip positions along the Y axis. |
Swap XY |
bool |
false |
Swap the X and Y axes. |
Filters
Filters is a list of filter objects, each identified by its Name. Most of them take a Mode of Include (keep only the matching tiles) or Exclude (drop them), defaulting to Include:
| Name | Mode | Selects on |
|---|---|---|
Path Regex Filter |
yes | Regex matched against the tile's file path. |
Well Filter |
yes | Wells — a list of well IDs (e.g. ["A1", "B2"]). Plates only. |
Acquisition Filter |
yes | Acquisitions — a list of acquisition indices. Plates only. |
Channel Filter |
yes | Channel Labels — a list of channel labels. |
FOV Name Filter |
yes | Regex matched against the field of view name. |
Attribute Filter |
yes | Key and Values — any tile attribute. |
Z Range Filter |
no | Min Z / Max Z — keeps tiles whose starting Z position lies in the range. |
Time Range Filter |
no | Min T / Max T — keeps tiles whose starting time point lies in the range. |
In the Python API a filter is a plain dict:
advanced = {
"filters": [
{"name": "Path Regex Filter", "mode": "Exclude", "regex": r"_Median\.zarr"},
{"name": "Well Filter", "mode": "Include", "wells": ["A1", "B2"]},
]
}
Converter Options
The Converter Options parameter controls how tiles are assembled, written, and stored. The defaults work well for most cases — only adjust these if you have specific requirements. It has five sections: Writer Mode, Grouping, Stage Position Corrections, OME-Zarr Options and Runtime Settings.
Grouping
Controls how individual fields of view (FOVs) are turned into output images.
| Mode | Description |
|---|---|
Mosaic (default) |
Aggregate all FOVs of an acquisition into one OME-Zarr image, arranged by the nested Tiling Strategy. |
Per-FOV |
Write each FOV as its own OME-Zarr image — no mosaic, and no tiling strategy. |
Under Mosaic, Tiling Strategy picks how the FOVs are arranged:
| Strategy | Description |
|---|---|
Auto (default) |
Uses Snap to Grid if the positions align to a grid, otherwise falls back to Snap to Corners. Takes a Tiling Tolerance (in pixels), default 1. |
Snap to Grid |
Tiles images onto a regular grid. Only works if stage positions align to a grid (with possible overlap). Also takes a tolerance. |
Snap to Corners |
Tiles images onto a grid defined by the corner positions of the FOVs. |
Inplace |
Writes tiles at their original stage positions without snapping. May produce artifacts if stage positions are imprecise. |
Writer Mode
Controls how image data is loaded into memory and written to disk.
| Mode | Description |
|---|---|
By FOV (default) |
Loads and writes one FOV at a time. Good balance of speed and memory usage. |
By Tile |
Writes one tile (single Z/C/T plane) at a time. Lowest memory usage but slower. |
By FOV (Using Dask) |
Parallel FOV writing via Dask. Faster but uses more memory. |
By Tile (Using Dask) |
Parallel tile writing via Dask. |
In Memory |
Loads all data into memory before writing. Fastest but requires enough RAM. |
Stage Position Corrections
Corrections applied to the stage positions before the image is written.
| Field | Type | Default | Description |
|---|---|---|---|
Remove XY Offset |
Keep or Global |
Global |
Global shifts all positions together so the image XY origin is 0. Keep uses them as-is, which fails on a negative position and pads the origin on a positive one. |
Remove Z Offset |
Keep, Per-FOV or Global |
Global |
As above for Z; Per-FOV shifts each field of view independently to Z origin 0. |
Remove T Offset |
Keep or Global |
Global |
As above for the time axis. |
Remove XY Jitter |
bool |
true |
Correct minor stage positioning errors across FOVs. |
Reindex Channels |
bool |
true |
Pack the channels present in the acquisition into a dense 0-based axis. Disable it to keep the instrument's channel numbering, which writes the channels the acquisition did not use as empty planes. |
OME-Zarr Options
Controls the output OME-Zarr format.
| Field | Type | Default | Description |
|---|---|---|---|
Resolution Levels |
Number of Levels or Custom Names |
5 levels | Number of Levels creates that many levels with the default names (0, 1, …); Custom Names takes an explicit Level Names list, highest resolution first. |
Chunking Strategy |
Same as FOV or Fixed Size |
Same as FOV |
How to chunk the data on disk (see below). |
Sharding Strategy |
No Sharding or Multiple of Chunks |
No Sharding |
How storage chunks are grouped into shards (see below). Requires NGFF Version "0.5". |
NGFF Version |
str |
"0.4" |
OME-NGFF specification version to target ("0.4" or "0.5"). |
Table Backend |
str |
"csv" |
Backend for storing tables. One of: anndata, json, csv, parquet. |
Chunking strategies:
Chunk size matches the FOV dimensions, optionally scaled.
| Field | Default | Description |
|---|---|---|
XY Scaling Factor |
1 |
Scale factor for XY chunk size relative to FOV (0.25, 0.5, 1, 2, 4). |
Chunk Size for Z |
10 |
Chunk size for the Z dimension. |
Chunk Size for C |
1 |
Chunk size for the C (channel) dimension. |
Chunk Size for T |
1 |
Chunk size for the T (time) dimension. |
Fixed chunk size in pixels, independent of FOV dimensions.
| Field | Default | Description |
|---|---|---|
Chunk Size for XY |
4096 |
Chunk size in pixels for XY dimensions. |
Chunk Size for Z |
10 |
Chunk size for the Z dimension. |
Chunk Size for C |
1 |
Chunk size for the C (channel) dimension. |
Chunk Size for T |
1 |
Chunk size for the T (time) dimension. |
Sharding strategies (OME-NGFF 0.5 / zarr format 3 only):
Every chunk is stored as its own object (no sharding).
A fixed number of chunks per axis is grouped into one shard (one object on disk). A shard is the atomic write unit, so prefer the Dask writer modes (which write one shard at a time) or keep shards no larger than a field of view; otherwise every write re-encodes the shards it touches.
| Field | Default | Description |
|---|---|---|
Chunks per Shard in XY |
4 |
Number of chunks per shard along X and along Y. |
Chunks per Shard in Z |
1 |
Number of chunks per shard along Z. |
Chunks per Shard in C |
1 |
Number of chunks per shard along C. |
Chunks per Shard in T |
1 |
Number of chunks per shard along T. |
Runtime Settings
How the conversion itself is executed. These do not change the output, only how it is produced.
| Field | Type | Default | Description |
|---|---|---|---|
Use Zarrs Codec Pipeline |
bool |
false |
Read and write image data with the zarrs Rust backend, which is usually faster. Requires the optional zarrs dependency. |
Dask Scheduler |
Default, Threads, Processes or Synchronous |
Default |
How the work is parallelized. Default leaves the environment's own settings unchanged; Synchronous runs sequentially. |
Temporary JSON Options |
TempJsonOptions |
see below | Where and when intermediate conversion data is stored on disk. |
Temporary JSON Options takes a Temporary Storage URL (default {zarr_dir}/_tmp_json), a Serialization mode (Auto, Memory or JSON) and a Max In-Memory Bytes threshold (default 10 MiB) above which Auto spills to disk.
Overwrite Modes
All converters support three overwrite modes when the output plate already exists:
No Overwrite(default): The converter will raise an error if the output plate already exists, preventing accidental data loss.Overwrite: The converter will delete the existing plate and create a new one from scratch.Extend: The converter will add new acquisitions to the existing plate, and it will ignore any acquisitions that are already present. This mode can be used to incrementally add acquisitions to a plate without reprocessing everything, or to recover from an error by re-running only the failed acquisition.