{"name":"napari-TopoStats","display_name":"napari-topostats","visibility":"public","icon":"","categories":["Annotation","Segmentation","Acquisition"],"schema_version":"0.2.1","on_activate":null,"on_deactivate":null,"contributions":{"commands":[{"id":"napari-TopoStats.make_root_widget","title":"TopoStats","python_name":"napari_topostats:TopoStatsRootWidget","short_title":null,"category":null,"icon":null,"enablement":null}],"readers":null,"writers":null,"widgets":[{"command":"napari-TopoStats.make_root_widget","display_name":"TopoStats","autogenerate":false}],"sample_data":null,"themes":null,"menus":{},"submenus":null,"keybindings":null,"configuration":[]},"package_metadata":{"metadata_version":"2.4","name":"napari-TopoStats","version":"0.0.3","dynamic":["license-file"],"platform":null,"supported_platform":null,"summary":"Napari plugin for TopoStats a suite of tools for working with Atomic Force Microscopy Images.","description":"# napari-TopoStats\n\n[![License MIT](https://img.shields.io/pypi/l/napari-loadafm.svg?color=green)](https://github.com/MaxGamill-Sheffield/napari-loadafm/raw/main/LICENSE)\n[![PyPI](https://img.shields.io/pypi/v/napari-loadafm.svg?color=green)](https://pypi.org/project/napari-loadafm)\n[![Python Version](https://img.shields.io/pypi/pyversions/napari-loadafm.svg?color=green)](https://python.org)\n[![tests](https://github.com/MaxGamill-Sheffield/napari-loadafm/workflows/tests/badge.svg)](https://github.com/MaxGamill-Sheffield/napari-loadafm/actions)\n[![codecov](https://codecov.io/gh/MaxGamill-Sheffield/napari-loadafm/branch/main/graph/badge.svg)](https://codecov.io/gh/MaxGamill-Sheffield/napari-loadafm)\n[![napari hub](https://img.shields.io/endpoint?url=https://api.napari-hub.org/shields/napari-loadafm)](https://napari-hub.org/plugins/napari-loadafm)\n\n----------------------------------\n\nThis [napari] plugin was generated with [Cookiecutter] using the [cookiecutter-napari-plugin] template.\n\n<!--\nDon't miss the full getting started guide to set up your new package:\nhttps://github.com/napari/cookiecutter-napari-plugin#getting-started\n\nand review the napari docs for plugin developers:\nhttps://napari.org/stable/plugins/index.html\n-->\n\n## Installation\n\nActivate your Python environment (e.g. Conda) and make sure your Python version is >= 3.10 and < 3.12. An example\nconda enviroment command would be:\n\n    conda create -n napari-env python=3.11\n    conda activate napari-env\n\nWith [Git installed] on your machine, install the napari-TopoStats package from GitHub using [pip][pip].\n\n    pip install git+https://github.com/AFM-SPM/napari-TopoStats.git@main\n\nThis command will install other required modules from GitHub (AFMReader, napari-AFMReader, TopoStats)\n\nYou can then run napari with:\n\n    napari\n\n## Usage\n\nTo load an image into the napari viewer, drag and drop your image file into the window.\nA small window will open prompting you to input the input channel for the image you are loading.\nEnter the channel used by your image (e.g. Height). The loaded image will appear as a layer in the GUI.\nNote: this loading utility comes from [napari-AFMReader].\n\n<img src=\"readme_images/input_channel_window.png\" width=\"800\" alt=\"Input channel window\"/>\n\nTopostats tools can be accessed from the toolbar of napari (top left) as shown.\n\n<img src=\"readme_images/toolbar.png\" width=\"800\" alt=\"Toolbar\"/>\n\nThis will then open a window containing buttons with available functions.\nSelect a layer, then click the button corresponding to the function you want to run on the layer.\n\n<img src=\"readme_images/button_grid.png\" width=\"800\" alt=\"Button Grid\"/>\n\nBefore running the function, you can choose to load a config file using the button and selecting the file.\nBoth json and yaml file formats are supported.\nThis config will be used for the functions you run until you close napari.\nThere is also a button to save that file as the new default (instead of the topostats generated one). This default can\nbe reset to the topostats default at anytime by clicking the Reset Default Config button in the bottom right\nof the main window.\n\n<img src=\"readme_images/config_file.png\" width=\"800\" alt=\"Loading a config file\"/>\n\nWhen you run a function which requires the config, if you haven't loaded a config file manually, a default\nconfiguration is used which will be the config you have set as default if you have set one. If you haven't, the\ntopostats default will be used.\nOnce a config is loaded, either manually or automatically, an edit config button will appear, which opens a window\nallowing the config file to be edited directly through the napari gui. Changes made are not automatically saved\nto the loaded config file, however, the updated config file can be saved as a file with the Save to file button\nat the bottom of the window. In this window, there is also a button to save the edited config file as the new default.\n\n<img src=\"readme_images/edit_config_window.png\" width=\"800\" alt=\"Edit config window\"/>\n\nWhen you run a function for the first time, a window will open with options to adjust for that function\n(which are applied next time the function is run) if that function has options which can be adjusted.\nThere is also a run button in that window. This runs the function on the selected layer (it does exactly the\nsame thing as clicking the function button in the grid). Note this window will only appear if there are options which\ncan be adjusted outside of those in the config file.\n\n<img src=\"readme_images/function_window.png\" width=\"800\" alt=\"Function window\"/>\n\n**Batch Process** is a special function that works the same as if running `topostats process` in the command line,\nusing the config you currently have loaded or the default config (with adjusted options if you have updated your\ndefault) if you haven't loaded a config. If the default is used, a window will appear asking you to select a directory\nwhich contains the data to be processed as well as a directory to save the output files to (which you may want to\ncreate with the new folder button if the directory doesn't exist). Otherwise, the directories defined in the config\nfile will be used. Once these have been defined topostats will process in the background (the output and progress\ncan been seen in the command line). You can carry on using napari while this happens.\n<img src=\"readme_images/batch_process.png\" width=\"800\" alt=\"Function window\"/>\n\nCurrent functions:\n\n1. Load config button allows a config file to be selected from your hard disk.\n2. Run filters requires an image layer to be selected and creates an image layer with topostats filters run.\n3. Run grains requires an image layer to be selected and creates a labels layer with topostats grains detection run.\n4. Make 3D requires an image layer to be selected and creates a 3D image layer. Viewing mode (in the bottom left of\nthe viewer) is automatically switched to 3D.\n5. Run Grainstats requires a labels layer **created by the Run Grains function** to be selected and creates an\ninteractivate table in the dock on the right.\n6. Batch process uses the full topostats pipeline to process a directory of files. View above for details.\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-topostats\" 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[napari-AFMReader]: https://github.com/AFM-SPM/napari-AFMReader\n[Cookiecutter]: https://github.com/audreyr/cookiecutter\n[Git installed]: https://git-scm.com/book/en/v2/Getting-Started-Installing-Git\n[MIT]: http://opensource.org/licenses/MIT\n[cookiecutter-napari-plugin]: https://github.com/napari/cookiecutter-napari-plugin\n[napari]: https://github.com/napari/napari\n[pip]: <https://pypi.org/project/pip/>\n[tox]: https://tox.readthedocs.io/en/latest/\n[file an issue]: https://github.com/AFM-SPM/napari-TopoStats/issues\n","description_content_type":"text/markdown","keywords":"afm,image processing","home_page":null,"download_url":null,"author":null,"author_email":"Max Gamill <mcgamill1@sheffield.ac.uk>, Aran Hobbs <ahobbs834@gmail.com>, Laura Wiggins <l.wiggins@sheffield.ac.uk>, TopoStats Team <topostats@sheffield.ac.uk>","maintainer":null,"maintainer_email":null,"license":"GNU GPLv3 only","classifier":["Development Status :: 2 - Pre-Alpha","Framework :: napari","Intended Audience :: Developers","License :: OSI Approved :: GNU General Public License v3 (GPLv3)","Operating System :: OS Independent","Programming Language :: Python","Programming Language :: Python :: 3","Programming Language :: Python :: 3 :: Only","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Topic :: Scientific/Engineering :: Image Processing"],"requires_dist":["magicgui","napari[all]","qtpy","tox","topostats>=2.4.0","napari-AFMReader","pytest; extra == \"tests\"","pytest-cov; extra == \"tests\"","pytest-qt; extra == \"tests\"","qtpy; extra == \"tests\"","black; extra == \"dev\"","pre-commit; extra == \"dev\"","pylint; extra == \"dev\"","ruff; extra == \"dev\"","build; extra == \"pypi\"","setuptools_scm[toml]; extra == \"pypi\"","wheel; extra == \"pypi\""],"requires_python":"<3.12,>=3.10","requires_external":null,"project_url":null,"provides_extra":["tests","dev","pypi"],"provides_dist":null,"obsoletes_dist":null},"npe1_shim":false}