2nd notebook#

[47]:
%pip install git+https://github.com/nndt-team/nndt.git
%pip install ipyvtklink
Collecting git+https://github.com/nndt-team/nndt.git
  Cloning https://github.com/nndt-team/nndt.git to /tmp/pip-req-build-vxhlf_29
  Running command git clone -q https://github.com/nndt-team/nndt.git /tmp/pip-req-build-vxhlf_29
  Resolved https://github.com/nndt-team/nndt.git to commit c4850b38a5d82ce379a145e17fcb6a547af2c5f1
Requirement already satisfied: anytree>=2.8.0 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from NNDT==0.0.3b1) (2.8.0)
Requirement already satisfied: colorama>=0.4.5 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from NNDT==0.0.3b1) (0.4.5)
Requirement already satisfied: dm-haiku>=0.0.7 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from NNDT==0.0.3b1) (0.0.8)
Requirement already satisfied: jax>=0.3.5 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from NNDT==0.0.3b1) (0.3.17)
Requirement already satisfied: jaxlib>=0.3.5 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from NNDT==0.0.3b1) (0.3.15)
Requirement already satisfied: optax>=0.1.3 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from NNDT==0.0.3b1) (0.1.3)
Requirement already satisfied: matplotlib>=3.3.0 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from NNDT==0.0.3b1) (3.5.1)
Requirement already satisfied: numpy>=1.20 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from NNDT==0.0.3b1) (1.22.4)
Requirement already satisfied: scikit-image>=0.13 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from NNDT==0.0.3b1) (0.19.2)
Requirement already satisfied: vtk>=8.2 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from NNDT==0.0.3b1) (9.1.0)
Requirement already satisfied: tqdm>=4.0.0 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from NNDT==0.0.3b1) (4.64.0)
Requirement already satisfied: pyvista>=0.36.1 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from NNDT==0.0.3b1) (0.37.0)
Requirement already satisfied: pykdtree>=1.3.5 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from NNDT==0.0.3b1) (1.3.6)
Requirement already satisfied: requests>=2.28.1 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from NNDT==0.0.3b1) (2.28.1)
Requirement already satisfied: gdown>=4.5.3 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from NNDT==0.0.3b1) (4.5.3)
Requirement already satisfied: py7zr>=0.6 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from NNDT==0.0.3b1) (0.20.2)
Requirement already satisfied: six>=1.9.0 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from anytree>=2.8.0->NNDT==0.0.3b1) (1.16.0)
Requirement already satisfied: absl-py>=0.7.1 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from dm-haiku>=0.0.7->NNDT==0.0.3b1) (1.2.0)
Requirement already satisfied: tabulate>=0.8.9 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from dm-haiku>=0.0.7->NNDT==0.0.3b1) (0.8.9)
Requirement already satisfied: jmp>=0.0.2 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from dm-haiku>=0.0.7->NNDT==0.0.3b1) (0.0.2)
Requirement already satisfied: beautifulsoup4 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from gdown>=4.5.3->NNDT==0.0.3b1) (4.11.1)
Requirement already satisfied: filelock in /home/kostanew/anaconda3/lib/python3.9/site-packages (from gdown>=4.5.3->NNDT==0.0.3b1) (3.6.0)
Requirement already satisfied: opt-einsum in /home/kostanew/anaconda3/lib/python3.9/site-packages (from jax>=0.3.5->NNDT==0.0.3b1) (3.3.0)
Requirement already satisfied: etils[epath] in /home/kostanew/anaconda3/lib/python3.9/site-packages (from jax>=0.3.5->NNDT==0.0.3b1) (0.8.0)
Requirement already satisfied: scipy>=1.5 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from jax>=0.3.5->NNDT==0.0.3b1) (1.7.3)
Requirement already satisfied: typing-extensions in /home/kostanew/anaconda3/lib/python3.9/site-packages (from jax>=0.3.5->NNDT==0.0.3b1) (4.1.1)
Requirement already satisfied: cycler>=0.10 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from matplotlib>=3.3.0->NNDT==0.0.3b1) (0.11.0)
Requirement already satisfied: packaging>=20.0 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from matplotlib>=3.3.0->NNDT==0.0.3b1) (21.3)
Requirement already satisfied: pillow>=6.2.0 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from matplotlib>=3.3.0->NNDT==0.0.3b1) (9.0.1)
Requirement already satisfied: kiwisolver>=1.0.1 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from matplotlib>=3.3.0->NNDT==0.0.3b1) (1.3.2)
Requirement already satisfied: pyparsing>=2.2.1 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from matplotlib>=3.3.0->NNDT==0.0.3b1) (3.0.4)
Requirement already satisfied: fonttools>=4.22.0 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from matplotlib>=3.3.0->NNDT==0.0.3b1) (4.25.0)
Requirement already satisfied: python-dateutil>=2.7 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from matplotlib>=3.3.0->NNDT==0.0.3b1) (2.8.2)
Requirement already satisfied: chex>=0.0.4 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from optax>=0.1.3->NNDT==0.0.3b1) (0.1.5)
Requirement already satisfied: toolz>=0.9.0 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from chex>=0.0.4->optax>=0.1.3->NNDT==0.0.3b1) (0.11.2)
Requirement already satisfied: dm-tree>=0.1.5 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from chex>=0.0.4->optax>=0.1.3->NNDT==0.0.3b1) (0.1.7)
Requirement already satisfied: multivolumefile>=0.2.3 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from py7zr>=0.6->NNDT==0.0.3b1) (0.2.3)
Requirement already satisfied: brotli>=1.0.9 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from py7zr>=0.6->NNDT==0.0.3b1) (1.0.9)
Requirement already satisfied: pyzstd>=0.14.4 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from py7zr>=0.6->NNDT==0.0.3b1) (0.15.3)
Requirement already satisfied: pyppmd<1.1.0,>=0.18.1 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from py7zr>=0.6->NNDT==0.0.3b1) (1.0.0)
Requirement already satisfied: pybcj>=0.6.0 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from py7zr>=0.6->NNDT==0.0.3b1) (1.0.1)
Requirement already satisfied: inflate64>=0.3.1 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from py7zr>=0.6->NNDT==0.0.3b1) (0.3.1)
Requirement already satisfied: pycryptodomex>=3.6.6 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from py7zr>=0.6->NNDT==0.0.3b1) (3.15.0)
Requirement already satisfied: texttable in /home/kostanew/anaconda3/lib/python3.9/site-packages (from py7zr>=0.6->NNDT==0.0.3b1) (1.6.4)
Requirement already satisfied: psutil in /home/kostanew/anaconda3/lib/python3.9/site-packages (from py7zr>=0.6->NNDT==0.0.3b1) (5.8.0)
Requirement already satisfied: pooch in /home/kostanew/anaconda3/lib/python3.9/site-packages (from pyvista>=0.36.1->NNDT==0.0.3b1) (1.6.0)
Requirement already satisfied: scooby>=0.5.1 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from pyvista>=0.36.1->NNDT==0.0.3b1) (0.7.0)
Requirement already satisfied: imageio in /home/kostanew/anaconda3/lib/python3.9/site-packages (from pyvista>=0.36.1->NNDT==0.0.3b1) (2.9.0)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from requests>=2.28.1->NNDT==0.0.3b1) (1.26.9)
Requirement already satisfied: idna<4,>=2.5 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from requests>=2.28.1->NNDT==0.0.3b1) (3.3)
Requirement already satisfied: certifi>=2017.4.17 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from requests>=2.28.1->NNDT==0.0.3b1) (2021.10.8)
Requirement already satisfied: charset-normalizer<3,>=2 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from requests>=2.28.1->NNDT==0.0.3b1) (2.0.4)
Requirement already satisfied: tifffile>=2019.7.26 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from scikit-image>=0.13->NNDT==0.0.3b1) (2021.7.2)
Requirement already satisfied: PyWavelets>=1.1.1 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from scikit-image>=0.13->NNDT==0.0.3b1) (1.3.0)
Requirement already satisfied: networkx>=2.2 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from scikit-image>=0.13->NNDT==0.0.3b1) (2.7.1)
Requirement already satisfied: wslink>=1.0.4 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from vtk>=8.2->NNDT==0.0.3b1) (1.8.2)
Requirement already satisfied: aiohttp<4 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from wslink>=1.0.4->vtk>=8.2->NNDT==0.0.3b1) (3.8.1)
Requirement already satisfied: multidict<7.0,>=4.5 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from aiohttp<4->wslink>=1.0.4->vtk>=8.2->NNDT==0.0.3b1) (5.2.0)
Requirement already satisfied: attrs>=17.3.0 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from aiohttp<4->wslink>=1.0.4->vtk>=8.2->NNDT==0.0.3b1) (21.4.0)
Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from aiohttp<4->wslink>=1.0.4->vtk>=8.2->NNDT==0.0.3b1) (4.0.1)
Requirement already satisfied: aiosignal>=1.1.2 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from aiohttp<4->wslink>=1.0.4->vtk>=8.2->NNDT==0.0.3b1) (1.2.0)
Requirement already satisfied: yarl<2.0,>=1.0 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from aiohttp<4->wslink>=1.0.4->vtk>=8.2->NNDT==0.0.3b1) (1.6.3)
Requirement already satisfied: frozenlist>=1.1.1 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from aiohttp<4->wslink>=1.0.4->vtk>=8.2->NNDT==0.0.3b1) (1.2.0)
Requirement already satisfied: soupsieve>1.2 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from beautifulsoup4->gdown>=4.5.3->NNDT==0.0.3b1) (2.3.1)
Requirement already satisfied: zipp in /home/kostanew/anaconda3/lib/python3.9/site-packages (from etils[epath]->jax>=0.3.5->NNDT==0.0.3b1) (3.7.0)
Requirement already satisfied: importlib_resources in /home/kostanew/anaconda3/lib/python3.9/site-packages (from etils[epath]->jax>=0.3.5->NNDT==0.0.3b1) (5.9.0)
Requirement already satisfied: appdirs>=1.3.0 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from pooch->pyvista>=0.36.1->NNDT==0.0.3b1) (1.4.4)
Requirement already satisfied: PySocks!=1.5.7,>=1.5.6 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from requests>=2.28.1->NNDT==0.0.3b1) (1.7.1)
Building wheels for collected packages: NNDT
  Building wheel for NNDT (setup.py) ... done
  Created wheel for NNDT: filename=NNDT-0.0.3b1-py3-none-any.whl size=49113 sha256=bcd7d7d129401444fd214b6cbb8982858e19319aab9f346bdeb3be0f9c58a875
  Stored in directory: /tmp/pip-ephem-wheel-cache-609gvw8d/wheels/48/e6/b0/eed564ae0a50dab01b1cf11f639b92028e56be7ec1205789dc
