Installation

Install BactoScoop into a dedicated Python 3.10 environment. Conda and uv install the same package and dependencies. The public source repository is on GitHub.

Install the latest stable release from PyPI using either environment option below. This guide covers version 0.1.2.

Conda

In Anaconda Prompt or Anaconda PowerShell Prompt:

conda create -n bactoscoop python=3.10 pip -y
conda activate bactoscoop
pip install bactoscoop
python -m pip check
python -c "import bactoscoop; from importlib.metadata import version; print(version('bactoscoop'))"
jupyter lab

uv

After installing uv:

uv venv --python 3.10 .venv
uv pip install --python .venv bactoscoop
uv pip check --python .venv
.\.venv\Scripts\python.exe -c "import bactoscoop; from importlib.metadata import version; print(version('bactoscoop'))"
.\.venv\Scripts\jupyter.exe lab

uv downloads Python 3.10 when necessary. On macOS/Linux, use .venv/bin/python and .venv/bin/jupyter for the last two commands.

Choose a release or development source

The commands above install the latest stable release in a new environment. To update an existing installation, run python -m pip install --upgrade bactoscoop or uv pip install --python .venv --upgrade bactoscoop. For reproducibility, pin this release with python -m pip install bactoscoop==0.1.2.

To install the corresponding tagged GitHub release, run:

python -m pip install "bactoscoop @ git+https://github.com/Bart-Steemans/bactoscoop.git@v0.1.2"

For uv, replace python -m pip install with uv pip install --python .venv. Check the latest GitHub release for newer tags. A development checkout uses an editable install:

git clone https://github.com/Bart-Steemans/bactoscoop.git
cd bactoscoop
python -m pip install -e .

Dependencies

  • numpy>=1.24,<2

  • scipy>=1.11.4,<1.12

  • setuptools>=77.0.3,<81

  • pandas>=2.1.3,<3

  • tifffile>=2024.2.12

  • natsort>=8.4

  • shapely>=2.0.1

  • scikit-image>=0.22

  • opencv-python-headless>=4.9,<4.12

  • networkx>=3.2

  • matplotlib>=3.8

  • tqdm>=4.66

  • omnipose==1.0.6

  • scikit-learn>=1.3

  • pyarrow>=14

  • jupyterlab>=4

  • ipykernel>=6

Omnipose is pinned to 1.0.6 and NumPy remains below 2. PyArrow supplies Parquet export.

Open the examples

Download and extract the release archive for its TIFFs, masks, SVM models, and notebooks; those assets are separate from the wheel. In JupyterLab, select the Python 3.10 analysis kernel and open a walkthrough under examples/. Its first cell copies the input dataset into a fresh folder under ~/bactoscoop_runs/. Supplied masks are reused by default; set RUN_SEGMENTATION=True to run fresh Omnipose inference.

See Quick start and the Three-channel walkthrough: DAPI and GFP-DnaN objects and Five-channel walkthrough: membranes and multichannel profiles walkthroughs.