CUDA-accelerated CellStitch 3D labeling using Instanseg segmentation.
Project description
CellStitch-Cuda: CUDA-accelerated CellStitch 3D labeling.
About this repo
An overhaul of the CellStitch algorithm, developed by Yining Liu and Yinuo Jin (original repository), publication can be found here.
Some major adjustments:
- Replaced NumPy with CuPy for GPU-accelerated calculations.
- Replaced nested for-loops with vectorized calculations for dramatic speedups (~100x).
- Included novel segmentation method InstanSeg, which enables multichannel inputs (repo and publication).
- An all-in-one method that takes an ZCYX-formatted .tif file, performs the correct transposes, and writes stitched labels.
- Included a histogram-based bleach correction to adjust for signal degradation over the Z-axis (originally developed for ImageJ in (Miura 2020) and released for Python by marx-alex in napari-bleach-correct).
Some comparisons
Installation
Notes
This setup has so far only been verified on Windows-based, CUDA-accelerated machines. Testing has only been performed on CUDA 12.x. There are no reasons why 11.x should not work (check instructions), but your mileage may vary.
Conda setup
conda create -n cellstitch-instanseg python=3.9
conda activate cellstitch-instanseg
Clone repo and install
conda install git
git clone https://github.com/Tomvl117/cellstitch-instanseg.git
cd cellstitch-instanseg
pip install -e .
conda install pytorch pytorch-cuda=12.1 -c conda-forge -c pytorch -c nvidia
You may replace the version number for pytorch-cuda with whatever is applicable for you.
Additional steps for CUDA 11.x
pip uninstall cupy-cuda12x
pip install cupy-cuda11x
Instructions
From an image
from cellstitch_cuda.pipeline import cellstitch_cuda
img = "path/to/image.tif"
# or feed img as a numpy ndarray
3d_masks = cellstitch_cuda(img)
From pre-existing orthogonal labels
from cellstitch_cuda.pipeline import full_stitch
# Define xy_masks, yz_masks, xz_masks in some way
3d_masks = full_stitch(xy_masks, yz_masks, xz_masks)
References
Goldsborough, T., O’Callaghan, A., Inglis, F., Leplat, L., Filbey, A., Bilen, H., & Bankhead, P. (2024) A novel channel invariant architecture for the segmentation of cells and nuclei in multiplexed images using InstanSeg. bioRxiv, 2024.09.04.611150. doi: 10.1101/2024.09.04.611150
Liu, Y., Jin, Y., Azizi, E., & Blumberg, E. (2023) Cellstitch: 3D cellular anisotropic image segmentation via optimal transport. BMC Bioinformatics, 24(480). doi: 10.1186/s12859-023-05608-2
Miura, K. (2020) Bleach correction ImageJ plugin for compensating the photobleaching of time-lapse sequences. F1000Res, 9:1494. doi: 10.12688/f1000research.27171.1
Stringer, C., Wang, T., Michaelos, M., & Pachitariu, M. (2021) Cellpose: a generalist algorithm for cellular segmentation. Nature Methods, 18(1), 100-106. doi: 10.1038/s41592-020-01018-x
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cellstitch_cuda-1.0.0.tar.gz.
File metadata
- Download URL: cellstitch_cuda-1.0.0.tar.gz
- Upload date:
- Size: 4.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.9.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd082fa44b922eb408301e49629ca1bf74c0be7dda91ec942275cb4d2d9f55f6
|
|
| MD5 |
fb0491262a2cbdd294ea00b2c59822c9
|
|
| BLAKE2b-256 |
dc437a542ecb62132bf2458309250bc1050fd8822d51a26722a3fbcf523a6338
|
File details
Details for the file cellstitch_cuda-1.0.0-py3-none-any.whl.
File metadata
- Download URL: cellstitch_cuda-1.0.0-py3-none-any.whl
- Upload date:
- Size: 3.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.9.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f8a6180ce1fa37bc3b5e2813cd035fb70d73646b786c4733dfec8e28712ea7f5
|
|
| MD5 |
a7f1a0c8dbd8a0840a01e39d1d5dddc9
|
|
| BLAKE2b-256 |
592f8e4f649e606a997db2372950ecb51d1c6494d29c9a8c1215f6105d811287
|