Successfully built NNDT
Installing collected packages: NNDT
  Attempting uninstall: NNDT
    Found existing installation: NNDT 0.0.3a3
    Can't uninstall 'NNDT'. No files were found to uninstall.
Successfully installed NNDT-0.0.3b1
Note: you may need to restart the kernel to use updated packages.
Requirement already satisfied: ipyvtklink in /home/kostanew/anaconda3/lib/python3.9/site-packages (0.2.3)
Requirement already satisfied: ipywidgets~=7.7 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from ipyvtklink) (7.7.2)
Requirement already satisfied: ipyevents>=0.8.0 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from ipyvtklink) (2.0.1)
Requirement already satisfied: ipycanvas>=0.5.0 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from ipyvtklink) (0.13.1)
Requirement already satisfied: pillow>=6.0 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from ipycanvas>=0.5.0->ipyvtklink) (9.0.1)
Requirement already satisfied: numpy in /home/kostanew/anaconda3/lib/python3.9/site-packages (from ipycanvas>=0.5.0->ipyvtklink) (1.22.4)
Requirement already satisfied: jupyterlab-widgets<3,>=1.0.0 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from ipywidgets~=7.7->ipyvtklink) (1.0.0)
Requirement already satisfied: widgetsnbextension~=3.6.0 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from ipywidgets~=7.7->ipyvtklink) (3.6.1)
Requirement already satisfied: ipython>=4.0.0 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from ipywidgets~=7.7->ipyvtklink) (8.2.0)
Requirement already satisfied: ipykernel>=4.5.1 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from ipywidgets~=7.7->ipyvtklink) (6.9.1)
Requirement already satisfied: ipython-genutils~=0.2.0 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from ipywidgets~=7.7->ipyvtklink) (0.2.0)
Requirement already satisfied: traitlets>=4.3.1 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from ipywidgets~=7.7->ipyvtklink) (5.1.1)
Requirement already satisfied: nest-asyncio in /home/kostanew/anaconda3/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets~=7.7->ipyvtklink) (1.5.5)
Requirement already satisfied: debugpy<2.0,>=1.0.0 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets~=7.7->ipyvtklink) (1.5.1)
Requirement already satisfied: matplotlib-inline<0.2.0,>=0.1.0 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets~=7.7->ipyvtklink) (0.1.2)
Requirement already satisfied: tornado<7.0,>=4.2 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets~=7.7->ipyvtklink) (6.1)
Requirement already satisfied: jupyter-client<8.0 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets~=7.7->ipyvtklink) (6.1.12)
Requirement already satisfied: jedi>=0.16 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets~=7.7->ipyvtklink) (0.18.1)
Requirement already satisfied: stack-data in /home/kostanew/anaconda3/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets~=7.7->ipyvtklink) (0.2.0)
Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets~=7.7->ipyvtklink) (3.0.20)
Requirement already satisfied: pexpect>4.3 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets~=7.7->ipyvtklink) (4.8.0)
Requirement already satisfied: decorator in /home/kostanew/anaconda3/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets~=7.7->ipyvtklink) (5.1.1)
Requirement already satisfied: pygments>=2.4.0 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets~=7.7->ipyvtklink) (2.11.2)
Requirement already satisfied: pickleshare in /home/kostanew/anaconda3/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets~=7.7->ipyvtklink) (0.7.5)
Requirement already satisfied: backcall in /home/kostanew/anaconda3/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets~=7.7->ipyvtklink) (0.2.0)
Requirement already satisfied: setuptools>=18.5 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets~=7.7->ipyvtklink) (61.2.0)
Requirement already satisfied: parso<0.9.0,>=0.8.0 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets~=7.7->ipyvtklink) (0.8.3)
Requirement already satisfied: pyzmq>=13 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets~=7.7->ipyvtklink) (22.3.0)
Requirement already satisfied: python-dateutil>=2.1 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets~=7.7->ipyvtklink) (2.8.2)
Requirement already satisfied: jupyter-core>=4.6.0 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets~=7.7->ipyvtklink) (4.9.2)
Requirement already satisfied: ptyprocess>=0.5 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets~=7.7->ipyvtklink) (0.7.0)
Requirement already satisfied: wcwidth in /home/kostanew/anaconda3/lib/python3.9/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets~=7.7->ipyvtklink) (0.2.5)
Requirement already satisfied: six>=1.5 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from python-dateutil>=2.1->jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets~=7.7->ipyvtklink) (1.16.0)
Requirement already satisfied: notebook>=4.4.1 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from widgetsnbextension~=3.6.0->ipywidgets~=7.7->ipyvtklink) (6.4.8)
Requirement already satisfied: Send2Trash>=1.8.0 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets~=7.7->ipyvtklink) (1.8.0)
Requirement already satisfied: nbconvert in /home/kostanew/anaconda3/lib/python3.9/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets~=7.7->ipyvtklink) (6.4.4)
Requirement already satisfied: jinja2 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets~=7.7->ipyvtklink) (2.11.3)
Requirement already satisfied: nbformat in /home/kostanew/anaconda3/lib/python3.9/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets~=7.7->ipyvtklink) (5.3.0)
Requirement already satisfied: prometheus-client in /home/kostanew/anaconda3/lib/python3.9/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets~=7.7->ipyvtklink) (0.13.1)
Requirement already satisfied: argon2-cffi in /home/kostanew/anaconda3/lib/python3.9/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets~=7.7->ipyvtklink) (21.3.0)
Requirement already satisfied: terminado>=0.8.3 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets~=7.7->ipyvtklink) (0.13.1)
Requirement already satisfied: argon2-cffi-bindings in /home/kostanew/anaconda3/lib/python3.9/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets~=7.7->ipyvtklink) (21.2.0)
Requirement already satisfied: cffi>=1.0.1 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets~=7.7->ipyvtklink) (1.15.0)
Requirement already satisfied: pycparser in /home/kostanew/anaconda3/lib/python3.9/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets~=7.7->ipyvtklink) (2.21)
Requirement already satisfied: MarkupSafe>=0.23 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets~=7.7->ipyvtklink) (2.0.1)
Requirement already satisfied: testpath in /home/kostanew/anaconda3/lib/python3.9/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets~=7.7->ipyvtklink) (0.5.0)
Requirement already satisfied: bleach in /home/kostanew/anaconda3/lib/python3.9/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets~=7.7->ipyvtklink) (4.1.0)
Requirement already satisfied: entrypoints>=0.2.2 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets~=7.7->ipyvtklink) (0.4)
Requirement already satisfied: mistune<2,>=0.8.1 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets~=7.7->ipyvtklink) (0.8.4)
Requirement already satisfied: pandocfilters>=1.4.1 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets~=7.7->ipyvtklink) (1.5.0)
Requirement already satisfied: defusedxml in /home/kostanew/anaconda3/lib/python3.9/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets~=7.7->ipyvtklink) (0.7.1)
Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets~=7.7->ipyvtklink) (0.5.13)
Requirement already satisfied: beautifulsoup4 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets~=7.7->ipyvtklink) (4.11.1)
Requirement already satisfied: jupyterlab-pygments in /home/kostanew/anaconda3/lib/python3.9/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets~=7.7->ipyvtklink) (0.1.2)
Requirement already satisfied: jsonschema>=2.6 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets~=7.7->ipyvtklink) (4.4.0)
Requirement already satisfied: fastjsonschema in /home/kostanew/anaconda3/lib/python3.9/site-packages (from nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets~=7.7->ipyvtklink) (2.15.1)
Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from jsonschema>=2.6->nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets~=7.7->ipyvtklink) (0.18.0)
Requirement already satisfied: attrs>=17.4.0 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from jsonschema>=2.6->nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets~=7.7->ipyvtklink) (21.4.0)
Requirement already satisfied: soupsieve>1.2 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from beautifulsoup4->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets~=7.7->ipyvtklink) (2.3.1)
Requirement already satisfied: packaging in /home/kostanew/anaconda3/lib/python3.9/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets~=7.7->ipyvtklink) (21.3)
Requirement already satisfied: webencodings in /home/kostanew/anaconda3/lib/python3.9/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets~=7.7->ipyvtklink) (0.5.1)
Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /home/kostanew/anaconda3/lib/python3.9/site-packages (from packaging->bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets~=7.7->ipyvtklink) (3.0.4)
Requirement already satisfied: pure-eval in /home/kostanew/anaconda3/lib/python3.9/site-packages (from stack-data->ipython>=4.0.0->ipywidgets~=7.7->ipyvtklink) (0.2.2)
Requirement already satisfied: asttokens in /home/kostanew/anaconda3/lib/python3.9/site-packages (from stack-data->ipython>=4.0.0->ipywidgets~=7.7->ipyvtklink) (2.0.5)
Requirement already satisfied: executing in /home/kostanew/anaconda3/lib/python3.9/site-packages (from stack-data->ipython>=4.0.0->ipywidgets~=7.7->ipyvtklink) (0.8.3)
Note: you may need to restart the kernel to use updated packages.
[48]:
import nndt
import nndt.space2 as spc
from nndt.datasets import ACDC

