Neuroinformatics (NI)
Tools and Techniques for Data Management and Processing in Neuroscience
Author
Please read the information below carefully, especially the details about homework, participation certificates, and the course schedule.
Key information
- Course dates: Monday, 22 June – Thursday, 25 June 2026
- Live session time: 14:30–18:00 CEST each day
- Format: online
- Zoom link: sent separately through Zoom
- Expected time commitment: about one full day per course day
- half-day pre-session homework
- half-day live online session
- Certificate requirement: at least 75% participation
- each live session counts as a half day
- each homework submission counts as a half day
Course schedule
| Date | Pre-session homework | Live session | Topic |
|---|---|---|---|
| Monday, 22 June | independent (2-3 hours) | 14:30–18:00 CEST | Repositories and Data Repositories |
| Tuesday, 23 June | independent (2-3 hours) | 14:30–18:00 CEST | Working with Data Models |
| Wednesday, 24 June | independent (2-3 hours) | 14:30–18:00 CEST | Data Formats and Storage for Electrophysiology |
| Thursday, 25 June | independent (2-3 hours) | 14:30–18:00 CEST | Cross-Modality Data & Metadata Organisation |
We will send the homework links and submission instructions by email before the relevant sessions.
Preparing for the course
The course assumes that you have some previous experience with Python, Git, and the terminal. You do not need to be an expert, but you should be comfortable with the basics.
If you would like a refresher before the course starts, our partner iBOTS provides two free crash-course resources:
- Python refresher: https://learn.ibots-bonn.de/docs/intro_python_long/
- Git and terminal refresher: https://learn.ibots-bonn.de/docs/essential_tools/
What to expect next
As we get closer to the course, we will send you:
- the link to the course exercises website
- the link to the group chat/forum
- homework links and submission instructions
- any final preparation details
The Zoom link for the live sessions will be sent separately through Zoom.
Materials and live participation
We received a very high number of registrations this year. To make space for more participants, we increased the number of acceptances and expanded the teaching team for the course. Even with this, we were unfortunately not able to accept everyone for live participation.
All course materials will be made publicly available. If you have a friend or colleague who would like to follow along but was not accepted for the live course, you are very welcome to share the materials with them.
Best wishes,
Nick and Michael
on behalf of the ANDA-NI Teaching Team
Credits
Installation
To run the course materials on your own machine:
- Install VSCode as your editor
- Install pixi or alternatively conda to create virtual Python environments (see the lessons on environment and package management)
- Download the materials for a lesson using the "Download Materials" button
- Extract the zip file and open the notebook in VSCode
- In VSCode, open a new terminal and install the environment:
pixi installconda env create -f environment.yml
conda activate ni-courseCourse Contents
Code and Data Repositories
Online Repositories for Code and Data
Introduction to the GitHub and OSF platforms for hosting code and research projects. You'll learn how to create accounts and create repositories to share your projects.
Version Control with Git
Learn how to use the Git version conrol system to track changes in your code and share your project online
Working with a DataLad Dataset
Clone datasets from the OpenNeuro platform, retrieve file content and use git-annex to identify storage locations
Running Commands while Tracking Provenance
Run commands, track inputs and outputs and rerun single commands or entire pipelines from the Git history
Data Models
Numpy and Xarray
Working with labelled multidimensional arrays for neuroscience data.
Organizing Electrophysiology Data
Use Neo to read and write electrophysiological data.
Representing Electrophysiological Data with Neo
Physical quantities, AnalogSignal, SpikeTrain, Events, Epochs, and Annotations.
Data Formats
Structured Scientific Data with HDF5: Design, Access, and Compression
A practical introduction to HDF5 using h5py: storing structured data and metadata, reading data efficiently, and trading CPU for disk with compression.
Working with NWB Files using h5py and pynwb
How to use h5py and pynwb to read NWB files.
Create NWB files with pynwb
How to use pynwb to create NWB files.
Extra 1: Understanding and Controlling Memory Usage in Numpy
In this session, we explore how Numpy uses memory, calculating how much space our data really takes, examine how arrays are created, and investigate when memory is copied, reused, or temporarily expanded.
Extra 2: Data Representation and Disk IO: Performance Beyond RAM
In this session, we measure what happens when we write arrays to disk, compare text and binary formats, and explore how data types determine both memory usage and file size.
Data Pipelines
Storing and Extracting Metadata From Files: Converting Lists and Dicts into JSON and YAML
Somehow, we have to store get our data into files; otherwise, we'd lose our data every time we exited Python! Ideally, the way we store our data will make it easy to read and write, both in our own favorite computational environment and in those of our colleagues, without requiring that everyone develop some ultra-complex custom code. That's where standardized file formats come in. In this set of exercises, we'll practice **serializing** data into a string that we can write into a text file and **deserializing** text into Python data structures, using three different text file formats
Static Workflows with Snakemake
Build Snakemake rules that run code, declare outputs, and connect inputs into simple reproducible workflows.
Generalizing Workflows with Wildcards
Use wildcards, expand(), and glob_wildcards() to scale Snakemake workflows across repeated filenames and connected rules.