{"name":"napari-prism","display_name":"napari prism","visibility":"public","icon":"","categories":[],"schema_version":"0.2.1","on_activate":null,"on_deactivate":null,"contributions":{"commands":[{"id":"napari-prism.get_reader","title":"Open data with napari-prism","python_name":"napari_prism.readers._readers:napari_get_reader","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-prism.TMAImageAnalysis","title":"napari-prism.TMAImageAnalysis","python_name":"napari_prism.widgets._tma_ops_widget:TMAImageAnalysisParentWidget","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-prism.AnnDataAnalysis","title":"napari-prism.AnnDataAnalysis","python_name":"napari_prism.widgets._adata_ops_widget:AnnDataAnalysisParentWidget","short_title":null,"category":null,"icon":null,"enablement":null}],"readers":[{"command":"napari-prism.get_reader","filename_patterns":["*.qptiff","*.zarr"],"accepts_directories":true}],"writers":null,"widgets":[{"command":"napari-prism.TMAImageAnalysis","display_name":"TMA Image Analysis","autogenerate":false},{"command":"napari-prism.AnnDataAnalysis","display_name":"AnnData Analysis","autogenerate":false}],"sample_data":null,"themes":null,"menus":{},"submenus":null,"keybindings":null,"configuration":[]},"package_metadata":{"metadata_version":"2.4","name":"napari-prism","version":"0.1.7","dynamic":["license-file"],"platform":null,"supported_platform":null,"summary":"A Python package for the inteRactive and Integrated analySis of Multiplexed tissue microarrays","description":"# PRISM: A **P**ython package for the inte**R**active and **I**ntegrated analy**S**is of **M**ultiplexed tissue microarrays\n\n<!--\n#FUTURE: package logo\n-->\n\n[![License MIT](https://img.shields.io/pypi/l/napari-prism.svg?color=green)](https://github.com/clinicalomx/napari-prism/raw/main/LICENSE)\n[![PyPI](https://img.shields.io/pypi/v/napari-prism.svg?color=green)](https://pypi.org/project/napari-prism)\n[![Python Version](https://img.shields.io/pypi/pyversions/napari-prism.svg?color=green)](https://python.org)\n[![tests](https://github.com/clinicalomx/napari-prism/workflows/tests/badge.svg)](https://github.com/clinicalomx/napari-prism/actions)\n[![codecov](https://codecov.io/gh/clinicalomx/napari-prism/branch/main/graph/badge.svg)](https://codecov.io/gh/clinicalomx/napari-prism)\n[![napari hub](https://img.shields.io/endpoint?url=https://api.napari-hub.org/shields/napari-prism)](https://napari-hub.org/plugins/napari-prism)\n\n**NOTE: PRISM is still in heavy development.**\nPRISM or napari-prism is a package and [napari] plugin designed for interactively processing, analysing and visualising multiplxed tissue microarrays.\n\nCurrently, end-to-end capabilities (i.e. starting from importing the raw image file, to basic spatial analysis of annotated cells) are available for images generated from the\nAkoya Phenocycler™-Fusion platform. However, the modular structure of the\npackage allows for usage at any stage of processing and/or analysis, given a pre-built SpatialData object using readers from either\n[spatialdata-io] or [sopa].\n\nPRISM uses [spatialdata] as the core data framework, allowing for:\n\n1. The rich integration of tools from the ([scverse]) Python bioinformatics ecosystem with highly interactive graphical user interfaces from [napari] and [napari-spatialdata].\n2. The storage of images, shapes, annotations and their linked `AnnData` objects in a standardized, FAIR-compliant data structure, addressing the non-standard and fragmented organization of files before, during, and after a multiplexed image analysis pipeline.\n\nThe package was designed to be used completely within the [napari] application and therefore require little to no knowledge of Python programming. Documentation for usage via the API is currently in progress.\n\n## Requirements\n\nInstall [miniconda] or anaconda.\n\nOpen the conda terminal and create a simple environment:\n\n```bash\nconda create -n prism python -c conda-forge\n```\n\nActivate the environment before executing the instructions in the Installation section.\n\n```bash\nconda activate prism\n```\n\n### List of Dependencies (Version specific)\n\n```\npython>=3.10\nspatialdata>=0.5.0\nspatialdata-plot>=0.2.11\nnapari[all]\nnapari_matplotlib>=3.0.0\nnapari_spatialdata>=0.5.7\ndask<2024.11.12\ncellpose>=3.0.10\nscanpy>=1.10.0\nxarray\n```\n\n## Installation: CPU only\n\nInstall this package via [pip]:\n\n```bash\npip install napari-prism\n```\n\nInstall the latest development version:\n\n```bash\npip install git+https://github.com/clinicalomx/napari-prism.git@main\n```\n\n## Installation: GPU-accelerated\n\n### General computations with RAPIDS and rapids-singlecell\n\nGeneral larger scale and/or computationally demanding functions can be accelerated with the [NVIDIA RAPIDS suite](https://rapids.ai/). We utilise some packages from this suite, as well as the GPU-accelerated implementation of scanpy with [rapids-singlecell].\n\n1. [Check and configure the system requirements from RAPIDS](https://docs.rapids.ai/install/#system-req).\n    - Currently, only Linux distributions (or Windows systems with WSL2) are supported.\n    - Install the [CUDA12.2](https://developer.nvidia.com/cuda-12-2-2-download-archive) or [CUDA12.5](https://developer.nvidia.com/cuda-12-5-1-download-archive) toolkit.\n2. Install the package together with [RAPIDS] and [rapids-singlecell] via [pip]:\n\n```bash\npip install napari-prism[gpu] --extra-index-url=https://pypi.nvidia.com\n```\n\n### Cell segmentation with Cellpose\n\nTo run [cellpose] on the GPU, install the [CUDA version of PyTorch](https://pytorch.org/get-started/locally/). You may need to [remove any installed CPU versions of PyTorch](https://github.com/MouseLand/cellpose?tab=readme-ov-file#gpu-version-cuda-on-windows-or-linux).\n\nThe new [cellpose] v4 adopts the SAM foundation model for generalization. While this may reduce the need for fine-tuning, we find that this needs higher end GPUs with more VRAM. If this is an issue, consider installing Cellpose 3, i.e:\n\n```bash\npip install cellpose<4\n```\n\n## Getting Started\n\nTo start using `napari-prism`, please see the [tutorials](https://napari-prism.readthedocs.io/en/latest/notebooks/getting_started.html#):\n\n- [Getting started](https://napari-prism.readthedocs.io/en/latest/notebooks/getting_started.html)\n- To learn how to interactively analyse raw .qptiff TMAs, see [TMA Image Analysis](https://napari-prism.readthedocs.io/en/latest/notebooks/tma_usage.html)\n- To learn how to interactively analyse AnnData-contained SpatialData objects, see [Anndata Analysis](https://napari-prism.readthedocs.io/en/latest/notebooks/adata_usage.html)\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-prism\" 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## Known Issues\n\nAdding shapes like `tma_envelopes` may cause segmentation faults (https://github.com/napari/napari/issues/6709). A workaround is to uninstall triangle (`pip uninstall triangle`)\n\n## Citation\n\nRafael Tubelleza, Aaron Kilgallon, Chin Wee Tan, James Monkman, John F Fraser, Arutha Kulasinghe, PRISM: a Python package for interactive and integrated analysis of multiplexed tissue microarrays, NAR Genomics and Bioinformatics, Volume 7, Issue 3, September 2025, lqaf114, https://doi.org/10.1093/nargab/lqaf114\n\n[napari]: https://github.com/napari/napari\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[file an issue]: https://github.com/clinicalomx/napari-prism/issues\n[tox]: https://tox.readthedocs.io/en/latest/\n[pip]: https://pypi.org/project/pip/\n[PyPI]: https://pypi.org/\n[PyTorch]: https://pytorch.org/\n[cellpose]: https://github.com/MouseLand/cellpose\n[RAPIDS]: https://rapids.ai/\n[rapids-singlecell]: https://github.com/scverse/rapids_singlecell\n[spatialdata]: https://github.com/scverse/spatialdata/tree/main\n[napari-spatialdata]: https://github.com/scverse/napari-spatialdata/tree/main\n[spatialdata-io]: https://github.com/scverse/spatialdata-io\n[sopa]: https://github.com/gustaveroussy/sopa\n[scverse]: https://scverse.org/\n[miniconda]: https://www.anaconda.com/docs/getting-started/miniconda/install\n","description_content_type":"text/markdown","keywords":null,"home_page":"https://github.com/clinicalomx/napari-prism","download_url":null,"author":"Rafael Tubelleza","author_email":"rafaelrtubelleza@gmail.com","maintainer":null,"maintainer_email":null,"license":"MIT","classifier":["Development Status :: 2 - Pre-Alpha","Framework :: napari","Intended Audience :: Science/Research","License :: OSI Approved :: MIT License","Operating System :: OS Independent","Programming Language :: Python","Programming Language :: Python :: 3","Programming Language :: Python :: 3.10","Topic :: Scientific/Engineering :: Image Processing"],"requires_dist":["numpy","magicgui","qtpy","scikit-image","spatialdata>=0.5.0","imagecodecs","napari[all]","napari_matplotlib>=3.0.0","napari_spatialdata>=0.5.7","dask<2024.11.12","matplotlib","PyComplexHeatmap","scikit-learn","cellpose>=3.0.10","scanpy>=1.10.0","harmonypy","phenograph","squidpy","kneed","xarray","pyometiff","forestplot","scikit-survival","spatialdata-plot>=0.2.11","requests","dask-cudf-cu12==24.10.*; extra == \"gpu\"","rapids-singlecell[rapids12]; extra == \"gpu\"","tox; extra == \"testing\"","pytest; extra == \"testing\"","pytest-lazy-fixtures; extra == \"testing\"","pytest-cov; extra == \"testing\"","pytest-qt; extra == \"testing\"","napari; extra == \"testing\"","qtpy; extra == \"testing\"","ipykernel; extra == \"docs\"","ipython; extra == \"docs\"","myst-nb>=1.1; extra == \"docs\"","myst-parser; extra == \"docs\"","sphinx>=4; extra == \"docs\"","sphinx-autodoc-typehints; extra == \"docs\"","sphinx-book-theme>=1; extra == \"docs\"","sphinx-copybutton; extra == \"docs\"","sphinx-qt-documentation; extra == \"docs\"","sphinxcontrib-bibtex>=1; extra == \"docs\"","sphinx-tabs; extra == \"docs\"","sphinxext-opengraph; extra == \"docs\""],"requires_python":">=3.10","requires_external":null,"project_url":["Bug Tracker, https://github.com/clinicalomx/napari-prism/issues","Documentation, https://github.com/clinicalomx/napari-prism#README.md","Source Code, https://github.com/clinicalomx/napari-prism","User Support, https://github.com/clinicalomx/napari-prism/issues"],"provides_extra":["gpu","testing","docs"],"provides_dist":null,"obsoletes_dist":null},"npe1_shim":false}