itasc[all]¶
The full ITASC plugin runs the whole pipeline in one napari widget: segment, track, correct, and quantify, in order, without leaving the viewer. Reach for it when you have dense, motile cells of varying shape and want to go from raw stacks to quantified contacts in one place.
One idea holds the app together: every stage writes its result to disk, and the next stage reads that result back. The project folder is the source of truth, so you can inspect it between stages, hand a single stage to a standalone distribution, or resume from any point.
Install¶
uv tool install napari --with "itasc[all]"
The [all] extra pulls the core scientific stack plus the two workflow engines:
Cellpose-SAM (cellpose, torch, torchvision) and the Ultrack solver. If you
have never installed Python before, the install guide walks
through it from an empty machine, and covers GPU setup, updating, and removal.
From a local checkout, for development:
python -m pip install -e ".[all]"
The project on disk¶
ITASC expects a project directory with one subdirectory per position (pos00,
pos01, …). Within a position, each stage reads the .tif or HDF5 files the
previous stage wrote and writes its own into the next folder:
pos00/
0_input/ raw prepared input stacks
1_cellpose/ Cellpose probability and flow outputs + divergence maps
2_nucleus/ nucleus segmentation, Ultrack database, tracked labels
3_cell/ cell segmentation and tracked labels
nucleus_labels.tif final committed nucleus tracked labels
cell_labels.tif final committed cell tracked labels
contact_analysis.h5 final output: contact graph built from the labels
The numbered folders hold re-runnable working artifacts; the final committed
labels and the contact_analysis.h5 graph built from them sit in the position
root, beside each other. The layout is plain files, so you read the state of a
run by looking at the folder.
📷 Screenshot: a position folder in a file browser, the four numbered stage subdirectories plus the committed labels and
contact_analysis.h5in the root after a full run.
The stages in order¶
The app runs five stages in order. The name in parentheses is the standalone distribution that owns the same stage, for running it on other data on its own.
Provide input. Put the raw prepared stacks under
0_input/.Cellpose. Run the nucleus and cell channels to create probability, flow, and z-average TIFFs under
1_cellpose/, then build the divergence-based foreground and contour maps that seed tracking and segmentation.Nucleus tracking (
itasc-tracking). Build the Ultrack candidate database from the maps, solve the tracks, then correct and validate the nucleus labels under2_nucleus/.Cell segmentation. Turn the cell foreground and contour maps plus the tracked nucleus seeds into tracked cell labels under
3_cell/.Aggregate quantification (
itasc-aggregate). Extract contacts, edges, and T1 events tocontact_analysis.h5in the position root, beside the committed labels, and inspect them in napari.
If your data already sits at a later stage, skip ahead: foreground and contour maps let you start at step 3, tracked cell labels let you start at step 5. The distribution overview maps each entry point to its standalone distribution.
Drive the plugin¶
Start napari and open the plugin:
napari
# then: Plugins > ITASC > ITASC
In the main ITASC widget:
Select a project directory.
Set or load project metadata: pixel size, time interval, condition, position. The widget saves and loads
itasc_config.jsonin the project directory, so the metadata travels with the data.Expand the workflow sections in run order: project status, Cellpose, nucleus tracking, cell segmentation, contact analysis. Each section acts on the current position and writes into its stage folder.
📷 Screenshot: the workflow widget with the Cellpose section expanded, the channel selectors and Run button visible.
To run one of these stages on its own data, outside the full app, install that piece on its own: the distribution overview lists the single-stage distributions and what each one needs.