diff --git a/001550/PaganLab/01_behavior_demo.ipynb b/001550/PaganLab/01_behavior_demo.ipynb index edc3b65..2d87520 100644 --- a/001550/PaganLab/01_behavior_demo.ipynb +++ b/001550/PaganLab/01_behavior_demo.ipynb @@ -26,8 +26,8 @@ "id": "38b72d00", "metadata": {}, "source": [ - "## Installing requirements", - "", + "## Installing requirements\n", + "\n", "The cell below installs every Python package needed to run this notebook, at fully pinned versions, using [`uv`](https://github.com/astral-sh/uv) for fast resolution. In Colab the cell is collapsed by default — click the ▶ button to run it." ] }, @@ -40,174 +40,174 @@ "execution_count": null, "outputs": [], "source": [ - "#@title Installing requirements (click ▶ to run) { display-mode: \"form\" }", - "# Colab provides Python 3.12. We install with `uv --system` because Colab's", - "# kernel runs outside a virtualenv. All versions (direct + transitive) are", - "# pinned below so the notebook is reproducible regardless of resolver drift.", - "!pip install -q uv", - "!uv pip install --system \\", - " \"acres==0.5.0\" \\", - " \"aiohappyeyeballs==2.6.1\" \\", - " \"aiohttp==3.13.5\" \\", - " \"aiosignal==1.4.0\" \\", - " \"annotated-types==0.7.0\" \\", - " \"anyio==4.13.0\" \\", - " \"argon2-cffi==25.1.0\" \\", - " \"argon2-cffi-bindings==25.1.0\" \\", - " \"arrow==1.4.0\" \\", - " \"asciitree==0.3.3\" \\", - " \"attrs==26.1.0\" \\", - " \"backcall==0.2.0\" \\", - " \"beautifulsoup4==4.13.5\" \\", - " \"bids-validator-deno==2.4.1\" \\", - " \"bidsschematools==1.2.2\" \\", - " \"bleach==6.3.0\" \\", - " \"blessed==1.38.0\" \\", - " \"certifi==2026.4.22\" \\", - " \"cffi==2.0.0\" \\", - " \"charset-normalizer==3.4.7\" \\", - " \"ci-info==0.4.0\" \\", - " \"click==8.1.8\" \\", - " \"click-didyoumean==0.3.1\" \\", - " \"contourpy==1.3.3\" \\", - " \"cryptography==43.0.3\" \\", - " \"cycler==0.12.1\" \\", - " \"dandi==0.76.4\" \\", - " \"dandischema==0.12.1\" \\", - " \"debugpy==1.8.15\" \\", - " \"decorator==4.4.2\" \\", - " \"defusedxml==0.7.1\" \\", - " \"deprecated==1.3.1\" \\", - " \"dnspython==2.8.0\" \\", - " \"email-validator==2.3.0\" \\", - " \"entrypoints==0.4\" \\", - " \"etelemetry==0.3.1\" \\", - " \"fasteners==0.20\" \\", - " \"fastjsonschema==2.21.2\" \\", - " \"fonttools==4.62.1\" \\", - " \"fqdn==1.5.1\" \\", - " \"frozenlist==1.8.0\" \\", - " \"fscacher==0.4.4\" \\", - " \"fsspec==2025.3.0\" \\", - " \"h5py==3.16.0\" \\", - " \"hdmf==4.3.1\" \\", - " \"humanize==4.15.0\" \\", - " \"idna==3.13\" \\", - " \"interleave==0.3.0\" \\", - " \"ipykernel==6.17.1\" \\", - " \"ipython==7.34.0\" \\", - " \"ipython-genutils==0.2.0\" \\", - " \"ipywidgets==7.7.1\" \\", - " \"isodate==0.7.2\" \\", - " \"isoduration==20.11.0\" \\", - " \"jaraco-classes==3.4.0\" \\", - " \"jaraco-context==6.1.2\" \\", - " \"jaraco-functools==4.4.0\" \\", - " \"jedi==0.20.0\" \\", - " \"jeepney==0.9.0\" \\", - " \"jinja2==3.1.6\" \\", - " \"joblib==1.5.3\" \\", - " \"jsonpointer==3.1.1\" \\", - " \"jsonschema==4.26.0\" \\", - " \"jsonschema-specifications==2025.9.1\" \\", - " \"jupyter-client==7.4.9\" \\", - " \"jupyter-core==5.9.1\" \\", - " \"jupyter-events==0.12.1\" \\", - " \"jupyter-server==2.14.0\" \\", - " \"jupyter-server-terminals==0.5.4\" \\", - " \"jupyterlab-pygments==0.3.0\" \\", - " \"jupyterlab-widgets==3.0.16\" \\", - " \"keyring==25.7.0\" \\", - " \"keyrings-alt==5.0.2\" \\", - " \"kiwisolver==1.5.0\" \\", - " \"lark==1.3.1\" \\", - " \"markupsafe==3.0.3\" \\", - " \"matplotlib==3.10.0\" \\", - " \"matplotlib-inline==0.2.1\" \\", - " \"mistune==3.2.0\" \\", - " \"ml-dtypes==0.5.4\" \\", - " \"more-itertools==10.8.0\" \\", - " \"multidict==6.7.1\" \\", - " \"natsort==8.4.0\" \\", - " \"nbclassic==1.3.3\" \\", - " \"nbclient==0.10.4\" \\", - " \"nbconvert==7.17.1\" \\", - " \"nbformat==5.10.4\" \\", - " \"ndx-ophys-devices==0.3.1\" \\", - " \"ndx-optogenetics==0.3.0\" \\", - " \"ndx-structured-behavior @ git+https://github.com/rly/ndx-structured-behavior.git@b31692480fa8c7e005dea7d843528582c02ef7e2\" \\", - " \"nest-asyncio==1.6.0\" \\", - " \"networkx==3.6.1\" \\", - " \"notebook==6.5.7\" \\", - " \"notebook-shim==0.2.4\" \\", - " \"numcodecs==0.15.1\" \\", - " \"numpy==2.0.2\" \\", - " \"nwbinspector==0.7.2\" \\", - " \"overrides==7.7.0\" \\", - " \"packaging==26.1\" \\", - " \"pandas==2.2.2\" \\", - " \"pandocfilters==1.5.1\" \\", - " \"parso==0.8.6\" \\", - " \"pexpect==4.9.0\" \\", - " \"pickleshare==0.7.5\" \\", - " \"pillow==11.3.0\" \\", - " \"platformdirs==4.9.6\" \\", - " \"prometheus-client==0.25.0\" \\", - " \"prompt-toolkit==3.0.52\" \\", - " \"propcache==0.4.1\" \\", - " \"psutil==5.9.5\" \\", - " \"ptyprocess==0.7.0\" \\", - " \"pycparser==3.0\" \\", - " \"pycryptodomex==3.23.0\" \\", - " \"pydantic==2.12.3\" \\", - " \"pydantic-core==2.41.4\" \\", - " \"pydantic-settings==2.14.0\" \\", - " \"pygments==2.20.0\" \\", - " \"pynwb==3.1.3\" \\", - " \"pyout==0.8.1\" \\", - " \"pyparsing==3.3.2\" \\", - " \"python-dateutil==2.9.0.post0\" \\", - " \"python-dotenv==1.2.2\" \\", - " \"python-json-logger==4.1.0\" \\", - " \"pytz==2025.2\" \\", - " \"pyyaml==6.0.3\" \\", - " \"pyzmq==26.2.1\" \\", - " \"referencing==0.37.0\" \\", - " \"remfile==0.1.13\" \\", - " \"requests==2.32.4\" \\", - " \"rfc3339-validator==0.1.4\" \\", - " \"rfc3986-validator==0.1.1\" \\", - " \"rfc3987==1.3.8\" \\", - " \"rfc3987-syntax==1.1.0\" \\", - " \"rpds-py==0.30.0\" \\", - " \"ruamel-yaml==0.19.1\" \\", - " \"scipy==1.16.3\" \\", - " \"secretstorage==3.5.0\" \\", - " \"semantic-version==2.10.0\" \\", - " \"send2trash==2.1.0\" \\", - " \"setuptools==75.2.0\" \\", - " \"six==1.17.0\" \\", - " \"soupsieve==2.8.3\" \\", - " \"tenacity==9.1.4\" \\", - " \"tensorstore==0.1.82\" \\", - " \"terminado==0.18.1\" \\", - " \"tinycss2==1.4.0\" \\", - " \"tornado==6.5.1\" \\", - " \"tqdm==4.67.3\" \\", - " \"traitlets==5.7.1\" \\", - " \"typing-extensions==4.15.0\" \\", - " \"typing-inspection==0.4.2\" \\", - " \"tzdata==2026.1\" \\", - " \"uri-template==1.3.0\" \\", - " \"urllib3==2.5.0\" \\", - " \"wcwidth==0.6.0\" \\", - " \"webcolors==25.10.0\" \\", - " \"webencodings==0.5.1\" \\", - " \"websocket-client==1.9.0\" \\", - " \"widgetsnbextension==3.6.10\" \\", - " \"wrapt==2.1.2\" \\", - " \"yarl==1.23.0\" \\", - " \"zarr==2.18.7\" \\", + "#@title Installing requirements (click ▶ to run) { display-mode: \"form\" }\n", + "# Colab provides Python 3.12. We install with `uv --system` because Colab's\n", + "# kernel runs outside a virtualenv. All versions (direct + transitive) are\n", + "# pinned below so the notebook is reproducible regardless of resolver drift.\n", + "!pip install -q uv\n", + "!uv pip install --system \\\n", + " \"acres==0.5.0\" \\\n", + " \"aiohappyeyeballs==2.6.1\" \\\n", + " \"aiohttp==3.13.5\" \\\n", + " \"aiosignal==1.4.0\" \\\n", + " \"annotated-types==0.7.0\" \\\n", + " \"anyio==4.13.0\" \\\n", + " \"argon2-cffi==25.1.0\" \\\n", + " \"argon2-cffi-bindings==25.1.0\" \\\n", + " \"arrow==1.4.0\" \\\n", + " \"asciitree==0.3.3\" \\\n", + " \"attrs==26.1.0\" \\\n", + " \"backcall==0.2.0\" \\\n", + " \"beautifulsoup4==4.13.5\" \\\n", + " \"bids-validator-deno==2.4.1\" \\\n", + " \"bidsschematools==1.2.2\" \\\n", + " \"bleach==6.3.0\" \\\n", + " \"blessed==1.38.0\" \\\n", + " \"certifi==2026.4.22\" \\\n", + " \"cffi==2.0.0\" \\\n", + " \"charset-normalizer==3.4.7\" \\\n", + " \"ci-info==0.4.0\" \\\n", + " \"click==8.1.8\" \\\n", + " \"click-didyoumean==0.3.1\" \\\n", + " \"contourpy==1.3.3\" \\\n", + " \"cryptography==43.0.3\" \\\n", + " \"cycler==0.12.1\" \\\n", + " \"dandi==0.76.4\" \\\n", + " \"dandischema==0.12.1\" \\\n", + " \"debugpy==1.8.15\" \\\n", + " \"decorator==4.4.2\" \\\n", + " \"defusedxml==0.7.1\" \\\n", + " \"deprecated==1.3.1\" \\\n", + " \"dnspython==2.8.0\" \\\n", + " \"email-validator==2.3.0\" \\\n", + " \"entrypoints==0.4\" \\\n", + " \"etelemetry==0.3.1\" \\\n", + " \"fasteners==0.20\" \\\n", + " \"fastjsonschema==2.21.2\" \\\n", + " \"fonttools==4.62.1\" \\\n", + " \"fqdn==1.5.1\" \\\n", + " \"frozenlist==1.8.0\" \\\n", + " \"fscacher==0.4.4\" \\\n", + " \"fsspec==2025.3.0\" \\\n", + " \"h5py==3.16.0\" \\\n", + " \"hdmf==4.3.1\" \\\n", + " \"humanize==4.15.0\" \\\n", + " \"idna==3.13\" \\\n", + " \"interleave==0.3.0\" \\\n", + " \"ipykernel==6.17.1\" \\\n", + " \"ipython==7.34.0\" \\\n", + " \"ipython-genutils==0.2.0\" \\\n", + " \"ipywidgets==7.7.1\" \\\n", + " \"isodate==0.7.2\" \\\n", + " \"isoduration==20.11.0\" \\\n", + " \"jaraco-classes==3.4.0\" \\\n", + " \"jaraco-context==6.1.2\" \\\n", + " \"jaraco-functools==4.4.0\" \\\n", + " \"jedi==0.20.0\" \\\n", + " \"jeepney==0.9.0\" \\\n", + " \"jinja2==3.1.6\" \\\n", + " \"joblib==1.5.3\" \\\n", + " \"jsonpointer==3.1.1\" \\\n", + " \"jsonschema==4.26.0\" \\\n", + " \"jsonschema-specifications==2025.9.1\" \\\n", + " \"jupyter-client==7.4.9\" \\\n", + " \"jupyter-core==5.9.1\" \\\n", + " \"jupyter-events==0.12.1\" \\\n", + " \"jupyter-server==2.14.0\" \\\n", + " \"jupyter-server-terminals==0.5.4\" \\\n", + " \"jupyterlab-pygments==0.3.0\" \\\n", + " \"jupyterlab-widgets==3.0.16\" \\\n", + " \"keyring==25.7.0\" \\\n", + " \"keyrings-alt==5.0.2\" \\\n", + " \"kiwisolver==1.5.0\" \\\n", + " \"lark==1.3.1\" \\\n", + " \"markupsafe==3.0.3\" \\\n", + " \"matplotlib==3.10.0\" \\\n", + " \"matplotlib-inline==0.2.1\" \\\n", + " \"mistune==3.2.0\" \\\n", + " \"ml-dtypes==0.5.4\" \\\n", + " \"more-itertools==10.8.0\" \\\n", + " \"multidict==6.7.1\" \\\n", + " \"natsort==8.4.0\" \\\n", + " \"nbclassic==1.3.3\" \\\n", + " \"nbclient==0.10.4\" \\\n", + " \"nbconvert==7.17.1\" \\\n", + " \"nbformat==5.10.4\" \\\n", + " \"ndx-ophys-devices==0.3.1\" \\\n", + " \"ndx-optogenetics==0.3.0\" \\\n", + " \"ndx-structured-behavior @ git+https://github.com/rly/ndx-structured-behavior.git@b31692480fa8c7e005dea7d843528582c02ef7e2\" \\\n", + " \"nest-asyncio==1.6.0\" \\\n", + " \"networkx==3.6.1\" \\\n", + " \"notebook==6.5.7\" \\\n", + " \"notebook-shim==0.2.4\" \\\n", + " \"numcodecs==0.15.1\" \\\n", + " \"numpy==2.0.2\" \\\n", + " \"nwbinspector==0.7.2\" \\\n", + " \"overrides==7.7.0\" \\\n", + " \"packaging==26.1\" \\\n", + " \"pandas==2.2.2\" \\\n", + " \"pandocfilters==1.5.1\" \\\n", + " \"parso==0.8.6\" \\\n", + " \"pexpect==4.9.0\" \\\n", + " \"pickleshare==0.7.5\" \\\n", + " \"pillow==11.3.0\" \\\n", + " \"platformdirs==4.9.6\" \\\n", + " \"prometheus-client==0.25.0\" \\\n", + " \"prompt-toolkit==3.0.52\" \\\n", + " \"propcache==0.4.1\" \\\n", + " \"psutil==5.9.5\" \\\n", + " \"ptyprocess==0.7.0\" \\\n", + " \"pycparser==3.0\" \\\n", + " \"pycryptodomex==3.23.0\" \\\n", + " \"pydantic==2.12.3\" \\\n", + " \"pydantic-core==2.41.4\" \\\n", + " \"pydantic-settings==2.14.0\" \\\n", + " \"pygments==2.20.0\" \\\n", + " \"pynwb==3.1.3\" \\\n", + " \"pyout==0.8.1\" \\\n", + " \"pyparsing==3.3.2\" \\\n", + " \"python-dateutil==2.9.0.post0\" \\\n", + " \"python-dotenv==1.2.2\" \\\n", + " \"python-json-logger==4.1.0\" \\\n", + " \"pytz==2025.2\" \\\n", + " \"pyyaml==6.0.3\" \\\n", + " \"pyzmq==26.2.1\" \\\n", + " \"referencing==0.37.0\" \\\n", + " \"remfile==0.1.13\" \\\n", + " \"requests==2.32.4\" \\\n", + " \"rfc3339-validator==0.1.4\" \\\n", + " \"rfc3986-validator==0.1.1\" \\\n", + " \"rfc3987==1.3.8\" \\\n", + " \"rfc3987-syntax==1.1.0\" \\\n", + " \"rpds-py==0.30.0\" \\\n", + " \"ruamel-yaml==0.19.1\" \\\n", + " \"scipy==1.16.3\" \\\n", + " \"secretstorage==3.5.0\" \\\n", + " \"semantic-version==2.10.0\" \\\n", + " \"send2trash==2.1.0\" \\\n", + " \"setuptools==75.2.0\" \\\n", + " \"six==1.17.0\" \\\n", + " \"soupsieve==2.8.3\" \\\n", + " \"tenacity==9.1.4\" \\\n", + " \"tensorstore==0.1.82\" \\\n", + " \"terminado==0.18.1\" \\\n", + " \"tinycss2==1.4.0\" \\\n", + " \"tornado==6.5.1\" \\\n", + " \"tqdm==4.67.3\" \\\n", + " \"traitlets==5.7.1\" \\\n", + " \"typing-extensions==4.15.0\" \\\n", + " \"typing-inspection==0.4.2\" \\\n", + " \"tzdata==2026.1\" \\\n", + " \"uri-template==1.3.0\" \\\n", + " \"urllib3==2.5.0\" \\\n", + " \"wcwidth==0.6.0\" \\\n", + " \"webcolors==25.10.0\" \\\n", + " \"webencodings==0.5.1\" \\\n", + " \"websocket-client==1.9.0\" \\\n", + " \"widgetsnbextension==3.6.10\" \\\n", + " \"wrapt==2.1.2\" \\\n", + " \"yarl==1.23.0\" \\\n", + " \"zarr==2.18.7\" \\\n", " \"zarr-checksum==0.4.7\"" ] }, @@ -216,8 +216,8 @@ "id": "b2fbd796", "metadata": {}, "source": [ - "> **⚠️ Restart runtime after install**", - ">", + "> **⚠️ Restart runtime after install**\n", + ">\n", "> The install may upgrade packages already loaded in the kernel. Go to **Runtime → Restart session**, then **Run all cells below** (skip this install cell on re-run)." ] }, diff --git a/001550/PaganLab/02_optogenetics_demo.ipynb b/001550/PaganLab/02_optogenetics_demo.ipynb index 098559c..70f97ef 100644 --- a/001550/PaganLab/02_optogenetics_demo.ipynb +++ b/001550/PaganLab/02_optogenetics_demo.ipynb @@ -13,8 +13,8 @@ "id": "2b380861", "metadata": {}, "source": [ - "## Installing requirements", - "", + "## Installing requirements\n", + "\n", "The cell below installs every Python package needed to run this notebook, at fully pinned versions, using [`uv`](https://github.com/astral-sh/uv) for fast resolution. In Colab the cell is collapsed by default — click the ▶ button to run it." ] }, @@ -27,174 +27,174 @@ "execution_count": null, "outputs": [], "source": [ - "#@title Installing requirements (click ▶ to run) { display-mode: \"form\" }", - "# Colab provides Python 3.12. We install with `uv --system` because Colab's", - "# kernel runs outside a virtualenv. All versions (direct + transitive) are", - "# pinned below so the notebook is reproducible regardless of resolver drift.", - "!pip install -q uv", - "!uv pip install --system \\", - " \"acres==0.5.0\" \\", - " \"aiohappyeyeballs==2.6.1\" \\", - " \"aiohttp==3.13.5\" \\", - " \"aiosignal==1.4.0\" \\", - " \"annotated-types==0.7.0\" \\", - " \"anyio==4.13.0\" \\", - " \"argon2-cffi==25.1.0\" \\", - " \"argon2-cffi-bindings==25.1.0\" \\", - " \"arrow==1.4.0\" \\", - " \"asciitree==0.3.3\" \\", - " \"attrs==26.1.0\" \\", - " \"backcall==0.2.0\" \\", - " \"beautifulsoup4==4.13.5\" \\", - " \"bids-validator-deno==2.4.1\" \\", - " \"bidsschematools==1.2.2\" \\", - " \"bleach==6.3.0\" \\", - " \"blessed==1.38.0\" \\", - " \"certifi==2026.4.22\" \\", - " \"cffi==2.0.0\" \\", - " \"charset-normalizer==3.4.7\" \\", - " \"ci-info==0.4.0\" \\", - " \"click==8.1.8\" \\", - " \"click-didyoumean==0.3.1\" \\", - " \"contourpy==1.3.3\" \\", - " \"cryptography==43.0.3\" \\", - " \"cycler==0.12.1\" \\", - " \"dandi==0.76.4\" \\", - " \"dandischema==0.12.1\" \\", - " \"debugpy==1.8.15\" \\", - " \"decorator==4.4.2\" \\", - " \"defusedxml==0.7.1\" \\", - " \"deprecated==1.3.1\" \\", - " \"dnspython==2.8.0\" \\", - " \"email-validator==2.3.0\" \\", - " \"entrypoints==0.4\" \\", - " \"etelemetry==0.3.1\" \\", - " \"fasteners==0.20\" \\", - " \"fastjsonschema==2.21.2\" \\", - " \"fonttools==4.62.1\" \\", - " \"fqdn==1.5.1\" \\", - " \"frozenlist==1.8.0\" \\", - " \"fscacher==0.4.4\" \\", - " \"fsspec==2025.3.0\" \\", - " \"h5py==3.16.0\" \\", - " \"hdmf==4.3.1\" \\", - " \"humanize==4.15.0\" \\", - " \"idna==3.13\" \\", - " \"interleave==0.3.0\" \\", - " \"ipykernel==6.17.1\" \\", - " \"ipython==7.34.0\" \\", - " \"ipython-genutils==0.2.0\" \\", - " \"ipywidgets==7.7.1\" \\", - " \"isodate==0.7.2\" \\", - " \"isoduration==20.11.0\" \\", - " \"jaraco-classes==3.4.0\" \\", - " \"jaraco-context==6.1.2\" \\", - " \"jaraco-functools==4.4.0\" \\", - " \"jedi==0.20.0\" \\", - " \"jeepney==0.9.0\" \\", - " \"jinja2==3.1.6\" \\", - " \"joblib==1.5.3\" \\", - " \"jsonpointer==3.1.1\" \\", - " \"jsonschema==4.26.0\" \\", - " \"jsonschema-specifications==2025.9.1\" \\", - " \"jupyter-client==7.4.9\" \\", - " \"jupyter-core==5.9.1\" \\", - " \"jupyter-events==0.12.1\" \\", - " \"jupyter-server==2.14.0\" \\", - " \"jupyter-server-terminals==0.5.4\" \\", - " \"jupyterlab-pygments==0.3.0\" \\", - " \"jupyterlab-widgets==3.0.16\" \\", - " \"keyring==25.7.0\" \\", - " \"keyrings-alt==5.0.2\" \\", - " \"kiwisolver==1.5.0\" \\", - " \"lark==1.3.1\" \\", - " \"markupsafe==3.0.3\" \\", - " \"matplotlib==3.10.0\" \\", - " \"matplotlib-inline==0.2.1\" \\", - " \"mistune==3.2.0\" \\", - " \"ml-dtypes==0.5.4\" \\", - " \"more-itertools==10.8.0\" \\", - " \"multidict==6.7.1\" \\", - " \"natsort==8.4.0\" \\", - " \"nbclassic==1.3.3\" \\", - " \"nbclient==0.10.4\" \\", - " \"nbconvert==7.17.1\" \\", - " \"nbformat==5.10.4\" \\", - " \"ndx-ophys-devices==0.3.1\" \\", - " \"ndx-optogenetics==0.3.0\" \\", - " \"ndx-structured-behavior @ git+https://github.com/rly/ndx-structured-behavior.git@b31692480fa8c7e005dea7d843528582c02ef7e2\" \\", - " \"nest-asyncio==1.6.0\" \\", - " \"networkx==3.6.1\" \\", - " \"notebook==6.5.7\" \\", - " \"notebook-shim==0.2.4\" \\", - " \"numcodecs==0.15.1\" \\", - " \"numpy==2.0.2\" \\", - " \"nwbinspector==0.7.2\" \\", - " \"overrides==7.7.0\" \\", - " \"packaging==26.1\" \\", - " \"pandas==2.2.2\" \\", - " \"pandocfilters==1.5.1\" \\", - " \"parso==0.8.6\" \\", - " \"pexpect==4.9.0\" \\", - " \"pickleshare==0.7.5\" \\", - " \"pillow==11.3.0\" \\", - " \"platformdirs==4.9.6\" \\", - " \"prometheus-client==0.25.0\" \\", - " \"prompt-toolkit==3.0.52\" \\", - " \"propcache==0.4.1\" \\", - " \"psutil==5.9.5\" \\", - " \"ptyprocess==0.7.0\" \\", - " \"pycparser==3.0\" \\", - " \"pycryptodomex==3.23.0\" \\", - " \"pydantic==2.12.3\" \\", - " \"pydantic-core==2.41.4\" \\", - " \"pydantic-settings==2.14.0\" \\", - " \"pygments==2.20.0\" \\", - " \"pynwb==3.1.3\" \\", - " \"pyout==0.8.1\" \\", - " \"pyparsing==3.3.2\" \\", - " \"python-dateutil==2.9.0.post0\" \\", - " \"python-dotenv==1.2.2\" \\", - " \"python-json-logger==4.1.0\" \\", - " \"pytz==2025.2\" \\", - " \"pyyaml==6.0.3\" \\", - " \"pyzmq==26.2.1\" \\", - " \"referencing==0.37.0\" \\", - " \"remfile==0.1.13\" \\", - " \"requests==2.32.4\" \\", - " \"rfc3339-validator==0.1.4\" \\", - " \"rfc3986-validator==0.1.1\" \\", - " \"rfc3987==1.3.8\" \\", - " \"rfc3987-syntax==1.1.0\" \\", - " \"rpds-py==0.30.0\" \\", - " \"ruamel-yaml==0.19.1\" \\", - " \"scipy==1.16.3\" \\", - " \"secretstorage==3.5.0\" \\", - " \"semantic-version==2.10.0\" \\", - " \"send2trash==2.1.0\" \\", - " \"setuptools==75.2.0\" \\", - " \"six==1.17.0\" \\", - " \"soupsieve==2.8.3\" \\", - " \"tenacity==9.1.4\" \\", - " \"tensorstore==0.1.82\" \\", - " \"terminado==0.18.1\" \\", - " \"tinycss2==1.4.0\" \\", - " \"tornado==6.5.1\" \\", - " \"tqdm==4.67.3\" \\", - " \"traitlets==5.7.1\" \\", - " \"typing-extensions==4.15.0\" \\", - " \"typing-inspection==0.4.2\" \\", - " \"tzdata==2026.1\" \\", - " \"uri-template==1.3.0\" \\", - " \"urllib3==2.5.0\" \\", - " \"wcwidth==0.6.0\" \\", - " \"webcolors==25.10.0\" \\", - " \"webencodings==0.5.1\" \\", - " \"websocket-client==1.9.0\" \\", - " \"widgetsnbextension==3.6.10\" \\", - " \"wrapt==2.1.2\" \\", - " \"yarl==1.23.0\" \\", - " \"zarr==2.18.7\" \\", + "#@title Installing requirements (click ▶ to run) { display-mode: \"form\" }\n", + "# Colab provides Python 3.12. We install with `uv --system` because Colab's\n", + "# kernel runs outside a virtualenv. All versions (direct + transitive) are\n", + "# pinned below so the notebook is reproducible regardless of resolver drift.\n", + "!pip install -q uv\n", + "!uv pip install --system \\\n", + " \"acres==0.5.0\" \\\n", + " \"aiohappyeyeballs==2.6.1\" \\\n", + " \"aiohttp==3.13.5\" \\\n", + " \"aiosignal==1.4.0\" \\\n", + " \"annotated-types==0.7.0\" \\\n", + " \"anyio==4.13.0\" \\\n", + " \"argon2-cffi==25.1.0\" \\\n", + " \"argon2-cffi-bindings==25.1.0\" \\\n", + " \"arrow==1.4.0\" \\\n", + " \"asciitree==0.3.3\" \\\n", + " \"attrs==26.1.0\" \\\n", + " \"backcall==0.2.0\" \\\n", + " \"beautifulsoup4==4.13.5\" \\\n", + " \"bids-validator-deno==2.4.1\" \\\n", + " \"bidsschematools==1.2.2\" \\\n", + " \"bleach==6.3.0\" \\\n", + " \"blessed==1.38.0\" \\\n", + " \"certifi==2026.4.22\" \\\n", + " \"cffi==2.0.0\" \\\n", + " \"charset-normalizer==3.4.7\" \\\n", + " \"ci-info==0.4.0\" \\\n", + " \"click==8.1.8\" \\\n", + " \"click-didyoumean==0.3.1\" \\\n", + " \"contourpy==1.3.3\" \\\n", + " \"cryptography==43.0.3\" \\\n", + " \"cycler==0.12.1\" \\\n", + " \"dandi==0.76.4\" \\\n", + " \"dandischema==0.12.1\" \\\n", + " \"debugpy==1.8.15\" \\\n", + " \"decorator==4.4.2\" \\\n", + " \"defusedxml==0.7.1\" \\\n", + " \"deprecated==1.3.1\" \\\n", + " \"dnspython==2.8.0\" \\\n", + " \"email-validator==2.3.0\" \\\n", + " \"entrypoints==0.4\" \\\n", + " \"etelemetry==0.3.1\" \\\n", + " \"fasteners==0.20\" \\\n", + " \"fastjsonschema==2.21.2\" \\\n", + " \"fonttools==4.62.1\" \\\n", + " \"fqdn==1.5.1\" \\\n", + " \"frozenlist==1.8.0\" \\\n", + " \"fscacher==0.4.4\" \\\n", + " \"fsspec==2025.3.0\" \\\n", + " \"h5py==3.16.0\" \\\n", + " \"hdmf==4.3.1\" \\\n", + " \"humanize==4.15.0\" \\\n", + " \"idna==3.13\" \\\n", + " \"interleave==0.3.0\" \\\n", + " \"ipykernel==6.17.1\" \\\n", + " \"ipython==7.34.0\" \\\n", + " \"ipython-genutils==0.2.0\" \\\n", + " \"ipywidgets==7.7.1\" \\\n", + " \"isodate==0.7.2\" \\\n", + " \"isoduration==20.11.0\" \\\n", + " \"jaraco-classes==3.4.0\" \\\n", + " \"jaraco-context==6.1.2\" \\\n", + " \"jaraco-functools==4.4.0\" \\\n", + " \"jedi==0.20.0\" \\\n", + " \"jeepney==0.9.0\" \\\n", + " \"jinja2==3.1.6\" \\\n", + " \"joblib==1.5.3\" \\\n", + " \"jsonpointer==3.1.1\" \\\n", + " \"jsonschema==4.26.0\" \\\n", + " \"jsonschema-specifications==2025.9.1\" \\\n", + " \"jupyter-client==7.4.9\" \\\n", + " \"jupyter-core==5.9.1\" \\\n", + " \"jupyter-events==0.12.1\" \\\n", + " \"jupyter-server==2.14.0\" \\\n", + " \"jupyter-server-terminals==0.5.4\" \\\n", + " \"jupyterlab-pygments==0.3.0\" \\\n", + " \"jupyterlab-widgets==3.0.16\" \\\n", + " \"keyring==25.7.0\" \\\n", + " \"keyrings-alt==5.0.2\" \\\n", + " \"kiwisolver==1.5.0\" \\\n", + " \"lark==1.3.1\" \\\n", + " \"markupsafe==3.0.3\" \\\n", + " \"matplotlib==3.10.0\" \\\n", + " \"matplotlib-inline==0.2.1\" \\\n", + " \"mistune==3.2.0\" \\\n", + " \"ml-dtypes==0.5.4\" \\\n", + " \"more-itertools==10.8.0\" \\\n", + " \"multidict==6.7.1\" \\\n", + " \"natsort==8.4.0\" \\\n", + " \"nbclassic==1.3.3\" \\\n", + " \"nbclient==0.10.4\" \\\n", + " \"nbconvert==7.17.1\" \\\n", + " \"nbformat==5.10.4\" \\\n", + " \"ndx-ophys-devices==0.3.1\" \\\n", + " \"ndx-optogenetics==0.3.0\" \\\n", + " \"ndx-structured-behavior @ git+https://github.com/rly/ndx-structured-behavior.git@b31692480fa8c7e005dea7d843528582c02ef7e2\" \\\n", + " \"nest-asyncio==1.6.0\" \\\n", + " \"networkx==3.6.1\" \\\n", + " \"notebook==6.5.7\" \\\n", + " \"notebook-shim==0.2.4\" \\\n", + " \"numcodecs==0.15.1\" \\\n", + " \"numpy==2.0.2\" \\\n", + " \"nwbinspector==0.7.2\" \\\n", + " \"overrides==7.7.0\" \\\n", + " \"packaging==26.1\" \\\n", + " \"pandas==2.2.2\" \\\n", + " \"pandocfilters==1.5.1\" \\\n", + " \"parso==0.8.6\" \\\n", + " \"pexpect==4.9.0\" \\\n", + " \"pickleshare==0.7.5\" \\\n", + " \"pillow==11.3.0\" \\\n", + " \"platformdirs==4.9.6\" \\\n", + " \"prometheus-client==0.25.0\" \\\n", + " \"prompt-toolkit==3.0.52\" \\\n", + " \"propcache==0.4.1\" \\\n", + " \"psutil==5.9.5\" \\\n", + " \"ptyprocess==0.7.0\" \\\n", + " \"pycparser==3.0\" \\\n", + " \"pycryptodomex==3.23.0\" \\\n", + " \"pydantic==2.12.3\" \\\n", + " \"pydantic-core==2.41.4\" \\\n", + " \"pydantic-settings==2.14.0\" \\\n", + " \"pygments==2.20.0\" \\\n", + " \"pynwb==3.1.3\" \\\n", + " \"pyout==0.8.1\" \\\n", + " \"pyparsing==3.3.2\" \\\n", + " \"python-dateutil==2.9.0.post0\" \\\n", + " \"python-dotenv==1.2.2\" \\\n", + " \"python-json-logger==4.1.0\" \\\n", + " \"pytz==2025.2\" \\\n", + " \"pyyaml==6.0.3\" \\\n", + " \"pyzmq==26.2.1\" \\\n", + " \"referencing==0.37.0\" \\\n", + " \"remfile==0.1.13\" \\\n", + " \"requests==2.32.4\" \\\n", + " \"rfc3339-validator==0.1.4\" \\\n", + " \"rfc3986-validator==0.1.1\" \\\n", + " \"rfc3987==1.3.8\" \\\n", + " \"rfc3987-syntax==1.1.0\" \\\n", + " \"rpds-py==0.30.0\" \\\n", + " \"ruamel-yaml==0.19.1\" \\\n", + " \"scipy==1.16.3\" \\\n", + " \"secretstorage==3.5.0\" \\\n", + " \"semantic-version==2.10.0\" \\\n", + " \"send2trash==2.1.0\" \\\n", + " \"setuptools==75.2.0\" \\\n", + " \"six==1.17.0\" \\\n", + " \"soupsieve==2.8.3\" \\\n", + " \"tenacity==9.1.4\" \\\n", + " \"tensorstore==0.1.82\" \\\n", + " \"terminado==0.18.1\" \\\n", + " \"tinycss2==1.4.0\" \\\n", + " \"tornado==6.5.1\" \\\n", + " \"tqdm==4.67.3\" \\\n", + " \"traitlets==5.7.1\" \\\n", + " \"typing-extensions==4.15.0\" \\\n", + " \"typing-inspection==0.4.2\" \\\n", + " \"tzdata==2026.1\" \\\n", + " \"uri-template==1.3.0\" \\\n", + " \"urllib3==2.5.0\" \\\n", + " \"wcwidth==0.6.0\" \\\n", + " \"webcolors==25.10.0\" \\\n", + " \"webencodings==0.5.1\" \\\n", + " \"websocket-client==1.9.0\" \\\n", + " \"widgetsnbextension==3.6.10\" \\\n", + " \"wrapt==2.1.2\" \\\n", + " \"yarl==1.23.0\" \\\n", + " \"zarr==2.18.7\" \\\n", " \"zarr-checksum==0.4.7\"" ] }, @@ -203,8 +203,8 @@ "id": "1140d208", "metadata": {}, "source": [ - "> **⚠️ Restart runtime after install**", - ">", + "> **⚠️ Restart runtime after install**\n", + ">\n", "> The install may upgrade packages already loaded in the kernel. Go to **Runtime → Restart session**, then **Run all cells below** (skip this install cell on re-run)." ] },