Skip to main content

GPU-accelerated image processing in napari using OpenCL

Project description

napari-pyclesperanto-assistant

Image.sc forum website License PyPI Python Version tests codecov Development Status napari hub DOI

The py-clEsperanto-assistant is a yet experimental napari plugin for building GPU-accelerated image processing workflows. It is part of the clEsperanto project and thus, aims at removing programming language related barriers between image processing ecosystems in the life sciences. It uses pyclesperanto and with that pyopencl as backend for processing images.

This napari plugin adds some menu entries to the Tools menu. You can recognize them with their suffix (clEsperanto) in brackets. Furthermore, it can be used from the napari-assistant graphical user interface. Therefore, just click the menu Tools > Utilities > Assistant (clEsperanto).

Installation

It is recommended to install the assistant via conda:

conda create --name cle_39 python==3.9
conda activate cle_39 
conda install -c conda-forge pyopencl napari
pip install napari-pyclesperanto-assistant

Usage

Start up the assistant

Start up napari, e.g. from the command line:

napari

Load example data, e.g. from the menu File > Open Samples > clEsperanto > CalibZAPWfixed and start the assistant from the menu Tools > Utilities > Assistant (clEsperanto). Select a GPU in case you are asked to.

In case of two dimensional timelapse data, an initial conversion step might be necessary depending on your data source. Click the menu Tools > Utilities > Convert to 2d timelapse. In the dialog, select the dataset and click ok. You can delete the original dataset afterwards:

Set up a workflow

Choose categories of operations in the top right panel, for example start with denoising using a Gaussian Blur with sigma 1 in x and y.

Continue with background removal using the top-hat filter with radius 5 in x and y.

For labeling the objects, use Voronoi-Otsu-Labeling with both sigma parameters set to 2.

The labeled objects can be extended using a Voronoi diagram to derive a estimations of cell boundaries.

You can then configure napari to show the label boundaries on top of the original image:

When your workflow is set up, click the play button below your dataset:

Code generation

You can also export your workflow as Python/Jython code or as notebook. See the napari-assistant documentation for details.

Features

pyclesperanto offers various possibilities for processing images. It comes from developers who work in life sciences and thus, it may be focused towards processing two- and three-dimensional microscopy image data showing cells and tissues. A selection of pyclesperanto's functionality is available via the assistant user interface. Typical workflows which can be built with this assistant include

  • image filtering
    • denoising / noise reduction (mean, median, Gaussian blur)
    • background subtraction for uneven illumination or out-of-focus light (bottom-hat, top-hat, subtract Gaussian background)
    • grey value morphology (local minimum, maximum. variance)
    • gamma correction
    • Laplace operator
    • Sobel operator
  • combining images
    • masking
    • image math (adding, subtracting, multiplying, dividing images)
    • absolute / squared difference
  • image transformations
    • translation
    • rotation
    • scale
    • reduce stack
    • sub-stacks
  • image projections
    • minimum / mean / maximum / sum / standard deviation projections
  • image segmentation
    • binarization (thresholding, local maxima detection)
    • labeling
    • regionalization
    • instance segmentation
    • semantic segmentation
    • detect label edges
    • label spots
    • connected component labeling
    • Voronoi-Otsu-labeling
  • post-processing of binary images
    • dilation
    • erosion
    • binary opening
    • binary closing
    • binary and / or / xor
  • post-processing of label images
    • dilation (expansion) of labels
    • extend labels via Voronoi
    • exclude labels on edges
    • exclude labels within / out of size / value range
    • merge touching labels
  • parametric maps
    • proximal / touching neighbor count
    • distance measurements to touching / proximal / n-nearest neighbors
    • pixel count map
    • mean / maximum / extension ratio map
  • label measurements / post processing of parametric maps
    • minimum / mean / maximum / standard deviation intensity maps
    • minimum / mean / maximum / standard deviation of touching / n-nearest / neighbors
  • neighbor meshes
    • touching neighbors
    • n-nearest neighbors
    • proximal neighbors
    • distance meshes
  • measurements based on label images
    • bounding box 2D / 3D
    • minimum / mean / maximum / sum / standard deviation intensity
    • center of mass
    • centroid
    • mean / maximum distance to centroid (and extension ratio shape descriptor)
    • mean / maximum distance to center of mass (and extension ratio shape descriptor)
  • code export
    • python / Fiji-compatible jython
    • python jupyter notebooks
  • pyclesperanto scripting
    • cell segmentation
    • cell counting
    • cell differentiation
    • tissue classification

For developers

Getting the recent code from github and locally installing it

git clone https://github.com/clesperanto/napari_pyclesperanto_assistant.git
cd napari_pyclesperanto_assistant
pip install -e .

Optional: Also install pyclesperantos recent source code from github:

git clone https://github.com/clEsperanto/pyclesperanto_prototype.git
cd pyclesperanto_prototype
pip install -e .

Feedback and contributions welcome!

clEsperanto is developed in the open because we believe in the open source community. See our community guidelines. Feel free to drop feedback as github issue or via image.sc

Imprint

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

napari_pyclesperanto_assistant-0.16.0.tar.gz (239.0 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file napari_pyclesperanto_assistant-0.16.0.tar.gz.

File metadata

  • Download URL: napari_pyclesperanto_assistant-0.16.0.tar.gz
  • Upload date:
  • Size: 239.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/29.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.6.4 keyring/23.0.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for napari_pyclesperanto_assistant-0.16.0.tar.gz
Algorithm Hash digest
SHA256 4c566c4595b6433d3a0f8083ab1d6e9d67bb6a3af71025a7e8be6bdfc7c4dd40
MD5 50a54661b0c403bb6f14da34b4e95562
BLAKE2b-256 f56f9928202b374b57a1f047e6f42242cb9fddf2afa24e02a6b43d1082956102

See more details on using hashes here.

File details

Details for the file napari_pyclesperanto_assistant-0.16.0-py3-none-any.whl.

File metadata

  • Download URL: napari_pyclesperanto_assistant-0.16.0-py3-none-any.whl
  • Upload date:
  • Size: 254.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/29.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.6.4 keyring/23.0.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for napari_pyclesperanto_assistant-0.16.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9a0ad4ab1a4c9bbf15084e1be7ea6785f5ef294124f40aabdb14c2942e003ae6
MD5 5084a219c0ce500b10f72569cc9e142e
BLAKE2b-256 1b06cf2da93459451ee63ef91c0e08916615ced8f56932759d090cf5ca17ddfd

See more details on using hashes here.

Supported by

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