{"name":"napari-hierarchical","display_name":"napari-hierarchical","visibility":"public","icon":"","categories":[],"schema_version":"0.2.0","on_activate":null,"on_deactivate":null,"contributions":{"commands":[{"id":"napari-hierarchical.get_reader","title":"Open data with napari-hierarchical","python_name":"napari_hierarchical:napari_get_reader","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-hierarchical.make_groups_widget","title":"Make napari-hierarchical groups widget","python_name":"napari_hierarchical.widgets:QGroupsWidget","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-hierarchical.make_arrays_widget","title":"Make napari-hierarchical arrays widget","python_name":"napari_hierarchical.widgets:QArraysWidget","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-hierarchical.sample_data.imc_mock","title":"Make IMC mock sample data","python_name":"napari_hierarchical.sample_data.imc_mock:make_sample_data","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-hierarchical.sample_data.idr0052A","title":"Make idr0052A sample data","python_name":"napari_hierarchical.sample_data.idr0052A:make_sample_data","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-hierarchical.sample_data.pollen","title":"Make pollen sample data","python_name":"napari_hierarchical.sample_data.pollen:make_sample_data","short_title":null,"category":null,"icon":null,"enablement":null}],"readers":[{"command":"napari-hierarchical.get_reader","filename_patterns":["*"],"accepts_directories":false}],"writers":null,"widgets":[{"command":"napari-hierarchical.make_groups_widget","display_name":"Groups","autogenerate":false},{"command":"napari-hierarchical.make_arrays_widget","display_name":"Arrays","autogenerate":false}],"sample_data":[{"command":"napari-hierarchical.sample_data.imc_mock","key":"imc_mock","display_name":"IMC mock data (Bodenmiller group, University of Zurich)"},{"command":"napari-hierarchical.sample_data.idr0052A","key":"idr0052A","display_name":"3D confocal time-lapse imaging of human condensins (Walther et al., 2018)"},{"command":"napari-hierarchical.sample_data.pollen","key":"pollen","display_name":"3D confocal imaging of a pollen grain (Computer Vision Group, University of Freiburg)"}],"themes":null,"menus":{},"submenus":null,"keybindings":null,"configuration":[]},"package_metadata":{"metadata_version":"2.1","name":"napari-hierarchical","version":"0.1.0","dynamic":null,"platform":null,"supported_platform":null,"summary":"Hierarchical file format support for napari","description":"# napari-hierarchical\n\n[![License MIT](https://img.shields.io/pypi/l/napari-hierarchical.svg?color=green)](https://github.com/BodenmillerGroup/napari-hierarchical/raw/main/LICENSE)\n[![PyPI](https://img.shields.io/pypi/v/napari-hierarchical.svg?color=green)](https://pypi.org/project/napari-hierarchical)\n[![Python Version](https://img.shields.io/pypi/pyversions/napari-hierarchical.svg?color=green)](https://python.org)\n[![tests](https://github.com/BodenmillerGroup/napari-hierarchical/workflows/tests/badge.svg)](https://github.com/BodenmillerGroup/napari-hierarchical/actions)\n[![codecov](https://codecov.io/gh/BodenmillerGroup/napari-hierarchical/branch/main/graph/badge.svg)](https://codecov.io/gh/BodenmillerGroup/napari-hierarchical)\n[![napari hub](https://img.shields.io/endpoint?url=https://api.napari-hub.org/shields/napari-hierarchical)](https://napari-hub.org/plugins/napari-hierarchical)\n\nHierarchical file format support for napari\n\n----------------------------------\n\nThis [napari] plugin was generated with [Cookiecutter] using [@napari]'s [cookiecutter-napari-plugin] template.\n\n\n## Installation\n\nYou can install `napari-hierarchical` via [pip]:\n\n pip install \"napari-hierarchical[all]\"\n\nTo install latest development version :\n\n pip install \"git+https://github.com/BodenmillerGroup/napari-hierarchical.git#egg=napari-hierarchical[all]\"\n\n## Usage\n\nThe plugin enables the reading, editing and writing of container formats. In the plugin, *groups* represent hierarchically structured collections of *arrays*. Each group can hold zero or more arrays and can have zero or more child groups (hierarchical structure). An array is a logical representation of (image) data on disk and directly corresponds to a napari layer when loaded.\n\nFiles can be opened through napari (e.g. `File -> Open File(s)` menu, `Viewer.open(...)` function), as the plugin implements napari's file reader hook. Upon opening a hierarchically structured file, the *Groups* and *Arrays* widgets are displayed. The *Groups* widget allows to browse and restructure the groups tree, while the *Arrays* widget groups arrays from the selected groups by file format-specific metadata (e.g. channel name for MCD files). Selecting arrays also selects the corresponding napari layers, allowing to adjust their properties.\n\nArrays can be loaded individually by toggling their *loaded* state (circular button), which will add napari layers for the corresponding arrays. Similarly, loaded arrays can be shown or hidden by toggling their *visible* state (eye button), which will toggle the visibility of the associated napari layers. The loaded/visible states of groups (collections of arrays) can be toggled in a similar fashion. Arrays are always loaded into memory (no memory mapping), to allow for editing the tree structure. Loaded root groups can be exported to supported hierarchical file formats.\n\nCurrently, reading/writing of HDF5 and Zarr (not: OME-NGFF) files are supported out of the box, as well as reading imaging mass cytometry (IMC) data (i.e., MCD files). For these file formats, sample data is available through the plugin. Additional readers/writers can be implemented using a pluggy-based interface, similar to the first generation `napari-plugin-engine`.\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\n## License\n\nDistributed under the terms of the [MIT] license,\n\"napari-hierarchical\" is free and open source software\n\n\n## Issues\n\nIf you encounter any problems, please [file an issue] along with a detailed description.\n\n[napari]: https://github.com/napari/napari\n[Cookiecutter]: https://github.com/audreyr/cookiecutter\n[@napari]: https://github.com/napari\n[MIT]: http://opensource.org/licenses/MIT\n[BSD-3]: http://opensource.org/licenses/BSD-3-Clause\n[GNU GPL v3.0]: http://www.gnu.org/licenses/gpl-3.0.txt\n[GNU LGPL v3.0]: http://www.gnu.org/licenses/lgpl-3.0.txt\n[Apache Software License 2.0]: http://www.apache.org/licenses/LICENSE-2.0\n[Mozilla Public License 2.0]: https://www.mozilla.org/media/MPL/2.0/index.txt\n[cookiecutter-napari-plugin]: https://github.com/napari/cookiecutter-napari-plugin\n\n[file an issue]: https://github.com/BodenmillerGroup/napari-hierarchical/issues\n\n[napari]: https://github.com/napari/napari\n[tox]: https://tox.readthedocs.io/en/latest/\n[pip]: https://pypi.org/project/pip/\n[PyPI]: https://pypi.org/\n","description_content_type":"text/markdown","keywords":null,"home_page":"https://github.com/BodenmillerGroup/napari-hierarchical","download_url":null,"author":"Jonas Windhager","author_email":"jonas.windhager@uzh.ch","maintainer":null,"maintainer_email":null,"license":"MIT","classifier":["Framework :: napari","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":["napari (<0.4.18,>=0.4.17)","pluggy","qtpy","dask ; extra == 'all'","h5py ; extra == 'all'","readimc ; extra == 'all'","s3fs ; extra == 'all'","zarr ; extra == 'all'","dask ; extra == 'hdf5'","h5py ; extra == 'hdf5'","dask ; extra == 'imc'","readimc ; extra == 'imc'","tox ; extra == 'testing'","pytest ; extra == 'testing'","pytest-cov ; extra == 'testing'","pytest-qt ; extra == 'testing'","napari ; extra == 'testing'","pyqt5 ; extra == 'testing'","dask ; extra == 'zarr'","s3fs ; extra == 'zarr'","zarr ; extra == 'zarr'"],"requires_python":"<3.11,>=3.8","requires_external":null,"project_url":["Bug Tracker, https://github.com/BodenmillerGroup/napari-hierarchical/issues","Documentation, https://github.com/BodenmillerGroup/napari-hierarchical#README.md","Source Code, https://github.com/BodenmillerGroup/napari-hierarchical","User Support, https://github.com/BodenmillerGroup/napari-hierarchical/issues"],"provides_extra":["all","hdf5","imc","testing","zarr"],"provides_dist":null,"obsoletes_dist":null},"npe1_shim":false}