Skip to main content

CUDA-accelerated CellStitch 3D labeling using Instanseg segmentation.

Project description

CellStitch-Cuda: CUDA-accelerated CellStitch 3D labeling.

cuda-version

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

img-a img-b

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cellstitch_cuda-1.0.0.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cellstitch_cuda-1.0.0-py3-none-any.whl (3.9 kB view details)

Uploaded Python 3

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

Hashes for cellstitch_cuda-1.0.0.tar.gz
Algorithm Hash digest
SHA256 dd082fa44b922eb408301e49629ca1bf74c0be7dda91ec942275cb4d2d9f55f6
MD5 fb0491262a2cbdd294ea00b2c59822c9
BLAKE2b-256 dc437a542ecb62132bf2458309250bc1050fd8822d51a26722a3fbcf523a6338

See more details on using hashes here.

File details

Details for the file cellstitch_cuda-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for cellstitch_cuda-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f8a6180ce1fa37bc3b5e2813cd035fb70d73646b786c4733dfec8e28712ea7f5
MD5 a7f1a0c8dbd8a0840a01e39d1d5dddc9
BLAKE2b-256 592f8e4f649e606a997db2372950ecb51d1c6494d29c9a8c1215f6105d811287

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page