{"name":"napari-cryoet-data-portal","display_name":"CryoET Data Portal","visibility":"public","icon":"","categories":[],"schema_version":"0.2.0","on_activate":null,"on_deactivate":null,"contributions":{"commands":[{"id":"napari-cryoet-data-portal.DataPortalWidget","title":"CryoET Data Portal","python_name":"napari_cryoet_data_portal._widget:DataPortalWidget","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-cryoet-data-portal.tomogram_ome_zarr_reader","title":"Read tomograms in the OME-Zarr format","python_name":"napari_cryoet_data_portal._reader:tomogram_ome_zarr_reader","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-cryoet-data-portal.points_annotations_reader","title":"Read points annotations","python_name":"napari_cryoet_data_portal._reader:points_annotations_reader","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-cryoet-data-portal.tomogram_10000_ts_026","title":"Tomogram 10000-TS_026","python_name":"napari_cryoet_data_portal._sample_data:tomogram_10000_ts_026","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-cryoet-data-portal.tomogram_10000_ts_027","title":"Tomogram 10000-TS_027","python_name":"napari_cryoet_data_portal._sample_data:tomogram_10000_ts_027","short_title":null,"category":null,"icon":null,"enablement":null}],"readers":[{"command":"napari-cryoet-data-portal.tomogram_ome_zarr_reader","filename_patterns":["*.zarr"],"accepts_directories":true},{"command":"napari-cryoet-data-portal.points_annotations_reader","filename_patterns":["*.ndjson"],"accepts_directories":false}],"writers":null,"widgets":[{"command":"napari-cryoet-data-portal.DataPortalWidget","display_name":"CryoET Data Portal","autogenerate":false}],"sample_data":[{"command":"napari-cryoet-data-portal.tomogram_10000_ts_026","key":"tomogram-10000-ts-026","display_name":"Tomogram 10000-TS_026"},{"command":"napari-cryoet-data-portal.tomogram_10000_ts_027","key":"tomogram-10000-ts-027","display_name":"Tomogram 10000-TS_027"}],"themes":null,"menus":{},"submenus":null,"keybindings":null,"configuration":[]},"package_metadata":{"metadata_version":"2.1","name":"napari-cryoet-data-portal","version":"0.4.0","dynamic":null,"platform":null,"supported_platform":null,"summary":"List, preview, and open data from the CZII CryoET Data Portal","description":"# napari-cryoet-data-portal\n\n[![MIT License](https://img.shields.io/pypi/l/napari-cryoet-data-portal.svg?color=green)](https://github.com/chanzuckerberg/napari-cryoet-data-portal/raw/main/LICENSE)\n[![Python package index](https://img.shields.io/pypi/v/napari-cryoet-data-portal.svg?color=green)](https://pypi.org/project/napari-cryoet-data-portal)\n[![Supported Python versions](https://img.shields.io/pypi/pyversions/napari-cryoet-data-portal.svg?color=green)](https://python.org)\n[![Test status](https://github.com/chanzuckerberg/napari-cryoet-data-portal/workflows/tests/badge.svg)](https://github.com/chanzuckerberg/napari-cryoet-data-portal/actions)\n[![Code coverage](https://codecov.io/gh/chanzuckerberg/napari-cryoet-data-portal/branch/main/graph/badge.svg)](https://codecov.io/gh/chanzuckerberg/napari-cryoet-data-portal)\n[![napari hub](https://img.shields.io/endpoint?url=https://api.napari-hub.org/shields/napari-cryoet-data-portal)](https://napari-hub.org/plugins/napari-cryoet-data-portal)\n\nList and open tomograms from the CZ Imaging Institute's [CryoET Data Portal] in [napari].\n\n![Plugin showing tomogram TS_043](https://github.com/chanzuckerberg/napari-cryoet-data-portal/assets/2608297/61427a1f-df88-4e12-a680-32b8a10b6e6b)\n\n## Installation\n\nYou can install the latest stable version using [pip]:\n\n pip install napari-cryoet-data-portal\n\nYou will also need to install napari separately as a Python package in the same environment.\nOne way to do that with Qt included is to run:\n\n pip install \"napari[all]\"\n\nbut more generally you should follow the [latest napari installation instructions].\n\n## Usage\n\nSee the following video for a demonstration of basic usage of the plugin.\n\nhttps://github.com/chanzuckerberg/napari-cryoet-data-portal/assets/2608297/51207e08-68af-446a-87bb-3de9c6756d35\n\nClick the *Connect* button to establish a connection to the data portal.\n\n![Connect button and URL to the portal](https://github.com/chanzuckerberg/napari-cryoet-data-portal/assets/2608297/acefbbe8-855a-490b-be44-45a003069b08)\n\nYou can optionally query a subset of datasets, runs, voxel spacings, or tomograms using their corresponding IDs.\nThis can speed up the listing process as the portal grows.\nTo do so, select an ID type in the associated drop-down box from this panel, then enter the IDs of interest separated by commas in the text box next to it.\nFor example, if you only want to list datasets 10000 and 10001, select *Dataset IDs* from the drop-down box and enter the text *10000,10001* in the text box.\nBy default, all datasets are listed.\n\nAfter connecting to the portal, datasets are added below as they are found.\n\n![Datasets and tomograms in the portal shown as an interactive tree](https://github.com/chanzuckerberg/napari-cryoet-data-portal/assets/2608297/7af78e00-bbba-4c5b-a286-fb865ca8cff0)\n\nDatasets and tomograms can be filtered by specifying a regular expression pattern.\n\n![Datasets and tomograms filtered by the text 26, so that only two are shown](https://github.com/chanzuckerberg/napari-cryoet-data-portal/assets/2608297/96a57f4c-290e-4932-aa2d-95d13edd2d8c)\n\nSelecting a dataset displays its metadata, which can be similarly explored and filtered.\n\n![Metadata of dataset 10000 shown as an interactive tree of keys and values](https://github.com/chanzuckerberg/napari-cryoet-data-portal/assets/2608297/b230720a-9083-4e35-a9db-44071c979fcc)\n\nSelecting a tomogram displays its metadata and also opens the lowest resolution tomogram and all of its associated point annotations in the napari viewer.\n\n![Metadata of tomogram TS_026 shown as an interactive tree of keys and values](https://github.com/chanzuckerberg/napari-cryoet-data-portal/assets/2608297/386b3116-ba16-4f5d-840d-4eafa3dc62b0)\n\nHigher resolution tomograms can be loaded instead by selecting a different resolution and clicking the *Open* button.\n\n![Open button and resolution selector showing high resolution](https://github.com/chanzuckerberg/napari-cryoet-data-portal/assets/2608297/d84c93b2-e6e7-43ee-aeb9-acd1a314637e)\n\nIn this case, napari only loads the data that needs to be displayed in the canvas.\nWhile this can reduce the amount of data loaded, it may also cause performance problems when initially opening and exploring the data.\nBy default, opening a new tomogram clears all the existing layers in napari.\nIf instead you want to keep those layers, uncheck the associated check-box in this panel.\n\nIn general, finding and fetching data from the portal can take a long time.\nAll plugin operations that fetch data from the portal try to run concurrently in order to keep interaction with napari and the plugin as responsive as possible.\nThese operations can also be cancelled by clicking the *Cancel* button.\n\n![Progress bar with loading status and cancel button](https://github.com/chanzuckerberg/napari-cryoet-data-portal/assets/2608297/2dc316ae-5231-4159-bc93-785548dbf6a5)\n\n## Contributing\n\nThis is still in early development, but contributions and ideas are welcome!\nDon't hesitate to [open an issue] or [open a pull request] to help improve this plugin.\n\nTo setup a development environment, fork this repository, clone your fork, change into its top level directory and run:\n\n pip install -e \".[testing]\"\n\nThis project adheres to the [Contributor Covenant code of conduct].\nBy participating, you are expected to uphold this code.\nPlease report unacceptable behavior to opensource@chanzuckerberg.com.\n\n## Security\n\nIf you believe you have found a security issue, please see our [security policy] on how to report it.\n\n## License\n\nDistributed under the terms of the [MIT] license, \"napari-cryoet-data-portal\" is free and open source software. See the [license file] for more details.\n\n## Acknowledgements\n\nThis plugin was generated with [Cookiecutter] using [@napari]'s [cookiecutter-napari-plugin] template.\n\n\n[napari]: https://github.com/napari/napari\n[@napari]: https://github.com/napari\n[CryoET Data Portal]: https://chanzuckerberg.github.io/cryoet-data-portal\n[pip]: https://pypi.org/project/pip/\n[Cookiecutter]: https://github.com/audreyr/cookiecutter\n[cookiecutter-napari-plugin]: https://github.com/napari/cookiecutter-napari-plugin\n[MIT]: http://opensource.org/licenses/MIT\n[security policy]: /SECURITY.md\n[license file]: /LICENSE\n[Contributor Covenant code of conduct]: https://github.com/chanzuckerberg/.github/tree/master/CODE_OF_CONDUCT.md\n[open an issue]: https://github.com/chanzuckerberg/napari-cryoet-data-portal/issues\n[open a pull request]: https://github.com/chanzuckerberg/napari-cryoet-data-portal/pulls\n[latest napari installation instructions]: https://napari.org/stable/tutorials/fundamentals/installation.html#install-as-python-package-recommended\n","description_content_type":"text/markdown","keywords":null,"home_page":"https://github.com/chanzuckerberg/napari-cryoet-data-portal","download_url":null,"author":"Andy Sweet","author_email":"andrewdsweet@gmail.com","maintainer":null,"maintainer_email":null,"license":"MIT","classifier":["Development Status :: 4 - Beta","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","Topic :: Scientific/Engineering :: Image Processing"],"requires_dist":["cmap","cryoet-data-portal ~=3.0","fsspec[http,s3]","npe2","numpy","napari >=0.4.19","napari-ome-zarr","ndjson","qtpy","superqt","tox ; extra == 'testing'","pytest ; extra == 'testing'","pytest-cov ; extra == 'testing'","pytest-mock ; extra == 'testing'","pytest-qt ; extra == 'testing'","napari ; extra == 'testing'","pyqt5 ; extra == 'testing'"],"requires_python":">=3.8","requires_external":null,"project_url":["Bug Tracker, https://github.com/chanzuckerberg/napari-cryoet-data-portal/issues","Documentation, https://github.com/chanzuckerberg/napari-cryoet-data-portal#README.md","Source Code, https://github.com/chanzuckerberg/napari-cryoet-data-portal","User Support, https://github.com/chanzuckerberg/napari-cryoet-data-portal/issues"],"provides_extra":["testing"],"provides_dist":null,"obsoletes_dist":null},"npe1_shim":false}