DaCapo
A framework for easy application of established machine learning techniques on large, multi-dimensional images.
dacapo
allows you to configure machine learning jobs as combinations of
DataSplits,
Architectures,
Tasks,
Trainers,
on arbitrarily large volumes of
multi-dimensional images. dacapo
is not tied to a particular learning
framework, but currently only supports torch
with
plans to support tensorflow
.
Installation and Setup
Currently, python>=3.10 is supported. We recommend creating a new conda environment for dacapo with python 3.10.
conda create -n dacapo python=3.10
conda activate dacapo
Then install DaCapo using pip with the following command:
pip install dacapo-ml
This will install the minimum required dependencies.
You may additionally utilize a MongoDB server for storing outputs. To install and run MongoDB locally, refer to the MongoDB documentation here.
The use of MongoDB, as well as specifying the compute context (on cluster or not) should be specified in the dacapo.yaml
in the main directory.
Functionality Overview
Tasks we support and approaches for those tasks:
Instance Segmentation
Affinities
Local Shape Descriptors
Semantic segmentation
Signed distances
One-hot encoding of different types of objects
Example Tutorial
A minimal example tutorial can be found in the examples directory and opened in colab here:
Helpful Resources & Tools
Chunked data, zarr, and n5
OME-Zarr: a cloud-optimized bioimaging file format with international community support (doi: 10.1101/2023.02.17.528834)
Videos about N5 and Fiji can be found in this playlist. For other questions, join the discussion on the Image.sc forum.
Read about chunked storage plugins in Fiji in this blog: N5 plugins for Fiji
Script for converting tif to zarr can be found here
Segmentations
A description of local shape descriptors used for affinities task. Read the blog here. Example image from the blog showing the difference between segmentations:
CellMap Models
GitHub Repo of published models
For example, the COSEM trained pytorch networks are located here.
-
Example of unprocessed distance predictions
Example of refined segmentations that have undergone post-processing (e.g., thresholding, masking, smoothing)
Example of groundtruth data
Visualization
Citing this repo
If you use our code, please cite us and spread the news!
@article{Patton_DaCapo_a_modular_2024,
author = {Patton, William and Rhoades, Jeff L. and Zouinkhi, Marwan and Ackerman, David G. and Malin-Mayor, Caroline and Adjavon, Diane and Heinrich, Larissa and Bennett, Davis and Zubov, Yurii and Project Team, CellMap and Weigel, Aubrey V. and Funke, Jan},
doi = {10.48550/arXiv.2408.02834},
journal = {arXiv-cs.CV},
title = {{DaCapo: a modular deep learning framework for scalable 3D image segmentation}},
year = {2024}
}