https://github.com/clesperanto/napari_pyclesperanto_assistant

GPU-accelerated general purpose image processing and image analysis in napari

https://github.com/clesperanto/napari_pyclesperanto_assistant

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
    Links to: frontiersin.org, zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.0%) to scientific vocabulary

Keywords

clesperanto image-processing image-segmentation napari napari-plugin pyopencl

Keywords from Contributors

closember omero
Last synced: 5 months ago · JSON representation

Repository

GPU-accelerated general purpose image processing and image analysis in napari

Basic Info
  • Host: GitHub
  • Owner: clEsperanto
  • License: bsd-3-clause
  • Language: Python
  • Default Branch: master
  • Homepage: http://clesperanto.net
  • Size: 116 MB
Statistics
  • Stars: 35
  • Watchers: 5
  • Forks: 9
  • Open Issues: 15
  • Releases: 62
Topics
clesperanto image-processing image-segmentation napari napari-plugin pyopencl
Created about 5 years ago · Last pushed 10 months ago
Metadata Files
Readme License

README.md

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 (na) or run naparia from the command line.

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 (na).

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:

Neighbor statistics

When working with 2D or 3D data you can analyze measurements in relationship with their neighbors. For example, you can measure the area of blobs as shown in the example shown below using the menu Tools > Measurements > Statistics of labeled pixels (clesperant) and visualize it as area image by double-clicking on the table column (1). Additionally, you can measure the maximum area of the 6 nearest neighbors using the menu Tools > Measurments > Neighborhood statistics of measurements. The new column will then be called "maxnn6area..." (2). When visualizing such parametric images next by each other, it is recommended to use napari-brightness-contrast and visualize the same intensity range to see differences correctly.

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) * statistics of neighbors (See related publication) * code export * python / Fiji-compatible jython * python jupyter notebooks * pyclesperanto scripting * cell segmentation * cell counting * cell differentiation * tissue classification

Installation

It is recommended to install the assistant using mamba. If you have never used mamba before, it is recommended to read this blog post first.

shell mamba create --name cle_39 python=3.9 napari-pyclesperanto-assistant -c conda-forge mamba activate cle_39

Note: This plugin is not compatible with napari 0.6.0 or later.

Mac-users please also install this:

mamba install -c conda-forge ocl_icd_wrapper_apple

Linux users please also install this:

mamba install -c conda-forge ocl-icd-system

You can then start the napari-assistant using this command:

naparia

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

Acknowledgements

This project was supported by the Deutsche Forschungsgemeinschaft under Germany’s Excellence Strategy – EXC2068 - Cluster of Excellence "Physics of Life" of TU Dresden. This project has been made possible in part by grant number 2021-240341 (Napari plugin accelerator grant) from the Chan Zuckerberg Initiative DAF, an advised fund of the Silicon Valley Community Foundation.

Imprint

Owner

  • Name: clEsperanto
  • Login: clEsperanto
  • Kind: organization

GPU-accelerated image processing across languages and platforms

GitHub Events

Total
  • Issues event: 11
  • Watch event: 2
  • Delete event: 4
  • Issue comment event: 24
  • Push event: 13
  • Pull request event: 7
  • Create event: 3
Last Year
  • Issues event: 11
  • Watch event: 2
  • Delete event: 4
  • Issue comment event: 24
  • Push event: 13
  • Pull request event: 7
  • Create event: 3

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 530
  • Total Committers: 8
  • Avg Commits per committer: 66.25
  • Development Distribution Score (DDS): 0.449
Past Year
  • Commits: 11
  • Committers: 1
  • Avg Commits per committer: 11.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Robert Haase h****f 292
haesleinhuepf r****e@g****e 202
Talley Lambert t****t@g****m 20
haesleinhuepf r****e@m****e 8
Justin Kiggins j****s@g****m 4
Johannes Müller 3****r 2
Kevin Yamauchi k****i@g****m 1
Peter Sobolewski 7****D 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 33
  • Total pull requests: 48
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 20 days
  • Total issue authors: 11
  • Total pull request authors: 9
  • Average comments per issue: 3.06
  • Average comments per pull request: 2.35
  • Merged pull requests: 42
  • Bot issues: 0
  • Bot pull requests: 1
Past Year
  • Issues: 6
  • Pull requests: 4
  • Average time to close issues: 4 minutes
  • Average time to close pull requests: 11 days
  • Issue authors: 3
  • Pull request authors: 3
  • Average comments per issue: 2.17
  • Average comments per pull request: 6.0
  • Merged pull requests: 4
  • Bot issues: 0
  • Bot pull requests: 1
Top Authors
Issue Authors
  • haesleinhuepf (12)
  • psobolewskiPhD (8)
  • TimMonko (2)
  • Cryaaa (2)
  • DirkRemmers (2)
  • pr4deepr (1)
  • lazigu (1)
  • malj390 (1)
  • PietroTa (1)
  • StRigaud (1)
  • physlly (1)
  • macromeer (1)
Pull Request Authors
  • haesleinhuepf (35)
  • tlambert03 (5)
  • StRigaud (4)
  • neuromusic (2)
  • github-actions[bot] (1)
  • Cryaaa (1)
  • psobolewskiPhD (1)
  • kevinyamauchi (1)
  • jo-mueller (1)
Top Labels
Issue Labels
help wanted (1)
Pull Request Labels

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 1,433 last-month
  • Total dependent packages: 3
    (may contain duplicates)
  • Total dependent repositories: 1
    (may contain duplicates)
  • Total versions: 80
  • Total maintainers: 1
pypi.org: napari-pyclesperanto-assistant

GPU-accelerated image processing in napari using OpenCL

  • Versions: 71
  • Dependent Packages: 1
  • Dependent Repositories: 1
  • Downloads: 1,433 Last month
Rankings
Dependent packages count: 3.2%
Forks count: 11.5%
Stargazers count: 11.7%
Average: 13.0%
Downloads: 16.3%
Dependent repos count: 22.1%
Maintainers (1)
Last synced: 6 months ago
conda-forge.org: napari-pyclesperanto-assistant
  • Versions: 9
  • Dependent Packages: 2
  • Dependent Repositories: 0
Rankings
Dependent packages count: 19.5%
Dependent repos count: 34.0%
Average: 35.4%
Forks count: 43.4%
Stargazers count: 44.6%
Last synced: 6 months ago

Dependencies

requirements.txt pypi
  • jupyter *
  • jupytext *
  • loguru *
  • magicgui *
  • napari >=0.4.15
  • napari-assistant >=0.2.0
  • napari-plugin-engine >=0.1.4
  • napari-skimage-regionprops >=0.2.0
  • napari-time-slicer >=0.4.0
  • napari-tools-menu >=0.1.8
  • napari-workflows >=0.1.1
  • numpy *
  • pandas *
  • pyclesperanto-prototype >=0.17.1
  • pyopencl *
  • pyperclip *
  • scikit-image *
  • toolz *
.github/workflows/plugin_preview.yml actions
  • actions/checkout v2 composite
  • chanzuckerberg/napari-hub-preview-action v0.1.5 composite
.github/workflows/test_and_deploy.yml actions
  • actions/checkout v2 composite
  • codecov/codecov-action v1 composite
  • conda-incubator/setup-miniconda v2.0.0 composite
  • tlambert03/setup-qt-libs v1 composite
setup.py pypi
.github/workflows/git-bob.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v2 composite