Skip to main content

Acia: Automated single-cell image analysis

CI PyPI version Python versions Docs License: MIT

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-sam and omnipose pin 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:

  1. Open your first file — one API for every format
  2. The sequence model — THWC and lazy slicing
  3. Look at your data — viewers, scale bars, videos
  4. Calibration and units — µm² instead of px²
  5. 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)

Source distribution for acia 0.4.0
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)

Table of built distributions (wheels) for acia 0.4.0
File Interpreter ABI Platform Actions
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 log

Release 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 log

Security 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.

Select from 2 files

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 log

A 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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page