nndt.__version__
[48]:
'0.0.3b1'
[49]:
import pyvista as pv
import jax.numpy as jnp

nndt.init_colab() turns on interactive plots in google collaboratory. This string is not necessary in py-scripts or jupyter notebook.

[50]:
# nndt.init_colab()

Load data

[51]:
ACDC().load()
Downloading...
From: https://drive.google.com/uc?export=download&id=1UzC2WPkjMQSxzI5sj1rMT47URuZbQhYb
To: /home/kostanew/PycharmProjects/nndt/tutorials/.datasets/ACDC_5/temp.7z
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████| 9.01M/9.01M [00:01<00:00, 4.74MB/s]
Loading complete
[52]:
space = spc.load_from_path("./.datasets/ACDC_5")
space.preload("shift_and_scale", ns_padding=(0.1, 0.1, 0.1))
print(space.print())
S:space 0.0.3b1
├── O3D:patient009 ((-0.85, -0.81, -0.87), (0.85, 0.81, 0.87))
│   ├── FS:colored_obj mesh_obj^ ./.datasets/ACDC_5/patient009/colored.obj
│   ├── FS:sdf_npy sdt^ ./.datasets/ACDC_5/patient009/sdf.npy
│   ├── TR:transform shift_and_scale
│   ├── MS:mesh
│   ├── MS:mesh_colors
│   ├── MS:sampling
│   ├── MS:sdt
│   ├── MS:train_task
│   ├── plot(default, filepath=None)
│   ├── print(default|source|full)
│   ├── sampling_eachN_from_mesh(count=N, step=M, shift=K) -> (ns_ind[N], ns_xyz[N])
│   ├── sampling_grid(spacing=(D,H,W)) -> ns_xyz[D,H,W,3]
│   ├── sampling_grid_with_noise(key, spacing=(D,H,W), sigma) -> ns_xyz[N,3]
│   ├── sampling_uniform(key, N) -> ns_xyz[N,3]
│   ├── save_mesh(filepath, {name, array})
│   ├── surface_ind2rgba(ind[..,1]) -> rgba[..,4]
│   ├── surface_ind2xyz(ind[..,1]) -> ns_xyz[..,3]
│   ├── surface_rgba() -> xyz[N,4]
│   ├── surface_xyz() -> xyz[N,3]
│   ├── surface_xyz2ind(ns_xyz[..,3]) -> ns_dist[..,1], ns_ind[..,1]
│   ├── surface_xyz2localsdt(ns_xyz[3], spacing=(D,H,W), scale=1.) -> ns_xyz[D,H,W,3], ns_localsdt[D,H,W,1]
│   ├── surface_xyz2rgba(ns_xyz[..,3]) -> rgba[..,4]
│   ├── surface_xyz2sdt(ns_xyz[..,3]) -> ns_sdt[..,1]
│   ├── train_task_sdt2sdf(filename, **kwargs)
│   ├── transform_sdt_ns2ps(ns_sdt[..]) -> ps_sdt[..]
│   ├── transform_sdt_ps2ns(ps_sdt[..]) -> ns_sdt[..]
│   ├── transform_xyz_ns2ps(ns_xyz[..,3]) -> ps_xyz[..,3]
│   ├── transform_xyz_ps2ns(ps_xyz[..,3]) -> ns_xyz[..,3]
│   └── unload_from_memory()
├── O3D:patient029 ((-0.85, -0.88, -0.93), (0.85, 0.88, 0.93))
│   ├── FS:colored_obj mesh_obj^ ./.datasets/ACDC_5/patient029/colored.obj
│   ├── FS:sdf_npy sdt^ ./.datasets/ACDC_5/patient029/sdf.npy
│   ├── TR:transform shift_and_scale
│   ├── MS:mesh
│   ├── MS:mesh_colors
│   ├── MS:sampling
│   ├── MS:sdt
│   ├── MS:train_task
│   ├── plot(default, filepath=None)
│   ├── print(default|source|full)
│   ├── sampling_eachN_from_mesh(count=N, step=M, shift=K) -> (ns_ind[N], ns_xyz[N])
│   ├── sampling_grid(spacing=(D,H,W)) -> ns_xyz[D,H,W,3]
│   ├── sampling_grid_with_noise(key, spacing=(D,H,W), sigma) -> ns_xyz[N,3]
│   ├── sampling_uniform(key, N) -> ns_xyz[N,3]
│   ├── save_mesh(filepath, {name, array})
│   ├── surface_ind2rgba(ind[..,1]) -> rgba[..,4]
│   ├── surface_ind2xyz(ind[..,1]) -> ns_xyz[..,3]
│   ├── surface_rgba() -> xyz[N,4]
│   ├── surface_xyz() -> xyz[N,3]
│   ├── surface_xyz2ind(ns_xyz[..,3]) -> ns_dist[..,1], ns_ind[..,1]
│   ├── surface_xyz2localsdt(ns_xyz[3], spacing=(D,H,W), scale=1.) -> ns_xyz[D,H,W,3], ns_localsdt[D,H,W,1]
│   ├── surface_xyz2rgba(ns_xyz[..,3]) -> rgba[..,4]
│   ├── surface_xyz2sdt(ns_xyz[..,3]) -> ns_sdt[..,1]
│   ├── train_task_sdt2sdf(filename, **kwargs)
│   ├── transform_sdt_ns2ps(ns_sdt[..]) -> ps_sdt[..]
│   ├── transform_sdt_ps2ns(ps_sdt[..]) -> ns_sdt[..]
│   ├── transform_xyz_ns2ps(ns_xyz[..,3]) -> ps_xyz[..,3]
│   ├── transform_xyz_ps2ns(ps_xyz[..,3]) -> ns_xyz[..,3]
│   └── unload_from_memory()
├── O3D:patient049 ((-0.86, -0.83, -0.60), (0.86, 0.83, 0.60))
│   ├── FS:colored_obj mesh_obj^ ./.datasets/ACDC_5/patient049/colored.obj
│   ├── FS:sdf_npy sdt^ ./.datasets/ACDC_5/patient049/sdf.npy
│   ├── TR:transform shift_and_scale
│   ├── MS:mesh
│   ├── MS:mesh_colors
│   ├── MS:sampling
│   ├── MS:sdt
│   ├── MS:train_task
│   ├── plot(default, filepath=None)
│   ├── print(default|source|full)
│   ├── sampling_eachN_from_mesh(count=N, step=M, shift=K) -> (ns_ind[N], ns_xyz[N])
│   ├── sampling_grid(spacing=(D,H,W)) -> ns_xyz[D,H,W,3]
│   ├── sampling_grid_with_noise(key, spacing=(D,H,W), sigma) -> ns_xyz[N,3]
│   ├── sampling_uniform(key, N) -> ns_xyz[N,3]
│   ├── save_mesh(filepath, {name, array})
│   ├── surface_ind2rgba(ind[..,1]) -> rgba[..,4]
│   ├── surface_ind2xyz(ind[..,1]) -> ns_xyz[..,3]
│   ├── surface_rgba() -> xyz[N,4]
│   ├── surface_xyz() -> xyz[N,3]
│   ├── surface_xyz2ind(ns_xyz[..,3]) -> ns_dist[..,1], ns_ind[..,1]
│   ├── surface_xyz2localsdt(ns_xyz[3], spacing=(D,H,W), scale=1.) -> ns_xyz[D,H,W,3], ns_localsdt[D,H,W,1]
│   ├── surface_xyz2rgba(ns_xyz[..,3]) -> rgba[..,4]
│   ├── surface_xyz2sdt(ns_xyz[..,3]) -> ns_sdt[..,1]
│   ├── train_task_sdt2sdf(filename, **kwargs)
│   ├── transform_sdt_ns2ps(ns_sdt[..]) -> ps_sdt[..]
│   ├── transform_sdt_ps2ns(ps_sdt[..]) -> ns_sdt[..]
│   ├── transform_xyz_ns2ps(ns_xyz[..,3]) -> ps_xyz[..,3]
│   ├── transform_xyz_ps2ns(ps_xyz[..,3]) -> ns_xyz[..,3]
│   └── unload_from_memory()
├── O3D:patient069 ((-0.68, -0.58, -0.58), (0.68, 0.58, 0.58))
│   ├── FS:colored_obj mesh_obj^ ./.datasets/ACDC_5/patient069/colored.obj
│   ├── FS:sdf_npy sdt^ ./.datasets/ACDC_5/patient069/sdf.npy
│   ├── TR:transform shift_and_scale
│   ├── MS:mesh
│   ├── MS:mesh_colors
│   ├── MS:sampling
│   ├── MS:sdt
│   ├── MS:train_task
│   ├── plot(default, filepath=None)
│   ├── print(default|source|full)
│   ├── sampling_eachN_from_mesh(count=N, step=M, shift=K) -> (ns_ind[N], ns_xyz[N])
│   ├── sampling_grid(spacing=(D,H,W)) -> ns_xyz[D,H,W,3]
│   ├── sampling_grid_with_noise(key, spacing=(D,H,W), sigma) -> ns_xyz[N,3]
│   ├── sampling_uniform(key, N) -> ns_xyz[N,3]
│   ├── save_mesh(filepath, {name, array})
│   ├── surface_ind2rgba(ind[..,1]) -> rgba[..,4]
│   ├── surface_ind2xyz(ind[..,1]) -> ns_xyz[..,3]
│   ├── surface_rgba() -> xyz[N,4]
│   ├── surface_xyz() -> xyz[N,3]
│   ├── surface_xyz2ind(ns_xyz[..,3]) -> ns_dist[..,1], ns_ind[..,1]
│   ├── surface_xyz2localsdt(ns_xyz[3], spacing=(D,H,W), scale=1.) -> ns_xyz[D,H,W,3], ns_localsdt[D,H,W,1]
│   ├── surface_xyz2rgba(ns_xyz[..,3]) -> rgba[..,4]
│   ├── surface_xyz2sdt(ns_xyz[..,3]) -> ns_sdt[..,1]
│   ├── train_task_sdt2sdf(filename, **kwargs)
│   ├── transform_sdt_ns2ps(ns_sdt[..]) -> ps_sdt[..]
│   ├── transform_sdt_ps2ns(ps_sdt[..]) -> ns_sdt[..]
│   ├── transform_xyz_ns2ps(ns_xyz[..,3]) -> ps_xyz[..,3]
│   ├── transform_xyz_ps2ns(ps_xyz[..,3]) -> ns_xyz[..,3]
│   └── unload_from_memory()
├── O3D:patient089 ((-0.83, -0.72, -0.55), (0.83, 0.72, 0.55))
│   ├── FS:colored_obj mesh_obj^ ./.datasets/ACDC_5/patient089/colored.obj
│   ├── FS:sdf_npy sdt^ ./.datasets/ACDC_5/patient089/sdf.npy
│   ├── TR:transform shift_and_scale
│   ├── MS:mesh
│   ├── MS:mesh_colors
│   ├── MS:sampling
│   ├── MS:sdt
│   ├── MS:train_task
│   ├── plot(default, filepath=None)
│   ├── print(default|source|full)
│   ├── sampling_eachN_from_mesh(count=N, step=M, shift=K) -> (ns_ind[N], ns_xyz[N])
│   ├── sampling_grid(spacing=(D,H,W)) -> ns_xyz[D,H,W,3]
│   ├── sampling_grid_with_noise(key, spacing=(D,H,W), sigma) -> ns_xyz[N,3]
│   ├── sampling_uniform(key, N) -> ns_xyz[N,3]
│   ├── save_mesh(filepath, {name, array})
│   ├── surface_ind2rgba(ind[..,1]) -> rgba[..,4]
│   ├── surface_ind2xyz(ind[..,1]) -> ns_xyz[..,3]
│   ├── surface_rgba() -> xyz[N,4]
│   ├── surface_xyz() -> xyz[N,3]
│   ├── surface_xyz2ind(ns_xyz[..,3]) -> ns_dist[..,1], ns_ind[..,1]
│   ├── surface_xyz2localsdt(ns_xyz[3], spacing=(D,H,W), scale=1.) -> ns_xyz[D,H,W,3], ns_localsdt[D,H,W,1]
│   ├── surface_xyz2rgba(ns_xyz[..,3]) -> rgba[..,4]
│   ├── surface_xyz2sdt(ns_xyz[..,3]) -> ns_sdt[..,1]
│   ├── train_task_sdt2sdf(filename, **kwargs)
│   ├── transform_sdt_ns2ps(ns_sdt[..]) -> ps_sdt[..]
│   ├── transform_sdt_ps2ns(ps_sdt[..]) -> ns_sdt[..]
│   ├── transform_xyz_ns2ps(ns_xyz[..,3]) -> ps_xyz[..,3]
│   ├── transform_xyz_ps2ns(ps_xyz[..,3]) -> ns_xyz[..,3]
│   └── unload_from_memory()
├── MS:sampling
├── init()
├── plot(default, filepath=None)
├── preload(identity|shift_and_scale|to_cube, scale, keep_in_memory=True)
├── print(default|source|full)
├── sampling_grid(spacing=(D,H,W)) -> ns_xyz[D,H,W,3]
├── sampling_grid_with_noise(key, spacing=(D,H,W), sigma) -> ns_xyz[N,3]
├── sampling_uniform(key, N) -> ns_xyz[N,3]
├── save_space_to_file(filepath)
├── to_json()
└── unload_from_memory()

