Appendix A — Prerequisites
A.1 Knowledge
We assume basic familiarity with Python, ideally including its core scientific libraries such as NumPy, Pandas, Matplotlib, and Jupyter.
A.2 Hardware
This is a hands-on course, so please bring your own laptop and charger.
A mouse is strongly recommended, especially for tasks like image annotation.
A dedicated GPU is not required, though it may speed up some computations.
A.3 Software
You’ll need both general tools for Python programming and specific software required for the course, as detailed below.
A.3.1 General development tools
To get your computer ready, make sure you have the following:
- Bash shell
- Git and a GitHub account
- Windows users: Installing the Bash shell via Git for Windows also installs Git, so you only need to create a GitHub account.
- Miniforge
- uv
- brew (for macOS users only)
You’ll also need a code editor (IDE) configured for Python. If you already have one you’re comfortable with, feel free to use it. Otherwise, we recommend:
- Visual Studio Code with the Python extension
- JupyterLab
Run all commands in the following sections using the Bash shell.
A.3.2 For the SLEAP tutorial
Create a conda environment named sleap with Python 3.13 and activate it:
conda create -n sleap python=3.13
conda activate sleapThen install SLEAP v1.6.3:
# CPU only
uv pip install "sleap[nn]==1.6.3" --extra-index-url https://download.pytorch.org/whl/cpu
# NVIDIA GPU (CUDA 12.8)
uv pip install "sleap[nn]==1.6.3" --extra-index-url https://download.pytorch.org/whl/cu128The CUDA version in the install command (e.g. cu128) must not exceed the CUDA version supported by your NVIDIA driver. Run nvidia-smi to check your driver’s CUDA version, then pick a wheel with an equal or lower CUDA version from the PyTorch install page. For example, if nvidia-smi reports CUDA 12.8, you can use cu128 or cu126, but not cu132.
To verify the installation:
sleap doctorA.3.3 For movement tutorials
You will also need a separate conda environment for the tutorials and case studies involving movement. This environment includes movement itself as well as jupyter (required for following along interactively and solving the exercises) and scikit-learn (required for the chapter on supervised classification).
We recommend cloning this workshop’s repository and creating the environment using the provided environment.yaml file:
git clone https://github.com/neuroinformatics-unit/course-animals-in-motion.git
cd course-animals-in-motion
conda env create -n animals-in-motion-env -f environment.yamlTo test your setup, run:
conda activate animals-in-motion-env
movement launchThis should open the movement GUI, i.e. the napari image viewer with the movement plugin docked on the right.
There are other ways to install the movement package.
However, for this workshop, we recommend using the environment.yaml file to ensure that all necessary dependencies, including those beyond movement, are included.
A.3.4 For the BORIS tutorial
We recommend following the official BORIS installation instructions for your operating system.
For macOS users, BORIS installation requires brew and uv, which are both listed under general development tools. You may safely ignore the warning about this being an experimental version of BORIS.
A.4 Data
Bringing your own data is encouraged but not required. This could include video recordings of animal behaviour and/or motion tracking data you’ve previously generated.
We also provide some example datasets for you to use during the workshop. Please download these from Dropbox before the workshop starts (they are a few GB in size).
The Dropbox folder is structured as follows:
Animals-in-Motion_2025-08/
├── CalMS21/
│ ├── better_model/
│ │ ├── 250806_174722.centroid.n=679/
│ │ ├── 250807_162146.multi_class_topdown.n=679/
│ │ ├── predictions/
│ │ ├── mouse044_task1_annotator1.test.pkg.slp
│ │ └── mouse044_task1_annotator1.train.pkg.slp
│ ├── calms21_task1_train.json
│ ├── mouse044_task1_annotator1.mp4
│ ├── mouse044_task1_annotator1.slp
│ ├── mouse044_task1_mount_events_boris.tsv
│ └── readme.md
└── Smart-Kages.zip- CalMS21: Contains an example video from the Caltech Mouse Social Interactions (CalMS21) Dataset (Sun et al. 2021), SLEAP labels and trained models, as well as BORIS-compatible annotations of “mount” events.
- better_model: SLEAP multi-animal top-down ID model trained on 679 labelled frames.
- 250806_174722.centroid.n=679: Centroid model.
- 250807_162146.multi_class_topdown.n=679: Top-down ID model.
- predictions: Model predictions on the full video.
- mouse044_task1_annotator1.test.pkg.slp: Held-out test set containing 2715 labelled frames (80%) randomly sampled from the full annotation file.
- mouse044_task1_annotator1.train.pkg.slp: Training set containing 679 labelled frames (20%) randomly sampled from the full annotation file.
- calms21_task1_train.json: MARS (Segalin et al. 2021) pose estimates provided in the CalMS21 dataset.
- mouse044_task1_annotator1.mp4: Video file used in Chapter 3 and Chapter 7.
- mouse044_task1_annotator1.slp: Fully annotated SLEAP labels file containing 3394 labelled frames used in Chapter 4 (converted from
calms21_task1_train.json). The train/test splits above were derived from this file using a 20:80 random partition. - mouse044_task1_mount_events_boris.tsv: Ground-truth annotations of “mount” events in the video, extracted from
calms21_task1_train.jsonto a BORIS-compatible TSV format. Used in Chapter 7. - readme.md: Information about the dataset (from the CalMS21 dataset).
- better_model: SLEAP multi-animal top-down ID model trained on 679 labelled frames.
- Smart-Kages.zip: Not used in this iteration of the course.