{"id":49156400,"url":"https://github.com/deeplearnphysics/spine-workshop-2026","last_synced_at":"2026-04-22T09:06:49.628Z","repository":{"id":335477937,"uuid":"1145908621","full_name":"DeepLearnPhysics/spine-workshop-2026","owner":"DeepLearnPhysics","description":"SPINE for DUNE Workshop held at CERN","archived":false,"fork":false,"pushed_at":"2026-02-10T12:03:24.000Z","size":128974,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-10T16:53:09.830Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DeepLearnPhysics.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-30T11:19:06.000Z","updated_at":"2026-02-10T12:03:28.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/DeepLearnPhysics/spine-workshop-2026","commit_stats":null,"previous_names":["deeplearnphysics/spine-workshop-2026"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/DeepLearnPhysics/spine-workshop-2026","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeepLearnPhysics%2Fspine-workshop-2026","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeepLearnPhysics%2Fspine-workshop-2026/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeepLearnPhysics%2Fspine-workshop-2026/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeepLearnPhysics%2Fspine-workshop-2026/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DeepLearnPhysics","download_url":"https://codeload.github.com/DeepLearnPhysics/spine-workshop-2026/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeepLearnPhysics%2Fspine-workshop-2026/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32128720,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-22T08:34:57.708Z","status":"ssl_error","status_checked_at":"2026-04-22T08:34:55.583Z","response_time":58,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-22T09:06:49.019Z","updated_at":"2026-04-22T09:06:49.622Z","avatar_url":"https://github.com/DeepLearnPhysics.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DUNE SPINE Workshop 2026\n\nThis repository contains all necessary resources to participate in the 2026 SPINE workshop organized for the DUNE reconstruction groups (ND + FD, and their respective prototypes). This workshop aims to train new comers to use [SPINE](https://github.com/DeepLearnPhysics/spine), our machine-learning-based particle imaging detector reconstruction chain. You can find the workshop agenda [here](https://indico.cern.ch/event/1581241/timetable/#20260202).\n\n## Software environment\n\nFor the workshop, we will use [this \"Docker container\"](https://hub.docker.com/layers/deeplearnphysics/larcv2/ub2204-cu121-torch251-larndsim/images/sha256-59d520c9e2a22b5a474daa8b91a01bf1fb6ef76a1047cbf57c2b09ddf82abe41).\n\nSome notes below:\n\n* The image is fairly large (multiple GBs). Please download in advance if you are using it locally. It can be used in both NVIDIA GPU and CPU running mode of our software.\n* Supported GPUs include those with NVIDIA Volta (e.g. V100), Turing (e.g. RTX 2080Ti), Ampere (e.g. A100, RTX 3080) and Hopper architectures (e.g. H200). If you want an older architectures to be supported, such as Pascal, please [contact Kazu](mailto:kterao@slac.stanford.edu).\n* We assume basic knowledge about _software container_, in particular `Docker`. If you are learning for the first time, we recommend to use/learn about `Apptainer` ([website](https://apptainer.org/docs/user/latest/)) instead of `Docker`.\n    * You can pull a apptainer image as follows\n```shell\n$ apptainer pull docker://deeplearnphysics/larcv2:ub2204-cu121-torch251-larndsim\n```https://hub.docker.com/layers/deeplearnphysics/larcv2/ub2204-cu121-torch251-larndsim/images/sha256-59d520c9e2a22b5a474daa8b91a01bf1fb6ef76a1047cbf57c2b09ddf82abe41\nYou can now launch a shell inside the apptainer with\n```shell\n$ apptainer exec --bind /path/to/workshop/folder/ /path/to/container.sif bash\n```\nFor nersc:\n```shell\n$ salloc --nodes 1 --qos shared_interactive --time 00:30:00 --constraint gpu --gpus 1 --account=m5252 --image=deeplearnphysics/larcv2:ub2204-cu121-torch251-larndsim shifter /bin/bash\n```\n\n## Resources\n\n1. The *configuration files* are packages with this repository.\n\n2. You can find *data files* for the examples used in this workshop under:\n- NERSC\n```shell\n/global/cfs/cdirs/m5252/dune/spine/workshop/larcv/ # Example MPV/MPR LArCV files prior to reconstruction\n/global/cfs/cdirs/m5252/dune/spine/workshop/reco/  # Reconstructed HDF5 files\n```\n- Public\n  - [Small LArCV files](https://s3df.slac.stanford.edu/data/neutrino/spine/workshop/larcv/) (Day 1)\n    - [Generic](https://s3df.slac.stanford.edu/data/neutrino/spine/workshop/larcv/generic_small.root)\n    - [ND-LAr](https://s3df.slac.stanford.edu/data/neutrino/spine/workshop/larcv/nd-lar_small.root)\n    - [2x2](https://s3df.slac.stanford.edu/data/neutrino/spine/workshop/larcv/2x2_small.root)\n    - [FSD](https://s3df.slac.stanford.edu/data/neutrino/spine/workshop/larcv/fsd_small.root)\n    - [DUNE FD-HD 10kt-1x2x6](https://s3df.slac.stanford.edu/data/neutrino/spine/workshop/larcv/dune10kt-1x2x6_small.root)\n    - [ProtoDUNE-SP](https://s3df.slac.stanford.edu/data/neutrino/spine/workshop/larcv/protodune-sp_small.root)\n    - [ProtoDUNE-HD](https://s3df.slac.stanford.edu/data/neutrino/spine/workshop/larcv/protodune-hd_small.root)\n    - [ProtoDUNE-VD](https://s3df.slac.stanford.edu/data/neutrino/spine/workshop/larcv/protodune-vd_small.root)\n  - [Small corresponding reconstructed HDF5 files] TODO\n  - [Medium reconstructed HDF5 files] TODO\n  - [Physics datasets] TODO\n\n3. The *network model parameters* for the inference tutorial are stored in a public area and pulled on the fly by SPINE when not cached, nothing to do here anymore!\n\n## Jupyter notebooks\n\nIn this we briefly summarize how to setup a Jupyter notebook with the necessary dependencies to run SPINE. There are three options for DUNE collaborators:\n* NERSC: This is the option we will use throughout this workshop, everyone should be using this\n* EAF: This is FNAL's system, every DUNE collaborator should have access to this (good longer-term solution)\n* Local: If you have a GPU on your laptop (or not!) you can run all (most!) of the notebooks presented in this workshop locally\n\n### NERSC\n\nEveryone participating in this workshop should have access to GPUs through NERSC, under project `m5252`. If you do not, please reach out to [Francois](mailto:drielsma@slac.stanford.edu).\n\nThe instructions to set up the `apptainer` container as a Jupyter kernel can be found here: [https://docs.nersc.gov/services/jupyter/how-to-guides/#shifter](https://docs.nersc.gov/services/jupyter/how-to-guides/#shifter)\n\nGo to the NERSC Jupyter portal: [https://jupyter.nersc.gov/hub/home](https://jupyter.nersc.gov/hub/home)\n\n### EAF\n\nAll DUNE collaborators should also have access to the **Elastic Analysis Facility (EAF)** at FNAL, equipped with GPUs. Here are some basic instructions to set things up.\n\nGo to the EAF portal: [https://eaf.fnal.gov](https://eaf.fnal.gov)\n* This requires FNAL VPN or being on-site\n* See [https://eafdocs.fnal.gov/master/index.html](https://eafdocs.fnal.gov/master/index.html) for some basic documentation\n* Choose FIFE/Neutrinos from the options\n  * This will have the usual `/exp/dune/` file system mounted, similar to using the GPVM nodes\n\nRun (in a terminal):\n```bash\nconda create --name apptainer-env apptainer\n```\n* This creates a conda environment which has `apptainer` installed. This is necessary as `apptainer` is needed to open the image which has the SPINE dependency configured\n\nCreate a new python kernel with\n```bash\npython -m ipykernel install --name spine-apptainer-kernel --display-name \"SPINE Apptainer\" --user\n```\n\nIn the newly created `~/.local/share/jupyter/kernels/spine-apptainer-kernel` directory add the `run_kernel.sh` and `kernel.json` files as shown here:\n\n`run_kernel.sh`\n```bash\n#!/bin/bash\n\nsource ~/.bashrc\nconda activate apptainer-env\napptainer exec --bind /exp/dune/data/users \\\n               --bind ~ \\\n               --env \"LD_PRELOAD=\\\"\\\"\" \\\n               --env \"LC_ALL=C.UTF-8\" \\\n               --nv /exp/sbnd/data/users/brindenc/containers/larcv2_ub2204-cuda121-torch251-larndsim.sif python -m ipykernel $@\n\nconda deactivate\n```\n\n`kernel.json`\n```json\n{\n  \"argv\": [\n    \"~/.local/share/jupyter/kernels/spine-apptainer-kernel/run_kernel.sh\",\n    \"-f\",\n    \"{connection_file}\"\n  ],\n  \"display_name\": \"SPINE Apptainer\",\n  \"language\": \"python\"\n}\n```\n\n**You should now be able to start a notebook with the SPINE Apptainer kernel and run SPINE!**\n\n### Local\n\nMost of the notebooks can be run strictly on CPU. The following notebooks will run significantly slower on CPU, however:\n- Training/validation notebook\n- Inference and HDF5 file making notebook\n\nFor all other notebooks, you can run them locally, provided that you download:\n- Apptainer/docker container\n- Necessary data\n- [SPINE v0.9.4+](https://github.com/DeepLearnPhysics/spine)\n\nYou can also pull the docker image using docker (easier on Mac and Windows) directly. First install the docker desktop client from [https://docs.docker.com/desktop/](https://docs.docker.com/desktop/).\n\nOnce that is done and the client is running, simply do:\n```shell\n$ docker pull deeplearnphysics/larcv2:ub2204-cu121-torch251-larndsim\n```\nTo see which images are present on your system, you can use docker images. It will look something like this:\n```shell\n$ docker images\nREPOSITORY                TAG                                      IMAGE ID       CREATED         SIZE\ndeeplearnphysics/larcv2   ub22.04-cuda12.1-pytorch2.4.0-larndsim   e97e0c78dc4b   12 months ago   25GB\n```\nto run a shell in your image, simply do:\n```shell\n$ docker run -i -t e97e0c78dc4b bash\n```\n\n\n\n* [Ask Francois](mailto:drielsma@slac.stanford.edu) for questions or a request for a separate tutorial if interested.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeeplearnphysics%2Fspine-workshop-2026","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeeplearnphysics%2Fspine-workshop-2026","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeeplearnphysics%2Fspine-workshop-2026/lists"}