Generate tracks
Tracking uses Trackastra (Weigert lab, ECCV 2024), a track-by-detection model with pretrained weights and no parameters to tune. Turn it on with --track:
uv run omero-screen 12345 --stitch --track # default model general_2d
uv run omero-screen 12345 --stitch --track ctc # another pretrained model--track takes an optional model: a pretrained name or a checkpoint path. On its own it uses general_2d.
How it works
- Tracking runs on the stitched whole-well nucleus mask, so it requires
--stitchand follows cells across field boundaries. - Trackastra relabels the nucleus mask in place, so each nucleus’s label is its
track_id. Cell and cytoplasm measurements are tied to their nucleus by overlap, so they inherit the track ID. - Four columns go into the measurements:
track_idandparent_track_id(curated) plustrack_id_rawandparent_track_id_raw(unchanged tracker output). At a division, both daughters get new track IDs whoseparent_track_idis the mother’s. - On single-timepoint (fixed-cell) plates
--trackdoes nothing: the output is byte-identical to a run without it.
Linking modes
Choose with --track-mode:
| Mode | |
|---|---|
greedy (default) |
Fast greedy linking with divisions |
greedy_nodiv |
Slightly faster, no divisions; rarely useful for cell-cycle work |
ilp |
Integer linear programming: most accurate and slowest. Needs the optional motile solver stack. |
GPU memory
Trackastra’s attention is a dense (heads, N, N) matrix whose memory grows with N², where N ≈ window × detections per frame. A dense well over a long window can run out of GPU memory. By default this is handled for you:
- Tracking runs on the GPU and, from a calibrated estimate of the detections per window, reduces the temporal window until it fits in free VRAM. This is logged as
Auto-reduced temporal window X → Y. A diagnostic line reports the number of frames, objects per frame, effective window and detections per window. --track-window Nforces a window and skips the automatic fit.--track-device cpuruns the identical computation in host RAM. It is slower, but has no VRAM ceiling and keeps the full window: the choice when accuracy matters more than time on the densest wells. Without the option, CUDA is used when available, and CPU otherwise; Apple MPS falls back to CPU.--track-batch-size N(default 4) is the number of windows scored per forward pass. Lower it if you still hit CUDA out-of-memory errors.
Tracks in CellView
Import the plate as usual:
uv run cellview import plate 12345The track columns are picked up automatically, with no schema change, and can be queried alongside intensities, areas and cell-cycle phase.
Next
Open the well in the Tracks widget to overlay tracks, inspect a lineage tree, export one track as CSV, or export the well for Mastodon.