{"name":"napari-omero-downloader-cci","display_name":"Omero Downloader CCI","visibility":"public","icon":"","categories":[],"schema_version":"0.2.1","on_activate":null,"on_deactivate":null,"contributions":{"commands":[{"id":"napari-omero-downloader-cci.open_widget","title":"OmeroDownloaderCCI","python_name":"napari_omero_downloader_cci:OmeroDownloaderWidget","short_title":null,"category":null,"icon":null,"enablement":null}],"readers":null,"writers":null,"widgets":[{"command":"napari-omero-downloader-cci.open_widget","display_name":"OmeroDownloaderWidget","autogenerate":false}],"sample_data":null,"themes":null,"menus":{},"submenus":null,"keybindings":null,"configuration":[]},"package_metadata":{"metadata_version":"2.4","name":"napari-omero-downloader-cci","version":"0.4.6","dynamic":["license-file"],"platform":null,"supported_platform":null,"summary":"A plugin that allows napari to connect to the Omero CCI server to visualize and download image data","description":"# napari-omero-downloader-cci\n\n[![License MIT](https://img.shields.io/pypi/l/napari-omero-downloader-cci.svg?color=green)](https://github.com/CCI-GU-Sweden/napari-omero-downloader-cci/raw/main/LICENSE)\n[![PyPI](https://img.shields.io/pypi/v/napari-omero-downloader-cci.svg?color=green)](https://pypi.org/project/napari-omero-downloader-cci)\n[![Python Version](https://img.shields.io/pypi/pyversions/napari-omero-downloader-cci.svg?color=green)](https://python.org)\n[![tests](https://github.com/CCI-GU-Sweden/napari-omero-downloader-cci/workflows/tests/badge.svg)](https://github.com/CCI-GU-Sweden/napari-omero-downloader-cci/actions)\n[![napari hub](https://img.shields.io/endpoint?url=https://api.napari-hub.org/shields/napari-omero-downloader-cci)](https://napari-hub.org/plugins/napari-omero-downloader-cci)\n[![npe2](https://img.shields.io/badge/plugin-npe2-blue?link=https://napari.org/stable/plugins/index.html)](https://napari.org/stable/plugins/index.html)\n[![Copier](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/copier-org/copier/master/img/badge/badge-grayscale-inverted-border-purple.json)](https://github.com/copier-org/copier)\n\nA plugin that allows napari to connect to the Omero CCI server to visualize and download image data.\n\n---\n\n## Contents\n\n- [Installation](#installation)\n- [Plugin function](#plugin)\n- [Troubleshooting](#troubleshooting)\n\n---\n\n## Installation\n\n## Standalone napari\n\nA standalone version of napari is available at [napari.org](https://napari.org/dev/tutorials/fundamentals/installation_bundle_conda.html), and the plugin is available on the [napari hub](https://napari-hub.org/plugins/napari-omero-downloader-cci.html). Just follow the installation instruction from napari. You can install the plugin from the [plugin manager](#plugin-installation).\n\nOnly work from version v0.3.8 and upward.\n\n## Via Conda Forge\n\n### First napari installation\n\nFirst install miniconda from conda forge: [https://conda-forge.org/download/]. This is mandatory!\n\nRecommanded, create an environment for napari, bundling both napari and omero.\n\n```shell\nconda create -n napari -c conda-forge napari pyqt --yes\nconda activate napari\nnapari\n```\n\nOr you can download from [my github repo](https://github.com/CCI-GU-Sweden/napari-omero-downloader-cci/tree/main/scripts) the install_napari_omero (bat for window, sh for Mac/Linux). This will also install the plugin!\n\n**Note:** conda-forge does *not* provide OMERO-py or ICE bindings for Python ≥3.10.\nWhen installing the plugin via pip, the plugin will install its own OMERO + Ice wheels.\nThis is normal and expected.\n\n### Plugin installation\n\nYou can install the plugin through the napari plugin manager: Plugins -> Install/Uninstall Plugins.. -> search for 'omero'.\n\n![napari plugin](https://raw.githubusercontent.com/CCI-GU-Sweden/napari-omero-downloader-cci/main/assets/napari_omero.png)\n\nThe plugin is named Omero Downloader CCI.\n\nOr you can install `napari-omero-downloader-cci` via [pip]:\n\n```shell\npip install napari-omero-downloader-cci\n```\n\nThis will automatically install:\n\n- Qt (via napari)\n- all plugin dependencies\n\nNo conda required.\n\nWhen you first start the plugin, napari will prompt you to install:\n\n- the correct **zeroc-ice** wheel for your OS and Python version\n- **omero-py 5.21.2**\n\nThe plugin will check and install these for you.\n\nTo install latest development version :\n\n```shell\npip install git+https://github.com/CCI-GU-Sweden/napari-omero-downloader-cci.git\n```\n\n— or, during development —\n\n```shell\npip install -e .\n```\n\nFor power user, the option to install the plugin **without** the dependencies:\n\n```shell\npip install --no-deps napari-omero-downloader-cci\n```\n\nDependency list:\n\n- [dask](https://pypi.org/project/dask/) - to display images\n- [numpy](https://pypi.org/project/numpy/) - to display images\n- [qtpy](https://pypi.org/project/QtPy/) – abstraction layer for Qt (used by napari).\n  A Qt backend (PyQt / PySide) is installed automatically with napari.\n- [zeroc-ice wheel based on your system](https://github.com/glencoesoftware) for the connection handling\n- [omero-py](https://pypi.org/project/omero-py/) version 5.21.2\n\nNapari is also required, but not in the dependency.\n\nPython version support locked by zeroc-ice: from 3.8 to 3.12. Default is python 3.10.\n\n### Python version support\n\nThis plugin supports **Python 3.8 – 3.12**, matching the available zeroc-ice wheels by Glencoe Software.\nNewer Python versions will be supported once Glencoe publishes corresponding wheels.\n\n## Running the plugin after Installation\n\nThe easy step: download from [my github repo](https://github.com/CCI-GU-Sweden/napari-omero-downloader-cci/tree/main/scripts) the start_napari (bat for window, sh for Mac/Linux) and run it. It should open python, activate the env then run napari (can take 10-30 seconds the first time!)\n\nOtherwise, open the conda-forge CLI, then:\n\n```shell\nconda activate napari\nnapari\n```\n\nThe plug will be in the plugin tab.\n\n![plugin](https://raw.githubusercontent.com/CCI-GU-Sweden/napari-omero-downloader-cci/main/assets/plugin.png)\n\n## Plugin\n\nThe plugin requires that you have access to Omero with the following features:\n\n- CLI enable\n- OAuth enable (2FA token)\n\n### Why this plugin?\n\nAnother solution outside of this plugin is available: omero.insight ([openmicroscopy website](https://www.openmicroscopy.org/omero/downloads/)), as well as a FiJi plugin.\n\nHowever, they do not fullfill the prerequiste at the CCI: A simple tool to quickly visualize and download data while being secure with 2FA.\n\n### Login\n\nIn 'Options...', indicate the omero server address and port. The default is the one for the CCI at the University of Gothenburg.\n\n![options](https://raw.githubusercontent.com/CCI-GU-Sweden/napari-omero-downloader-cci/main/assets/options.png)\n\nClick on the link, login on Omero and grab a key. This key is valid only for a certain amount of time and for this session. Generating a new key, or closing your session (via the 'Disconnect') will invalidate the key.\n\nEnter the key in the field and click on 'Connect'.\n\n![login](https://raw.githubusercontent.com/CCI-GU-Sweden/napari-omero-downloader-cci/main/assets/login.png)\n\nThe square next to the connect button is indicating the connection status:\n\n- Red: not connected\n- Yellow: busy\n- Green: ready\n\n### Groups and users\n\nIf you are part of multiple group, you can change group with the drop down menu. If your Omero administrator allows it, you can also see the data of other people in the same group. If data are being imported on the Omero server, you may need to refresh the visualization to be able to see them.\n\n### Queuing data for download\n\nThe data will be organized as a hierachical tree. Project -> Database -> Image.\n\nClicking on the arrow allow you to reveal the contained data.\n\nDouble click to add the element in the 'Download Queue'. Double clicking on a project will queue the whole project. Same for a dataset. However, double clicking on one image will download only this image.\n\nThere is a color on the 'OMERO Data' as well:\n\n- Green: will download all the child of the element\n- Yellow: will partially download the child of the element\n\nYou can remove an element by double clicking on it in the 'Download queue'.\n\n![trees](https://raw.githubusercontent.com/CCI-GU-Sweden/napari-omero-downloader-cci/main/assets/tree.png)\n\n### Data Visualization\n\nIt is possible to visualize the selected data (in the 'OMERO Data' tree) by clicking on the 'Visualize' button. This will download and display only one plane (first time point, middle of stack in case of multi-dimensional image). It is possible to scroll the data, but keep in mind that this is streamed from the Omero server. Do not expect high performance specially if the image is large!\n\n![visualize](https://raw.githubusercontent.com/CCI-GU-Sweden/napari-omero-downloader-cci/main/assets/visualize.png)\n\n### Data Downloading\n\nTo download the data that are queued, select a directory to save them (with the 'Browse...' button) then it the 'Download' button.\n\nThe data will be organized in a similar way that they are on the Omero server. If you have a key-value pair called 'Folder' associated to an image, the image will be nested on level deeper, in this folder.\n\nIn option, if download attachement and key-value pair is enable, these files will also be downloaded alongside the image.\n\n![progressbar](https://raw.githubusercontent.com/CCI-GU-Sweden/napari-omero-downloader-cci/main/assets/progressbar.png)\n\n![folder](https://raw.githubusercontent.com/CCI-GU-Sweden/napari-omero-downloader-cci/main/assets/folder.png)\n\n### Data deletion\n\nThis napari plugin is **NOT** allowed to delete data on the Omero server. If you need to delete data, you should do it via Omero.web.\n\n## Troubleshooting\n\n### ❌ \"No Qt bindings found\"\n\nInstall napari with Qt:\n\n```bash\npip install \"napari[qt]\"\n```\n\n### ❌ \"Cannot import Ice\"\n\nThis means the correct zeroc-ice wheel was not installed.\nCheck your Python version (3.8–3.12) and OS match the supported versions. Search for the correct wheel on [Glencoe](https://github.com/glencoesoftware), then you can install them with (for example, windows and python 3.10):\n\n```bash\npip install @ \"zeroc-ice @ https://github.com/glencoesoftware/zeroc-ice-py-win-x86_64/releases/download/20240325/zeroc_ice-3.6.5-cp310-cp310-win_amd64.whl\"\n```\n\nDo **NOT** install directly zeroc-ice from pip: it will fail.\n\n### ❌ \"Cannot import omero\"\n\nEnsure the plugin was installed normally:\n\n```bash\npip install napari-omero-downloader-cci\n```\n\nIf needed, force the reinstall of omero for the correct version:\n\n```bash\npip install --upgrade \"omero-py == 5.21.2\"\n```\n\n## Contributing\n\nContributions are very welcome. Tests can be run with [tox], please ensure\nthe coverage at least stays the same before you submit a pull request.\n\n## License\n\nDistributed under the terms of the [MIT] license,\n\"napari-omero-downloader-cci\" is free and open source software\n\n## Issues\n\nIf you encounter any problems, please [file an issue] along with a detailed description.\n\n[MIT]: http://opensource.org/licenses/MIT\n[file an issue]: https://github.com/CCI-GU-Sweden/napari-omero-downloader-cci/issues\n[tox]: https://tox.readthedocs.io/en/latest/\n[pip]: https://pypi.org/project/pip/\n","description_content_type":"text/markdown","keywords":null,"home_page":null,"download_url":null,"author":"Simon Leclerc","author_email":"simon.leclerc@gu.se","maintainer":null,"maintainer_email":null,"license":"The MIT License (MIT)\n\nCopyright (c) 2025 Simon Leclerc\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n","classifier":["Development Status :: 2 - Pre-Alpha","Framework :: napari","Intended Audience :: Developers","License :: OSI Approved :: MIT License","Operating System :: OS Independent","Programming Language :: Python","Programming Language :: Python :: 3","Programming Language :: Python :: 3 :: Only","Programming Language :: Python :: 3.8","Programming Language :: Python :: 3.9","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Topic :: Scientific/Engineering :: Image Processing"],"requires_dist":["numpy","qtpy","dask>=2025.9.0","napari[all]; extra == \"all\"","tox; extra == \"testing\"","pytest; extra == \"testing\"","pytest-cov; extra == \"testing\"","pytest-qt; extra == \"testing\"","napari[qt]; extra == \"testing\"","napari-omero-downloader-cci[testing]; extra == \"dev\"","black; extra == \"dev\"","ruff; extra == \"dev\""],"requires_python":"<3.13,>=3.8","requires_external":null,"project_url":["Bug Tracker, https://github.com/CCI-GU-Sweden/napari-omero-downloader-cci/issues","Documentation, https://github.com/CCI-GU-Sweden/napari-omero-downloader-cci#README.md","Source Code, https://github.com/CCI-GU-Sweden/napari-omero-downloader-cci","User Support, https://github.com/CCI-GU-Sweden/napari-omero-downloader-cci/issues"],"provides_extra":["all","testing","dev"],"provides_dist":null,"obsoletes_dist":null},"npe1_shim":false}