napari-omero

napari/OMERO interoperability


    Learn more:

    License Version Python Version CI

    This package provides interoperability between the OMERO image management platform, and napari: a fast, multi-dimensional image viewer for python.

    It provides a GUI interface for browsing an OMERO instance from within napari, as well as command line interface extensions for both OMERO and napari CLIs.

    demo

    Features

    • GUI interface to browse remote OMERO data, with thumbnail previews.
    • Loads remote nD images from an OMERO server into napari
    • Planes are loading on demand as sliders are moved ("lazy loading").
    • session management (login memory)
    • OMERO rendering settings (contrast limits, colormaps, active channels, current Z/T position) are applied in napari

    as a napari dock widget

    To launch napari with the OMERO browser added, install this package and run:

    napari-omero

    The OMERO browser widget can also be manually added to the napari viewer:

    import napari
    
    viewer = napari.Viewer()
    viewer.window.add_plugin_dock_widget('napari-omero')
    
    napari.run()

    as a napari plugin

    This package provides a napari reader plugin that accepts OMERO resources as "proxy strings" (e.g. omero://Image:<ID>) or as OMERO webclient URLS.

    viewer = napari.Viewer()
    
    # omero object identifier string
    viewer.open("omero://Image:1")
    
    # or URLS: https://help.openmicroscopy.org/urls-to-data.html
    viewer.open("http://yourdomain.example.org/omero/webclient/?show=image-314")

    these will also work on the napari command line interface, e.g.:

    napari omero://Image:1
    # or
    napari http://yourdomain.example.org/omero/webclient/?show=image-314

    as an OMERO CLI plugin

    This package also serves as a plugin to the OMERO CLI

    omero napari view Image:1
    • ROIs created in napari can be saved back to OMERO via a "Save ROIs" button.
    • napari viewer console has BlitzGateway 'conn' and 'omero_image' in context.

    installation

    Requires python 3.7 - 3.10.

    from conda

    It's easiest to install omero-py from conda, so the recommended procedure is to install everything from conda, using the conda-forge channel

    conda install -c conda-forge napari-omero

    from pip

    napari-omero itself can be installed from pip, but you will still need omero-py

    conda create -n omero -c conda-forge python=3.9 omero-py
    conda activate omero
    pip install napari-omero[all]  # the [all] here is the same as `napari[all]`

    issues

    This is alpha software & some things will be broken or sub-optimal!
    • experimental & definitely still buggy! Bug reports are welcome!
    • remote loading can be very slow still... though this is not strictly an issue of this plugin. Datasets are wrapped as delayed dask stacks, and remote data fetching time can be significant. Plans for asynchronous rendering in napari and tiled loading from OMERO may eventually improve the subjective performance... but remote data loading will likely always be a limitation here. To try asyncronous loading, start the program with NAPARI_ASYNC=1 napari-omero.

    contributing

    Contributions are welcome! To get setup with a development environment:

    # clone this repo:
    git clone https://github.com/tlambert03/napari-omero.git
    # change into the new directory
    cd napari-omero
    # create conda environment
    conda env create -f environment.yml
    # activate the new env
    conda activate napari-omero
    
    # install in editable mode
    pip install -e .

    To maintain good code quality, this repo uses flake8, mypy, and black. To enforce code quality when you commit code, you can install pre-commit

    # install pre-commit which will run code checks prior to commits
    pre-commit install

    The original OMERO data loader and CLI extension was created by Will Moore.

    The napari reader plugin and GUI browser was created by Talley Lambert

    Version:

    • 0.2.0

    Release date:

    • 22 May 2022

    First released:

    • 24 June 2020

    License:

    • BSD-3-Clause

    Supported data:

    • Information not submitted

    GitHub activity:

    • Stars: 23
    • Forks: 8
    • Issues + PRs: 13

    Python versions supported:

    Operating system:

    Requirements:

    • napari (>=0.4.13)
    • omero-py
    • omero-rois

    Sign up to receive updates