DBDelve
Dive deep into your data. A fast, native, multi-engine database client written in Rust. Free and open source, no telemetry.
Tiled processing of arbitrarily large images — any image, any function.
Translation pending
Developer toolsPythonGitHub @imcfOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Tiled processing of arbitrarily large images — any image, any function.
┌──────┬──────┬──────┐ fn(tile) → labels ┌──────┬──────┬──────┐
│ tile │ tile │ tile │ ─────────────────────► │ 1 │ 2 │ 3 │
├──────┼──────┼──────┤ ├──────┼──────┼──────┤
│ tile │ tile │ tile │ │ 4 │ 5 │ 6 │ globally
├──────┼──────┼──────┤ ├──────┼──────┼──────┤ consistent
│ tile │ tile │ tile │ │ 7 │ 8 │ 9 │ labels
└──────┴──────┴──────┘ └──────┴──────┴──────┘
patchworks splits an image too large for memory into tiles, runs any segmentation function on each tile, and stitches the results into one consistent label image — stored with the image in a single OME-Zarr, with a table of every object.
[!NOTE] On how this was written. Large parts of patchworks were vibe coded — written with heavy LLM assistance rather than line by line. It is covered by a test suite and has been run on real data, so it is not untested, but the usual caveats apply: read the code before you trust it with anything irreplaceable, and please open an issue if something looks off.
pip install patchworks # core
pip install "patchworks[cellpose]" # + Cellpose
pip install "patchworks[bioio,imaris]" # + converting CZI/LIF/ND2/TIFF/.ims to OME-Zarr
pip install "patchworks[napari]" # + viewing and reviewing in napari
pip install "patchworks[all]" # everything above and more
GPU options of the DoG plugin need cupy matching your CUDA version
(pip install cupy-cuda12x). PlantSeg is on conda-forge only. See
Getting started for every
extra.
Python — any function from a tile to labels:
from patchworks import tile_process
from patchworks.plugins.cellpose import cellpose_fn
tile_process("scan.zarr", cellpose_fn("cyto3", gpu=True, diameter=30))
The labels go into scan.zarr/labels/labels, as a multiscale pyramid next
to the image.
Command line — the same building blocks, no script:
patchworks convert scan.czi scan.zarr
patchworks segment scan.zarr --method cellpose --model cyto3 --diameter 30 --gpu
patchworks view scan.zarr
On a cluster — a Snakemake workflow with a pixi environment: convert, segment tile batches as GPU jobs, merge, relate label images (which cell each nucleus is in), and bundle, from one YAML config per segmentation:
cd workflow
pixi run multi-slurm --config my_multi.yaml
patchworks review scan.zarr steps through the
objects most likely to be wrong; corrections flow into the tables.https://imcf.one/patchworks/ — getting started, the cluster workflow, guides, examples and the API reference.
GNU General Public License v3.0 (GPL-3.0). See LICENSE.