Examples for save_3D_slices with data arrays

[53]:
cube_xyz = space.patient009.sampling_grid((32, 32, 32))
cube_std = space.patient009.surface_xyz2sdt(cube_xyz)
cube_std = cube_std[:, :, :, 0]
cube_xyz.shape, cube_std.shape
[53]:
((32, 32, 32, 3), (32, 32, 32))
[54]:
nndt.save_3D_slices(cube_std, "./viz1.png", include_boundary=False)
../_images/notebooks_tutorial2_research_viz_11_0.png
[55]:
nndt.save_3D_slices(
    cube_std, "./viz1.png", levels=(), level_colors=(), include_boundary=False
)
../_images/notebooks_tutorial2_research_viz_12_0.png

Examples for save_3D_slices with RGB/RGBA colors

[56]:
cube_rgba = space.patient009.surface_xyz2rgba(cube_xyz)
cube_rgba = cube_rgba
cube_rgba.shape
[56]:
(32, 32, 32, 4)
[57]:
nndt.save_3D_slices(cube_rgba, include_boundary=True)
../_images/notebooks_tutorial2_research_viz_15_0.png

Examples for save_sdt_as_obj

[58]:
nndt.save_sdt_as_obj(cube_std, "./model.obj")
[59]:
mesh = pv.read("./model.obj")
cpos = mesh.plot()

Load data and put values into .vtp output using .save_mesh()

[60]:
vertex = space.patient009.surface_xyz()
vertex_rgba = space.patient009.surface_rgba()
vertex_from_full_sampling = space.patient009.sampling_eachN_from_mesh(len(vertex), 1, 0)
len(vertex), len(vertex_rgba), len(vertex_from_full_sampling[1])
[60]:
(2502, 2502, 2502)
[61]:
jnp.allclose(vertex, vertex_from_full_sampling[1])
[61]:
DeviceArray(True, dtype=bool)
[62]:
space.patient009.save_mesh(
    "./output.vtp",
    {
        "red": vertex_rgba[:, 0],
        "green": vertex_rgba[:, 1],
        "blue": vertex_rgba[:, 2],
        "alpha": vertex_rgba[:, 2],
        "x": vertex[:, 0],
        "y": vertex[:, 1],
        "z": vertex[:, 2],
        "target_class": jnp.argmax(vertex_rgba[:, :3], axis=1),
    },
)
[63]:
mesh = pv.read("./output.vtp")
cpos = mesh.plot(scalars="target_class", show_edges=True)