Acia: Automated single-cell image analysis
Accio 🪄 - and your single-cell insights appear - Not quite but - acia - and your single-cell insights appear to become much easier 😉
acia turns a 2D+t time-lapse microscopy file into quantitative single-cell
results. One API reads ND2, CZI, OME-TIFF and folders of TIFFs; physical units
travel with the data from load to result; eight state-of-the-art segmentation and
tracking backends plug in behind one call.
Built for microfluidic live-cell imaging, but nothing in it assumes cells — it works for any objects you can detect in images.
The first five minutes
from acia import ureg
from acia.segm.open import open_sequence
from acia.segm.processor.omnipose import OmniposeSegmenter
from acia.analysis import extract_growth
src = open_sequence("experiment.nd2").position(0) # ND2, CZI, TIFF, folders
src = src[::10, 256:768, 256:768] # lazy: subsample + crop
src = src.with_pixel_size(0.072 * ureg.micrometer) # calibration travels along
overlay = OmniposeSegmenter()(src) # -> detections
table, growth, figure = extract_growth(overlay, src) # -> µm², hours, 1/hour
That is a complete pipeline. growth.doubling_time comes back as a pint
quantity, not a bare float.
What you get
- One reader for every format.
open_sequence()dispatches ND2, CZI, TIFF stacks and folders of per-timepoint TIFFs to a lazy handle that reads metadata without touching pixels — so opening a 100 GB acquisition costs nothing. OMERO, SMB/SAMBA shares and S3 work through the same interface. - numpy-style slicing that never copies.
src[::2, 100:200, 50:150, 0]composes subsampling, cropping and channel selection into a lazy view. - Units that do not get lost. Declare pixel size and frame interval once; they survive slicing, flow into detections as timestamps, and are picked up automatically by the property extractors. Results come out in µm² and hours.
- Segmentation and tracking, swappable. Cellpose, Cellpose-SAM, Omnipose, Contour Proposal Network, YOLO — and trackastra, ultrack, PyUAT, laptrack — behind a uniform call signature, with lazy model loading and GPU autorelease.
- Visualization all the way to publication. Segmentation and tracking overlays, scale bars, timestamps, annotated videos, lineage trees, and an interactive viewer that appears when you put a source at the end of a Jupyter cell.
Installation
pip install acia
Optional readers and backends live behind extras — acia[nd2], acia[czi],
acia[omero], acia[remote], acia[widget].
Note: the segmentation backends are mutually exclusive —
cellpose,cellpose-samandomniposepin conflicting versions, so install exactly one per environment. See the installation guide.
Documentation
Full documentation: https://smlci.github.io/acia-core
New here? The getting-started tutorials are runnable notebooks — open them on Colab and nothing needs installing:
- Open your first file — one API for every format
- The sequence model — THWC and lazy slicing
- Look at your data — viewers, scale bars, videos
- Calibration and units — µm² instead of px²
- Segment and quantify — the full pipeline to a growth rate
For complete published analyses built on acia — growth-rate quantification,
fluorescence co-culture characterization, single-cell oxygen response, and
scaling those across hundreds of sequences — see the companion
acia-workflows
collection.
Developers
git clone https://github.com/SMLCI/acia-core.git
cd acia-core
pip install -e ".[dev]"
pytest
ruff check acia tests
To build the documentation locally (the first build downloads a ~20 MB sample dataset and executes the tutorials):
pip install -e ".[docs,omnipose]" --use-pep517
make docs
Contributions are welcome — see CONTRIBUTING.rst.
License
MIT — see LICENSE.
Metadata
Release files for acia 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| acia-0.4.0.tar.gz | 529.3 kB | With provenance | Details for acia-0.4.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| acia-0.4.0-py3-none-any.whl | Python 3 | none | any | Details for acia-0.4.0-py3-none-any.whl |
Total release size: 851.8 kB
Release files / acia-0.4.0.tar.gz
| Download URL | acia-0.4.0.tar.gz |
|---|---|
| Size | 529.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e359ec1bdce26eac66a91cb74aaee12f934faf146ca6bdf7739b066e95dc6253
|
|
BLAKE2b-256 checksum How to use checksums |
b90facc262d2a0083363dcff729a67e4e291d50435f953ebe29b5e2e7232e216
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.
Transparency logRelease files / acia-0.4.0-py3-none-any.whl
| Download URL | acia-0.4.0-py3-none-any.whl |
|---|---|
| Size | 322.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3277a2c3313c1f66435c347021be6396f271bf4ce84e493b2e00112afba7628d
|
|
BLAKE2b-256 checksum How to use checksums |
28c19b2df80996a5c5f15d5ea25ed31338a956d1bf9a952fd43674625516e257
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.
Transparency logSecurity for acia 0.4.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for acia-0.4.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.