{"name":"napari_psf_analysis","display_name":"napari_psf_analysis","visibility":"public","icon":"","categories":[],"schema_version":"0.1.0","on_activate":null,"on_deactivate":null,"contributions":{"commands":[{"id":"napari_psf_analysis.set_config","title":"Create set_config","python_name":"napari_psf_analysis._dock_widget:set_config","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari_psf_analysis.PsfAnalysis","title":"Create Psf Analysis","python_name":"napari_psf_analysis._dock_widget:PsfAnalysis","short_title":null,"category":null,"icon":null,"enablement":null}],"readers":null,"writers":null,"widgets":[{"command":"napari_psf_analysis.set_config","display_name":"Set Config","autogenerate":false},{"command":"napari_psf_analysis.PsfAnalysis","display_name":"PSF Analysis","autogenerate":false}],"sample_data":null,"themes":null,"menus":{},"submenus":null,"keybindings":null,"configuration":[]},"package_metadata":{"metadata_version":"2.4","name":"napari_psf_analysis","version":"1.2.0","dynamic":null,"platform":null,"supported_platform":null,"summary":"Napari plugin to analyze point spread functions (PSFs).","description":"# napari-psf-analysis\n\n[![License](https://img.shields.io/badge/License-BSD_3--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)\n[![PyPI](https://img.shields.io/pypi/v/napari-psf-analysis.svg?color=green)](https://pypi.org/project/napari-psf-analysis)\n[![Python Version](https://img.shields.io/pypi/pyversions/napari-psf-analysis.svg?color=green)](https://python.org)\n[![tests](https://github.com/fmi-faim/napari-psf-analysis/workflows/tests/badge.svg)](https://github.com/fmi-faim/napari-psf-analysis/actions)\n[![codecov](https://codecov.io/gh/fmi-faim/napari-psf-analysis/branch/main/graph/badge.svg)](https://codecov.io/gh/fmi-faim/napari-psf-analysis)\n[![napari hub](https://img.shields.io/endpoint?url=https://api.napari-hub.org/shields/napari-psf-analysis)](https://napari-hub.org/plugins/napari-psf-analysis)\n\nThis [napari] plugin was generated with [Cookiecutter] using [@napari]'s [cookiecutter-napari-plugin] template.\n\n---\n![application_screenshot](figs/napari-psf-analysis_demo.gif)\n<!-- start abstract -->\nA plugin to analyse point spread functions (PSFs) of optical systems.\n<!-- end abstract -->\n## Usage\n### Starting Point\nTo run a PSF analysis open an image of acquired beads. Add a point-layer\nand indicate the beads you want to measure by adding a point.\n\n### Run Analysis\nOpen the plugin (Plugins > napari-psf-analysis > PSF Analysis) and ensure\nthat your bead image and point layers are select in the `Basic` tab under\n`Image` and `Points` respectively.\nIn the `Advanced` tab further information can be provided. Only the filled\nin fields of the `Advanced` tab are saved in the output.\n\nAfter verifying all input fields click `Extract PSFs`.\n\n### Discard and Save Measurement\nOnce the PSF extraction has finished a new layer (`Analyzed Beads`) appears,\nholding a summary\nimage for every selected bead.\nIndividual summaries can be discarded by clicking the `Delete Displayed\nMeasurement` button.\n\nResults are saved to the selected `Save Dir` by clicking the `Save\nMeasurements` button.\n\nNote: Beads for which the bounding box does not fit within the image are\nautomatically excluded from the analysis and no output is generated.\n\n\n### Saved Data\nEvery image of the `Analyzed Beads` layer is saved as `{source_image_name}_X\n{bead-centroid-x}_Y{bead-centroid-y}_Z{bead-centroid-z}.png` file.\nAdditionally a `PSFMeasurement_{source_image_acquisition_date}_\n{source_image_name}_{microscope_name}_{magnification}_{NA}.csv` file is\nstored containing the measured values and all filled in fields.\n\n---\n<!-- start install -->\n## Installation\nWe recommend installation into a fresh conda environment.\n\n### 1. Install napari\n```shell\nconda create -y -n psf-analysis -c conda-forge python=3.9\n\nconda activate psf-analysis\n\nconda install -c conda-forge napari pyqt\n```\n\n### 2. Install napari-aicsimageio and bioformats\nRequired if you want to open other files than `.tif` e.g. `.stk. `.\n\n__Note:__ See [napari-aicsimageio](https://www.napari-hub.org/plugins/napari-aicsimageio) for more information about opening images.\n```shell\nconda install -c conda-forge openjdk bioformats_jar \"aicsimageio[all]\" napari-aicsimageio\n\nconda deactivate\nconda activate psf-analysis\n```\n\n### 3. Install napari-psf-analysis\nYou can install `napari-psf-analysis` via [pip]:\n\n```shell\npython -m pip install xmlschema\npython -m pip install napari-psf-analysis\n```\n\n### 4. Optional `Set Config`\nYou can provide a config yaml file with the available microscope names and a default save directory.\nThis will change the `Microscope` text field to a drop down menu and change the default save directory.\n\n`example_config.yaml`\n```yaml\nmicroscopes:\n  - TIRF\n  - Zeiss Z1\noutput_path: \"D:\\\\psf_analysis\\\\measurements\"\n```\n\nTo use this config navigate to `Plugins > napari-psf-analysis > Set Config` and select the config file.\n\n__Note:__ The save path is OS specific.\n\n<!-- end install -->\n### 5. Desktop Icon for Windows\nFollow [these instructions](https://twitter.com/haesleinhuepf/status/1537030855843094529) by Robert Haase.\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 [BSD-3] license,\n\"napari-psf-analysis\" is free and open source software\n\n## Issues\n\nIf you encounter any problems, please [file an issue](https://github.com/fmi-faim/napari-psf-analysis/issues) along with a detailed description.\n\n[napari]: https://github.com/napari/napari\n[Cookiecutter]: https://github.com/audreyr/cookiecutter\n[cookiecutter-napari-plugin]: https://github.com/napari/cookiecutter-napari-plugin\n[@napari]: https://github.com/napari\n[BSD-3]: http://opensource.org/licenses/BSD-3-Clause\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":null,"download_url":null,"author":null,"author_email":"Tim-Oliver Buchholz <tim-oliver.buchholz@fmi.ch>, Jan Eglinger <jan.eglinger@fmi.ch>","maintainer":null,"maintainer_email":null,"license":null,"classifier":["Development Status :: 4 - Beta","Framework :: napari","License :: OSI Approved :: BSD License","Operating System :: OS Independent","Programming Language :: Python","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12"],"requires_dist":["bfio<3,>=2.3.6","matplotlib-scalebar<0.10,>=0.9.0","matplotlib<3.9,>=3.1","napari<0.8,>=0.7.0","numpy<3,>=2.2.6","pandas<3,>=2.3.3","pydantic<3,>=2.13.3","pyyaml<7,>=6.0.3","qtpy<2.5,>=2.4.3","scikit-image<0.27,>=0.25.2","scipy<2,>=1.15.2"],"requires_python":">=3.10","requires_external":null,"project_url":["Documentation, https://github.com/fmi-faim/napari-psf-analysis#readme","Issues, https://github.com/fmi-faim/napari-psf-analysis/issues","Source, https://github.com/fmi-faim/napari-psf-analysis"],"provides_extra":null,"provides_dist":null,"obsoletes_dist":null},"npe1_shim":false}