From 3acbb798f47091bb574314772eb0ceac1f04dbb1 Mon Sep 17 00:00:00 2001 From: Mackenzie Mathis Date: Sun, 15 Dec 2024 22:11:49 +0100 Subject: [PATCH 1/2] update - remove restart; causing it to crash - update install --- notebooks/Colab_inference_demo.ipynb | 1283 ++++++++++++++++++++++++-- 1 file changed, 1212 insertions(+), 71 deletions(-) diff --git a/notebooks/Colab_inference_demo.ipynb b/notebooks/Colab_inference_demo.ipynb index 634695c1..ba6e25a8 100644 --- a/notebooks/Colab_inference_demo.ipynb +++ b/notebooks/Colab_inference_demo.ipynb @@ -1,15 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": { - "id": "view-in-github", - "colab_type": "text" - }, - "source": [ - "\"Open" - ] - }, { "cell_type": "markdown", "metadata": { @@ -46,43 +36,182 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": { - "id": "bnFKu6uFAm-z" + "id": "bnFKu6uFAm-z", + "collapsed": true, + "outputId": "a52993ed-bfc1-4b44-973c-3f7da876e33a", + "colab": { + "base_uri": "https://localhost:8080/" + } }, - "outputs": [], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "fatal: destination path './CellSeg3D' already exists and is not an empty directory.\n", + "Requirement already satisfied: napari-cellseg3d in /usr/local/lib/python3.10/dist-packages (0.2.1)\n", + "Requirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (from napari-cellseg3d) (1.26.4)\n", + "Requirement already satisfied: napari>=0.4.14 in /usr/local/lib/python3.10/dist-packages (from napari[all]>=0.4.14->napari-cellseg3d) (0.5.5)\n", + "Requirement already satisfied: QtPy in /usr/local/lib/python3.10/dist-packages (from napari-cellseg3d) (2.4.2)\n", + "Requirement already satisfied: scikit-image>=0.19.2 in /usr/local/lib/python3.10/dist-packages (from napari-cellseg3d) (0.24.0)\n", + "Requirement already satisfied: matplotlib>=3.4.1 in /usr/local/lib/python3.10/dist-packages (from napari-cellseg3d) (3.8.0)\n", + "Requirement already satisfied: tifffile>=2022.2.9 in /usr/local/lib/python3.10/dist-packages (from napari-cellseg3d) (2024.9.20)\n", + "Requirement already satisfied: imagecodecs>=2023.3.16 in /usr/local/lib/python3.10/dist-packages (from napari-cellseg3d) (2024.9.22)\n", + "Requirement already satisfied: torch>=1.11 in /usr/local/lib/python3.10/dist-packages (from napari-cellseg3d) (2.5.1+cu121)\n", + "Requirement already satisfied: monai>=0.9.0 in /usr/local/lib/python3.10/dist-packages (from monai[einops,nibabel]>=0.9.0->napari-cellseg3d) (1.4.0)\n", + "Requirement already satisfied: itk in /usr/local/lib/python3.10/dist-packages (from napari-cellseg3d) (5.4.0)\n", + "Requirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (from napari-cellseg3d) (4.66.6)\n", + "Requirement already satisfied: pyclesperanto-prototype in /usr/local/lib/python3.10/dist-packages (from napari-cellseg3d) (0.24.5)\n", + "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.4.1->napari-cellseg3d) (1.3.1)\n", + "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.4.1->napari-cellseg3d) (0.12.1)\n", + "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.4.1->napari-cellseg3d) (4.55.3)\n", + "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.4.1->napari-cellseg3d) (1.4.7)\n", + "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.4.1->napari-cellseg3d) (24.2)\n", + "Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.4.1->napari-cellseg3d) (11.0.0)\n", + "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.4.1->napari-cellseg3d) (3.2.0)\n", + "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.4.1->napari-cellseg3d) (2.8.2)\n", + "Requirement already satisfied: einops in /usr/local/lib/python3.10/dist-packages (from monai[einops,nibabel]>=0.9.0->napari-cellseg3d) (0.8.0)\n", + "Requirement already satisfied: nibabel in /usr/local/lib/python3.10/dist-packages (from monai[einops,nibabel]>=0.9.0->napari-cellseg3d) (5.3.2)\n", + "Requirement already satisfied: appdirs>=1.4.4 in /usr/local/lib/python3.10/dist-packages (from napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (1.4.4)\n", + "Requirement already satisfied: app-model<0.4.0,>=0.3.0 in /usr/local/lib/python3.10/dist-packages (from napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.3.1)\n", + "Requirement already satisfied: cachey>=0.2.1 in /usr/local/lib/python3.10/dist-packages (from napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.2.1)\n", + "Requirement already satisfied: certifi>=2018.1.18 in /usr/local/lib/python3.10/dist-packages (from napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (2024.8.30)\n", + "Requirement already satisfied: dask>=2021.10.0 in /usr/local/lib/python3.10/dist-packages (from dask[array]>=2021.10.0->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (2024.10.0)\n", + "Requirement already satisfied: imageio!=2.22.1,>=2.20 in /usr/local/lib/python3.10/dist-packages (from napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (2.36.1)\n", + "Requirement already satisfied: jsonschema>=3.2.0 in /usr/local/lib/python3.10/dist-packages (from napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (4.23.0)\n", + "Requirement already satisfied: lazy_loader>=0.2 in /usr/local/lib/python3.10/dist-packages (from napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.4)\n", + "Requirement already satisfied: magicgui>=0.7.0 in /usr/local/lib/python3.10/dist-packages (from napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.9.1)\n", + "Requirement already satisfied: napari-console>=0.1.1 in /usr/local/lib/python3.10/dist-packages (from napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.1.2)\n", + "Requirement already satisfied: napari-plugin-engine>=0.1.9 in /usr/local/lib/python3.10/dist-packages (from napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.2.0)\n", + "Requirement already satisfied: napari-svg>=0.1.8 in /usr/local/lib/python3.10/dist-packages (from napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.2.0)\n", + "Requirement already satisfied: npe2>=0.7.6 in /usr/local/lib/python3.10/dist-packages (from napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.7.7)\n", + "Requirement already satisfied: numpydoc>=0.9.2 in /usr/local/lib/python3.10/dist-packages (from napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (1.8.0)\n", + "Requirement already satisfied: pandas>=1.3.0 in /usr/local/lib/python3.10/dist-packages (from napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (2.2.2)\n", + "Requirement already satisfied: pint>=0.17 in /usr/local/lib/python3.10/dist-packages (from napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.24.4)\n", + "Requirement already satisfied: psutil>=5.0 in /usr/local/lib/python3.10/dist-packages (from napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (5.9.5)\n", + "Requirement already satisfied: psygnal>=0.5.0 in /usr/local/lib/python3.10/dist-packages (from napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.11.1)\n", + "Requirement already satisfied: pydantic>=1.9.0 in /usr/local/lib/python3.10/dist-packages (from napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (2.10.3)\n", + "Requirement already satisfied: pygments>=2.6.0 in /usr/local/lib/python3.10/dist-packages (from napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (2.18.0)\n", + "Requirement already satisfied: PyOpenGL>=3.1.0 in /usr/local/lib/python3.10/dist-packages (from napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (3.1.7)\n", + "Requirement already satisfied: PyYAML>=5.1 in /usr/local/lib/python3.10/dist-packages (from napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (6.0.2)\n", + "Requirement already satisfied: scipy>=1.5.4 in /usr/local/lib/python3.10/dist-packages (from napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (1.13.1)\n", + "Requirement already satisfied: superqt>=0.6.7 in /usr/local/lib/python3.10/dist-packages (from napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.7.0)\n", + "Requirement already satisfied: toolz>=0.10.0 in /usr/local/lib/python3.10/dist-packages (from napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.12.1)\n", + "Requirement already satisfied: typing_extensions>=4.2.0 in /usr/local/lib/python3.10/dist-packages (from napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (4.12.2)\n", + "Requirement already satisfied: vispy<0.15,>=0.14.1 in /usr/local/lib/python3.10/dist-packages (from napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.14.3)\n", + "Requirement already satisfied: wrapt>=1.11.1 in /usr/local/lib/python3.10/dist-packages (from napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (1.17.0)\n", + "Requirement already satisfied: napari-plugin-manager<0.2.0,>=0.1.3 in /usr/local/lib/python3.10/dist-packages (from napari[all]>=0.4.14->napari-cellseg3d) (0.1.3)\n", + "Requirement already satisfied: networkx>=2.8 in /usr/local/lib/python3.10/dist-packages (from scikit-image>=0.19.2->napari-cellseg3d) (3.4.2)\n", + "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from torch>=1.11->napari-cellseg3d) (3.16.1)\n", + "Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from torch>=1.11->napari-cellseg3d) (3.1.4)\n", + "Requirement already satisfied: fsspec in /usr/local/lib/python3.10/dist-packages (from torch>=1.11->napari-cellseg3d) (2024.10.0)\n", + "Requirement already satisfied: sympy==1.13.1 in /usr/local/lib/python3.10/dist-packages (from torch>=1.11->napari-cellseg3d) (1.13.1)\n", + "Requirement already satisfied: mpmath<1.4,>=1.1.0 in /usr/local/lib/python3.10/dist-packages (from sympy==1.13.1->torch>=1.11->napari-cellseg3d) (1.3.0)\n", + "Requirement already satisfied: itk-core==5.4.0 in /usr/local/lib/python3.10/dist-packages (from itk->napari-cellseg3d) (5.4.0)\n", + "Requirement already satisfied: itk-numerics==5.4.0 in /usr/local/lib/python3.10/dist-packages (from itk->napari-cellseg3d) (5.4.0)\n", + "Requirement already satisfied: itk-io==5.4.0 in /usr/local/lib/python3.10/dist-packages (from itk->napari-cellseg3d) (5.4.0)\n", + "Requirement already satisfied: itk-filtering==5.4.0 in /usr/local/lib/python3.10/dist-packages (from itk->napari-cellseg3d) (5.4.0)\n", + "Requirement already satisfied: itk-registration==5.4.0 in /usr/local/lib/python3.10/dist-packages (from itk->napari-cellseg3d) (5.4.0)\n", + "Requirement already satisfied: itk-segmentation==5.4.0 in /usr/local/lib/python3.10/dist-packages (from itk->napari-cellseg3d) (5.4.0)\n", + "Requirement already satisfied: pyopencl in /usr/local/lib/python3.10/dist-packages (from pyclesperanto-prototype->napari-cellseg3d) (2024.3)\n", + "Requirement already satisfied: transforms3d in /usr/local/lib/python3.10/dist-packages (from pyclesperanto-prototype->napari-cellseg3d) (0.4.2)\n", + "Requirement already satisfied: in-n-out>=0.1.5 in /usr/local/lib/python3.10/dist-packages (from app-model<0.4.0,>=0.3.0->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.2.1)\n", + "Requirement already satisfied: pydantic-compat>=0.1.1 in /usr/local/lib/python3.10/dist-packages (from app-model<0.4.0,>=0.3.0->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.1.2)\n", + "Requirement already satisfied: heapdict in /usr/local/lib/python3.10/dist-packages (from cachey>=0.2.1->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (1.0.1)\n", + "Requirement already satisfied: click>=8.1 in /usr/local/lib/python3.10/dist-packages (from dask>=2021.10.0->dask[array]>=2021.10.0->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (8.1.7)\n", + "Requirement already satisfied: cloudpickle>=3.0.0 in /usr/local/lib/python3.10/dist-packages (from dask>=2021.10.0->dask[array]>=2021.10.0->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (3.1.0)\n", + "Requirement already satisfied: partd>=1.4.0 in /usr/local/lib/python3.10/dist-packages (from dask>=2021.10.0->dask[array]>=2021.10.0->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (1.4.2)\n", + "Requirement already satisfied: importlib-metadata>=4.13.0 in /usr/local/lib/python3.10/dist-packages (from dask>=2021.10.0->dask[array]>=2021.10.0->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (8.5.0)\n", + "Requirement already satisfied: attrs>=22.2.0 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=3.2.0->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (24.2.0)\n", + "Requirement already satisfied: jsonschema-specifications>=2023.03.6 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=3.2.0->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (2024.10.1)\n", + "Requirement already satisfied: referencing>=0.28.4 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=3.2.0->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.35.1)\n", + "Requirement already satisfied: rpds-py>=0.7.1 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=3.2.0->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.22.3)\n", + "Requirement already satisfied: docstring-parser>=0.7 in /usr/local/lib/python3.10/dist-packages (from magicgui>=0.7.0->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.16)\n", + "Requirement already satisfied: IPython>=7.7.0 in /usr/local/lib/python3.10/dist-packages (from napari-console>=0.1.1->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (7.34.0)\n", + "Requirement already satisfied: ipykernel>=5.2.0 in /usr/local/lib/python3.10/dist-packages (from napari-console>=0.1.1->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (5.5.6)\n", + "Requirement already satisfied: qtconsole!=4.7.6,!=5.4.2,>=4.5.1 in /usr/local/lib/python3.10/dist-packages (from napari-console>=0.1.1->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (5.6.1)\n", + "Requirement already satisfied: pip in /usr/local/lib/python3.10/dist-packages (from napari-plugin-manager<0.2.0,>=0.1.3->napari[all]>=0.4.14->napari-cellseg3d) (24.1.2)\n", + "Requirement already satisfied: build>=1 in /usr/local/lib/python3.10/dist-packages (from npe2>=0.7.6->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (1.2.2.post1)\n", + "Requirement already satisfied: rich in /usr/local/lib/python3.10/dist-packages (from npe2>=0.7.6->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (13.9.4)\n", + "Requirement already satisfied: tomli-w in /usr/local/lib/python3.10/dist-packages (from npe2>=0.7.6->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (1.1.0)\n", + "Requirement already satisfied: tomli in /usr/local/lib/python3.10/dist-packages (from npe2>=0.7.6->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (2.2.1)\n", + "Requirement already satisfied: typer in /usr/local/lib/python3.10/dist-packages (from npe2>=0.7.6->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.15.1)\n", + "Requirement already satisfied: sphinx>=6 in /usr/local/lib/python3.10/dist-packages (from numpydoc>=0.9.2->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (8.1.3)\n", + "Requirement already satisfied: tabulate>=0.8.10 in /usr/local/lib/python3.10/dist-packages (from numpydoc>=0.9.2->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.9.0)\n", + "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas>=1.3.0->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (2024.2)\n", + "Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.10/dist-packages (from pandas>=1.3.0->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (2024.2)\n", + "Requirement already satisfied: platformdirs>=2.1.0 in /usr/local/lib/python3.10/dist-packages (from pint>=0.17->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (4.3.6)\n", + "Requirement already satisfied: flexcache>=0.3 in /usr/local/lib/python3.10/dist-packages (from pint>=0.17->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.3)\n", + "Requirement already satisfied: flexparser>=0.4 in /usr/local/lib/python3.10/dist-packages (from pint>=0.17->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.4)\n", + "Requirement already satisfied: annotated-types>=0.6.0 in /usr/local/lib/python3.10/dist-packages (from pydantic>=1.9.0->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.7.0)\n", + "Requirement already satisfied: pydantic-core==2.27.1 in /usr/local/lib/python3.10/dist-packages (from pydantic>=1.9.0->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (2.27.1)\n", + "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.7->matplotlib>=3.4.1->napari-cellseg3d) (1.17.0)\n", + "Requirement already satisfied: pooch>=1.6.0 in /usr/local/lib/python3.10/dist-packages (from scikit-image[data]>=0.19.1->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (1.8.2)\n", + "Requirement already satisfied: freetype-py in /usr/local/lib/python3.10/dist-packages (from vispy<0.15,>=0.14.1->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (2.5.1)\n", + "Requirement already satisfied: hsluv in /usr/local/lib/python3.10/dist-packages (from vispy<0.15,>=0.14.1->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (5.0.4)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2->torch>=1.11->napari-cellseg3d) (3.0.2)\n", + "Requirement already satisfied: triangle in /usr/local/lib/python3.10/dist-packages (from napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (20230923)\n", + "Requirement already satisfied: numba>=0.57.1 in /usr/local/lib/python3.10/dist-packages (from napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.60.0)\n", + "Requirement already satisfied: zarr>=2.12.0 in /usr/local/lib/python3.10/dist-packages (from napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (2.18.3)\n", + "Requirement already satisfied: importlib-resources>=5.12 in /usr/local/lib/python3.10/dist-packages (from nibabel->monai[einops,nibabel]>=0.9.0->napari-cellseg3d) (6.4.5)\n", + "Requirement already satisfied: pytools>=2024.1.5 in /usr/local/lib/python3.10/dist-packages (from pyopencl->pyclesperanto-prototype->napari-cellseg3d) (2024.1.21)\n", + "Requirement already satisfied: pyproject_hooks in /usr/local/lib/python3.10/dist-packages (from build>=1->npe2>=0.7.6->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (1.2.0)\n", + "Requirement already satisfied: zipp>=3.20 in /usr/local/lib/python3.10/dist-packages (from importlib-metadata>=4.13.0->dask>=2021.10.0->dask[array]>=2021.10.0->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (3.21.0)\n", + "Requirement already satisfied: ipython-genutils in /usr/local/lib/python3.10/dist-packages (from ipykernel>=5.2.0->napari-console>=0.1.1->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.2.0)\n", + "Requirement already satisfied: traitlets>=4.1.0 in /usr/local/lib/python3.10/dist-packages (from ipykernel>=5.2.0->napari-console>=0.1.1->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (5.7.1)\n", + "Requirement already satisfied: jupyter-client in /usr/local/lib/python3.10/dist-packages (from ipykernel>=5.2.0->napari-console>=0.1.1->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (6.1.12)\n", + "Requirement already satisfied: tornado>=4.2 in /usr/local/lib/python3.10/dist-packages (from ipykernel>=5.2.0->napari-console>=0.1.1->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (6.3.3)\n", + "Requirement already satisfied: setuptools>=18.5 in /usr/local/lib/python3.10/dist-packages (from IPython>=7.7.0->napari-console>=0.1.1->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (75.1.0)\n", + "Requirement already satisfied: jedi>=0.16 in /usr/local/lib/python3.10/dist-packages (from IPython>=7.7.0->napari-console>=0.1.1->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.19.2)\n", + "Requirement already satisfied: decorator in /usr/local/lib/python3.10/dist-packages (from IPython>=7.7.0->napari-console>=0.1.1->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (4.4.2)\n", + "Requirement already satisfied: pickleshare in /usr/local/lib/python3.10/dist-packages (from IPython>=7.7.0->napari-console>=0.1.1->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.7.5)\n", + "Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from IPython>=7.7.0->napari-console>=0.1.1->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (3.0.48)\n", + "Requirement already satisfied: backcall in /usr/local/lib/python3.10/dist-packages (from IPython>=7.7.0->napari-console>=0.1.1->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.2.0)\n", + "Requirement already satisfied: matplotlib-inline in /usr/local/lib/python3.10/dist-packages (from IPython>=7.7.0->napari-console>=0.1.1->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.1.7)\n", + "Requirement already satisfied: pexpect>4.3 in /usr/local/lib/python3.10/dist-packages (from IPython>=7.7.0->napari-console>=0.1.1->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (4.9.0)\n", + "Requirement already satisfied: llvmlite<0.44,>=0.43.0dev0 in /usr/local/lib/python3.10/dist-packages (from numba>=0.57.1->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.43.0)\n", + "Requirement already satisfied: locket in /usr/local/lib/python3.10/dist-packages (from partd>=1.4.0->dask>=2021.10.0->dask[array]>=2021.10.0->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (1.0.0)\n", + "Requirement already satisfied: requests>=2.19.0 in /usr/local/lib/python3.10/dist-packages (from pooch>=1.6.0->scikit-image[data]>=0.19.1->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (2.32.3)\n", + "Requirement already satisfied: jupyter-core in /usr/local/lib/python3.10/dist-packages (from qtconsole!=4.7.6,!=5.4.2,>=4.5.1->napari-console>=0.1.1->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (5.7.2)\n", + "Requirement already satisfied: sphinxcontrib-applehelp>=1.0.7 in /usr/local/lib/python3.10/dist-packages (from sphinx>=6->numpydoc>=0.9.2->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (2.0.0)\n", + "Requirement already satisfied: sphinxcontrib-devhelp>=1.0.6 in /usr/local/lib/python3.10/dist-packages (from sphinx>=6->numpydoc>=0.9.2->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (2.0.0)\n", + "Requirement already satisfied: sphinxcontrib-htmlhelp>=2.0.6 in /usr/local/lib/python3.10/dist-packages (from sphinx>=6->numpydoc>=0.9.2->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (2.1.0)\n", + "Requirement already satisfied: sphinxcontrib-jsmath>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from sphinx>=6->numpydoc>=0.9.2->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (1.0.1)\n", + "Requirement already satisfied: sphinxcontrib-qthelp>=1.0.6 in /usr/local/lib/python3.10/dist-packages (from sphinx>=6->numpydoc>=0.9.2->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (2.0.0)\n", + "Requirement already satisfied: sphinxcontrib-serializinghtml>=1.1.9 in /usr/local/lib/python3.10/dist-packages (from sphinx>=6->numpydoc>=0.9.2->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (2.0.0)\n", + "Requirement already satisfied: docutils<0.22,>=0.20 in /usr/local/lib/python3.10/dist-packages (from sphinx>=6->numpydoc>=0.9.2->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.21.2)\n", + "Requirement already satisfied: snowballstemmer>=2.2 in /usr/local/lib/python3.10/dist-packages (from sphinx>=6->numpydoc>=0.9.2->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (2.2.0)\n", + "Requirement already satisfied: babel>=2.13 in /usr/local/lib/python3.10/dist-packages (from sphinx>=6->numpydoc>=0.9.2->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (2.16.0)\n", + "Requirement already satisfied: alabaster>=0.7.14 in /usr/local/lib/python3.10/dist-packages (from sphinx>=6->numpydoc>=0.9.2->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (1.0.0)\n", + "Requirement already satisfied: imagesize>=1.3 in /usr/local/lib/python3.10/dist-packages (from sphinx>=6->numpydoc>=0.9.2->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (1.4.1)\n", + "Requirement already satisfied: pyconify>=0.1.4 in /usr/local/lib/python3.10/dist-packages (from superqt[iconify]>=0.6.1->magicgui>=0.7.0->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.1.6)\n", + "Requirement already satisfied: asciitree in /usr/local/lib/python3.10/dist-packages (from zarr>=2.12.0->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.3.3)\n", + "Requirement already satisfied: numcodecs>=0.10.0 in /usr/local/lib/python3.10/dist-packages (from zarr>=2.12.0->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.13.1)\n", + "Requirement already satisfied: fasteners in /usr/local/lib/python3.10/dist-packages (from zarr>=2.12.0->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.19)\n", + "Requirement already satisfied: PyQt5!=5.15.0,>=5.13.2 in /usr/local/lib/python3.10/dist-packages (from napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (5.15.11)\n", + "Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from rich->npe2>=0.7.6->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (3.0.0)\n", + "Requirement already satisfied: shellingham>=1.3.0 in /usr/local/lib/python3.10/dist-packages (from typer->npe2>=0.7.6->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (1.5.4)\n", + "Requirement already satisfied: parso<0.9.0,>=0.8.4 in /usr/local/lib/python3.10/dist-packages (from jedi>=0.16->IPython>=7.7.0->napari-console>=0.1.1->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.8.4)\n", + "Requirement already satisfied: pyzmq>=13 in /usr/local/lib/python3.10/dist-packages (from jupyter-client->ipykernel>=5.2.0->napari-console>=0.1.1->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (24.0.1)\n", + "Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py>=2.2.0->rich->npe2>=0.7.6->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.1.2)\n", + "Requirement already satisfied: ptyprocess>=0.5 in /usr/local/lib/python3.10/dist-packages (from pexpect>4.3->IPython>=7.7.0->napari-console>=0.1.1->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.7.0)\n", + "Requirement already satisfied: wcwidth in /usr/local/lib/python3.10/dist-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->IPython>=7.7.0->napari-console>=0.1.1->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (0.2.13)\n", + "Requirement already satisfied: PyQt5-sip<13,>=12.15 in /usr/local/lib/python3.10/dist-packages (from PyQt5!=5.15.0,>=5.13.2->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (12.16.1)\n", + "Requirement already satisfied: PyQt5-Qt5<5.16.0,>=5.15.2 in /usr/local/lib/python3.10/dist-packages (from PyQt5!=5.15.0,>=5.13.2->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (5.15.15)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests>=2.19.0->pooch>=1.6.0->scikit-image[data]>=0.19.1->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (3.4.0)\n", + "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests>=2.19.0->pooch>=1.6.0->scikit-image[data]>=0.19.1->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (3.10)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests>=2.19.0->pooch>=1.6.0->scikit-image[data]>=0.19.1->napari>=0.4.14->napari[all]>=0.4.14->napari-cellseg3d) (2.2.3)\n", + "Requirement already satisfied: pydensecrf in /usr/local/lib/python3.10/dist-packages (1.0)\n" + ] + } + ], "source": [ - "#@markdown ##Install CellSeg3D and dependencies\n", + "#@markdown ##Install CellSeg3D and grab demo data\n", "!git clone https://github.com/AdaptiveMotorControlLab/CellSeg3d.git --branch main --single-branch ./CellSeg3D\n", - "!pip install -e CellSeg3D" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "SfYAv60MAm-z" - }, - "source": [ - "## **1.2. Restart your runtime**\n", - "---\n", - "\n", - "\n", - "\n", - "** Please ignore the subsequent error message. An automatic restart of your Runtime is expected and is part of the process.**\n", - "\n", - "\"\"
" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Of85zlxzAm-z" - }, - "outputs": [], - "source": [ - "# @title Force session restart\n", - "exit(0)" + "!pip install napari-cellseg3d\n", + "!pip install pydensecrf" ] }, { @@ -97,17 +226,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": { - "id": "vzm75tE_Am-0" + "id": "vzm75tE_Am-0", + "outputId": "81a95be8-fe48-4a5b-a64c-2f993772c418", + "colab": { + "base_uri": "https://localhost:8080/" + } }, - "outputs": [], + "outputs": [ + { + "output_type": "stream", + "name": "stderr", + "text": [ + "/usr/local/lib/python3.10/dist-packages/pytools/persistent_dict.py:52: RecommendedHashNotFoundWarning: Unable to import recommended hash 'siphash24.siphash13', falling back to 'hashlib.sha256'. Run 'python3 -m pip install siphash24' to install the recommended hash.\n", + " warn(\"Unable to import recommended hash 'siphash24.siphash13', \"\n" + ] + } + ], "source": [ "# @title Load libraries\n", - "from pathlib import Path\n", + "import napari_cellseg3d\n", "from tifffile import imread\n", + "from pathlib import Path\n", "from napari_cellseg3d.dev_scripts import remote_inference as cs3d\n", "from napari_cellseg3d.utils import LOGGER as logger\n", + "\n", "import logging\n", "\n", "logger.setLevel(logging.INFO)" @@ -144,11 +288,43 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": { - "id": "Fe8hNkOpAm-0" + "id": "Fe8hNkOpAm-0", + "outputId": "3488c95a-b0d0-4557-d69f-1c89640cfaf3", + "colab": { + "base_uri": "https://localhost:8080/" + } }, - "outputs": [], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "You have GPU access\n", + "Sun Dec 15 21:09:57 2024 \n", + "+---------------------------------------------------------------------------------------+\n", + "| NVIDIA-SMI 535.104.05 Driver Version: 535.104.05 CUDA Version: 12.2 |\n", + "|-----------------------------------------+----------------------+----------------------+\n", + "| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |\n", + "| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |\n", + "| | | MIG M. |\n", + "|=========================================+======================+======================|\n", + "| 0 Tesla T4 Off | 00000000:00:04.0 Off | 0 |\n", + "| N/A 46C P8 9W / 70W | 3MiB / 15360MiB | 0% Default |\n", + "| | | N/A |\n", + "+-----------------------------------------+----------------------+----------------------+\n", + " \n", + "+---------------------------------------------------------------------------------------+\n", + "| Processes: |\n", + "| GPU GI CI PID Type Process name GPU Memory |\n", + "| ID ID Usage |\n", + "|=======================================================================================|\n", + "| No running processes found |\n", + "+---------------------------------------------------------------------------------------+\n" + ] + } + ], "source": [ "#@markdown This cell verifies if GPU access is available.\n", "\n", @@ -176,11 +352,30 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": { - "id": "O0jLRpARAm-0" + "id": "O0jLRpARAm-0", + "outputId": "fdf0800b-976a-47ef-d848-b7c45621f2c4", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + } }, - "outputs": [], + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "'cupy backend (experimental)'" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + } + }, + "metadata": {}, + "execution_count": 4 + } + ], "source": [ "demo_image_path = \"/content/CellSeg3D/examples/c5image.tif\"\n", "demo_image = imread(demo_image_path)\n", @@ -193,11 +388,81 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": { - "id": "hIEKoyEGAm-0" + "id": "hIEKoyEGAm-0", + "outputId": "c616aab6-a4e7-463b-a051-923bf85b8380", + "colab": { + "base_uri": "https://localhost:8080/" + } }, - "outputs": [], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "--------------------\n", + "Parameters summary :\n", + "Model is : SwinUNetR\n", + "Window inference is enabled\n", + "Window size is 64\n", + "Window overlap is 0.25\n", + "Dataset loaded on cuda device\n", + "--------------------\n", + "MODEL DIMS : 64\n", + "Model name : SwinUNetR\n", + "Instantiating model...\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "monai.networks.nets.swin_unetr SwinUNETR.__init__:img_size: Argument `img_size` has been deprecated since version 1.3. It will be removed in version 1.5. The img_size argument is not required anymore and checks on the input size are run during forward().\n", + "INFO:napari_cellseg3d.utils:********************\n", + "INFO:napari_cellseg3d.utils:Weight file SwinUNetR_latest.pth already exists, skipping download\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Loading weights...\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Weights status : \n", + "Done\n", + "--------------------\n", + "Parameters summary :\n", + "Model is : SwinUNetR\n", + "Window inference is enabled\n", + "Window size is 64\n", + "Window overlap is 0.25\n", + "Dataset loaded on cuda device\n", + "--------------------\n", + "Loading layer\n", + "2024-12-15 21:10:06,566 - INFO - Apply pending transforms - lazy: False, pending: 0, upcoming 'QuantileNormalization', transform is not lazy\n", + "2024-12-15 21:10:06,592 - INFO - Apply pending transforms - lazy: False, pending: 0, upcoming 'ToTensor', transform is not lazy\n", + "2024-12-15 21:10:06,595 - INFO - Apply pending transforms - lazy: False, pending: 0, upcoming 'EnsureType', transform is not lazy\n", + "Done\n", + "----------\n", + "Inference started on layer...\n", + "Post-processing...\n", + "Layer prediction saved as : volume_SwinUNetR_pred_1_2024_12_15_21_10_09\n" + ] + } + ], "source": [ "result = cs3d.inference_on_images(\n", " demo_image,\n", @@ -207,11 +472,28 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": { - "id": "IFbmZ3_zAm-1" + "id": "IFbmZ3_zAm-1", + "outputId": "b9abbb7e-40a7-407e-eca5-48142a608712", + "colab": { + "base_uri": "https://localhost:8080/" + } }, - "outputs": [], + "outputs": [ + { + "output_type": "stream", + "name": "stderr", + "text": [ + "1it [00:00, 11.29it/s]\n", + "clesperanto's cupy / CUDA backend is experimental. Please use it with care. The following functions are known to cause issues in the CUDA backend:\n", + "affine_transform, apply_vector_field, create(uint64), create(int32), create(int64), resample, scale, spots_to_pointlist\n", + "divide by zero encountered in scalar divide\n", + "invalid value encountered in scalar multiply\n", + "WARNING:napari_cellseg3d.utils:0 invalid sphericities were set to NaN. This occurs for objects with a volume of 1 pixel.\n" + ] + } + ], "source": [ "# @title Post-process the result\n", "# @markdown This cell post-processes the result of the inference : thresholding, instance segmentation, and statistics.\n", @@ -223,11 +505,67 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": { - "id": "TMRiQ-m4Am-1" + "id": "TMRiQ-m4Am-1", + "outputId": "96604c9f-cc6a-4b02-9c06-ada41acccb40", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 496, + "referenced_widgets": [ + "14688e5b41f646449485e9aa4f724724", + "4a4f13871b914dc98610387a36dbac5b", + "d39fe022444544f296e5ada5630ca7e8", + "b0887fa3ae9842c2ac012521f0e4b954", + "15f5f78501fd408bb6477c02adff73fa", + "a8a98fa6693c4271abb49e5dc59f3e99", + "6bafd832de8f433fa7439b505e2fe922" + ] + } }, - "outputs": [], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "interactive(children=(IntSlider(value=62, description='z', max=123), Output()), _dom_classes=('widget-interact…" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "14688e5b41f646449485e9aa4f724724" + } + }, + "metadata": {} + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n", + "
update_plot
def update_plot(z)
/content/<ipython-input-7-245acde924e0><no docstring>
" + ] + }, + "metadata": {}, + "execution_count": 7 + } + ], "source": [ "# @title Display the result\n", "#@markdown This cell displays the result of the inference and post-processing. Use the slider to navigate through the z-stack.\n", @@ -269,11 +607,516 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": { - "id": "Tw5exJ5EAm-1" + "id": "Tw5exJ5EAm-1", + "outputId": "5ddb1416-198e-4090-9e14-74ec214e8b68", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 424 + } }, - "outputs": [], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + " Volume Centroid x Centroid y Centroid z Sphericity (axes) \\\n", + "0 190.0 5.405263 69.157895 36.210526 0.778113 \n", + "1 18.0 5.833333 85.000000 83.944444 0.000007 \n", + "2 67.0 7.283582 65.492537 92.059701 0.867751 \n", + "3 108.0 10.324074 84.342593 68.861111 0.672490 \n", + "4 35.0 9.428571 84.314286 92.600000 0.649649 \n", + ".. ... ... ... ... ... \n", + "317 11.0 122.363636 14.727273 25.000000 0.951651 \n", + "318 24.0 122.166667 26.083333 38.083333 0.990075 \n", + "319 16.0 122.125000 34.125000 36.500000 0.944672 \n", + "320 13.0 122.076923 43.538462 53.615385 0.939852 \n", + "321 21.0 122.523810 49.666667 36.238095 0.895437 \n", + "\n", + " Image size Total image volume Total object volume (pixels) \\\n", + "0 (124, 86, 94) 1002416 33504.0 \n", + "1 \n", + "2 \n", + "3 \n", + "4 \n", + ".. ... ... ... \n", + "317 \n", + "318 \n", + "319 \n", + "320 \n", + "321 \n", + "\n", + " Filling ratio Number objects \n", + "0 0.033423 322 \n", + "1 \n", + "2 \n", + "3 \n", + "4 \n", + ".. ... ... \n", + "317 \n", + "318 \n", + "319 \n", + "320 \n", + "321 \n", + "\n", + "[322 rows x 10 columns]" + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
VolumeCentroid xCentroid yCentroid zSphericity (axes)Image sizeTotal image volumeTotal object volume (pixels)Filling ratioNumber objects
0190.05.40526369.15789536.2105260.778113(124, 86, 94)100241633504.00.033423322
118.05.83333385.00000083.9444440.000007
267.07.28358265.49253792.0597010.867751
3108.010.32407484.34259368.8611110.672490
435.09.42857184.31428692.6000000.649649
.................................
31711.0122.36363614.72727325.0000000.951651
31824.0122.16666726.08333338.0833330.990075
31916.0122.12500034.12500036.5000000.944672
32013.0122.07692343.53846253.6153850.939852
32121.0122.52381049.66666736.2380950.895437
\n", + "

322 rows × 10 columns

\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + " \n", + " \n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "data", + "summary": "{\n \"name\": \"data\",\n \"rows\": 322,\n \"fields\": [\n {\n \"column\": \"Volume\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 54.38970963263131,\n \"min\": 8.0,\n \"max\": 252.0,\n \"num_unique_values\": 157,\n \"samples\": [\n 14.0,\n 124.0,\n 169.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Centroid x\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 31.084053076294715,\n \"min\": 5.405263157894737,\n \"max\": 122.52380952380952,\n \"num_unique_values\": 321,\n \"samples\": [\n 73.65806451612903,\n 60.0,\n 81.18303571428571\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Centroid y\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 25.419664210044758,\n \"min\": 0.0,\n \"max\": 85.0,\n \"num_unique_values\": 320,\n \"samples\": [\n 0.6310679611650486,\n 1.7452229299363058,\n 13.709401709401709\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Centroid z\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 27.685581861438635,\n \"min\": 0.12903225806451613,\n \"max\": 93.0,\n \"num_unique_values\": 320,\n \"samples\": [\n 12.174757281553399,\n 10.108695652173912,\n 70.51282051282051\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Sphericity (axes)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.12590741777097128,\n \"min\": 5.583882595237912e-06,\n \"max\": 0.9900749841550203,\n \"num_unique_values\": 318,\n \"samples\": [\n 0.8007911710122612,\n 0.8283576063212563,\n 0.7547372074750549\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Image size\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"\",\n [\n 124,\n 86,\n 94\n ]\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Total image volume\",\n \"properties\": {\n \"dtype\": \"date\",\n \"min\": \"1970-01-01 00:00:00.001002416\",\n \"max\": \"1970-01-01 00:00:00.001002416\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"\",\n 1002416\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Total object volume (pixels)\",\n \"properties\": {\n \"dtype\": \"date\",\n \"min\": \"1970-01-01 00:00:00.000033504\",\n \"max\": \"1970-01-01 00:00:00.000033504\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"\",\n 33504.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Filling ratio\",\n \"properties\": {\n \"dtype\": \"date\",\n \"min\": \"1970-01-01 00:00:00\",\n \"max\": \"1970-01-01 00:00:00\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"\",\n 0.03342324942937862\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Number objects\",\n \"properties\": {\n \"dtype\": \"date\",\n \"min\": \"1970-01-01 00:00:00.000000322\",\n \"max\": \"1970-01-01 00:00:00.000000322\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"\",\n 322\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {} + } + ], "source": [ "# @title Display the statistics\n", "# @markdown This cell displays the statistics of the post-processed result.\n", @@ -284,11 +1127,56 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": { - "id": "0NhZ-YksAm-1" + "id": "0NhZ-YksAm-1", + "outputId": "d57db1ad-3ff5-4a35-9c4c-75fe52ecc2f2", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 617 + } }, - "outputs": [], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + "\n", + "" + ] + }, + "metadata": {} + } + ], "source": [ "# @title Plot the a 3D view, with statistics\n", "# @markdown This cell plots a 3D view of the cells, with the volume as the size of the points and the sphericity as the color.\n", @@ -336,8 +1224,7 @@ "accelerator": "GPU", "colab": { "gpuType": "T4", - "provenance": [], - "include_colab_link": true + "provenance": [] }, "kernelspec": { "display_name": "Python 3", @@ -345,8 +1232,262 @@ }, "language_info": { "name": "python" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "14688e5b41f646449485e9aa4f724724": { + "model_module": "@jupyter-widgets/controls", + "model_name": "VBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [ + "widget-interact" + ], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "VBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "VBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_4a4f13871b914dc98610387a36dbac5b", + "IPY_MODEL_d39fe022444544f296e5ada5630ca7e8" + ], + "layout": "IPY_MODEL_b0887fa3ae9842c2ac012521f0e4b954" + } + }, + "4a4f13871b914dc98610387a36dbac5b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "IntSliderModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "IntSliderModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "IntSliderView", + "continuous_update": true, + "description": "z", + "description_tooltip": null, + "disabled": false, + "layout": "IPY_MODEL_15f5f78501fd408bb6477c02adff73fa", + "max": 123, + "min": 0, + "orientation": "horizontal", + "readout": true, + "readout_format": "d", + "step": 1, + "style": "IPY_MODEL_a8a98fa6693c4271abb49e5dc59f3e99", + "value": 62 + } + }, + "d39fe022444544f296e5ada5630ca7e8": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_6bafd832de8f433fa7439b505e2fe922", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/png": "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\n" + }, + "metadata": {} + } + ] + } + }, + "b0887fa3ae9842c2ac012521f0e4b954": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "15f5f78501fd408bb6477c02adff73fa": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "a8a98fa6693c4271abb49e5dc59f3e99": { + "model_module": "@jupyter-widgets/controls", + "model_name": "SliderStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "SliderStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "", + "handle_color": null + } + }, + "6bafd832de8f433fa7439b505e2fe922": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + } + } } }, "nbformat": 4, "nbformat_minor": 0 -} +} \ No newline at end of file From 4f5776a8859c3fbfbd987ca90da604f8dd5e276e Mon Sep 17 00:00:00 2001 From: Mackenzie Mathis Date: Sun, 15 Dec 2024 22:12:43 +0100 Subject: [PATCH 2/2] Update Colab_inference_demo.ipynb --- notebooks/Colab_inference_demo.ipynb | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/notebooks/Colab_inference_demo.ipynb b/notebooks/Colab_inference_demo.ipynb index ba6e25a8..7212322c 100644 --- a/notebooks/Colab_inference_demo.ipynb +++ b/notebooks/Colab_inference_demo.ipynb @@ -1,5 +1,15 @@ { "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, { "cell_type": "markdown", "metadata": { @@ -1490,4 +1500,4 @@ }, "nbformat": 4, "nbformat_minor": 0 -} \ No newline at end of file +}