Cross-listed as NBIO220 and CS339N
Instructor: Prof. Scott Linderman
Winter Quarter, 2021
Stanford University
With modern high-density electrodes and optical imaging techniques, neuroscientists routinely measure the activity of hundreds, if not thousands, of cells simultaneously. Coupled with high-resolution behavioral measurements, genetic sequencing, and connectomics, these datasets offer unprecedented opportunities to learn how neural circuits function. This course will study statistical machine learning methods for analysing such datasets, including: spike sorting, calcium deconvolution, and voltage smoothing techniques for extracting relevant signals from raw data; markerless tracking methods for estimating animal pose in behavioral videos; network models for connectomics and fMRI data; state space models for analysis of high-dimensional neural and behavioral time-series; point process models of neural spike trains; and deep learning methods for neural encoding and decoding. We will develop the theory behind these models and algorithms and then apply them to real datasets in the in-class coding labs and final project.
The course is organized around eight coding labs. Each lab develops a minimal implementation of a state-of-the-art method from scratch in a self-contained Google Colab notebook. These are widely used techniques for analyzing neural and behavioral data, and through the labs you'll get a deep understanding of how these methods work under the hood:
- A simple spike sorting algorithm
- Kilosort: Spike sorting by Deconvolution
- CNMF: Calcium deconvolution via constrained NMF
- DeepLabCut: Markerless pose tracking with CNNs
- DeepRetina: Deep encoding models of retinal spike trains
- Kalman Smoothers: Decoding movement from neural data
- MoSeq: Autoregressive HMMs for animal movements
- SLDS: Switching LDS model of neural data
The lectures develop the theory behind the methods developed in lab. I've organized the course into three units: signal extraction, encoding and decoding, and unsupervised modeling of neural and behavioral data. At the end, you'll work on a final project in which you will use, explore, or extend the techniques studied in class.
Unit I: Extracting biological signals from raw data
| Date | Type | Topic |
|---|---|---|
| Mon, Jan 11 | Lecture 1 | Course Overview |
| Wed, Jan 13 | Lecture 2 | Basic spike sorting |
| Fri, Jan 15 | Lab 1 | A simple spike sorting algorithm |
| Mon, Jan 18 | MLK Day | |
| Wed, Jan 20 | Lecture 3 | Spike sorting by deconvolution |
| Fri, Jan 22 | Lab 2 | Spike sorting by Deconvolution |
| Mon, Jan 25 | Lecture 4 | Demixing and deconvolving calcium imaging |
| Wed, Jan 27 | Lecture 5 | Deconvolution with a point process prior |
| Fri, Jan 29 | Lab 3 | Calcium deconvolution via constrained NMF |
| Mon, Feb 1 | Lecture 6 | Markerless pose tracking |
Unit II: Encoding and decoding models for neural data
| Date | Type | Topic |
|---|---|---|
| Wed, Feb 3 | Lecture 7 | Encoding and decoding neural spike trains |
| Fri, Feb 5 | Lab 4 | Markerless animal pose tracking with CNNs |
| Mon, Feb 8 | Lecture 8 | Encoding models of retinal ganglion cells |
| Wed, Feb 10 | Lecture 9 | Encoding models of retinal ganglion cells II |
| Fri, Feb 12 | Lab 5 | Deep encoding models of retinal spike trains |
| Mon, Feb 15 | President’s Day | |
| Wed, Feb 17 | Lecture 10 | Decoding neural spike trains |
| Fri, Feb 19 | Lab 6 | Decoding movement from neural data |
Unit III: Unsupervised models of neural and behavioral data
| Date | Type | Topic |
|---|---|---|
| Mon, Feb 22 | Lecture 11 | Unsupervised modeling and Expectation Maximization |
| Wed, Feb 24 | Lecture 12 | EM amd Hidden Markov models |
| Fri, Feb 26 | Lab 7 | Autoregressive HMMs for animal movements |
| Mon, Mar 1 | Lecture 13 | Switching linear dynamical systems |
| Wed, Mar 3 | Lecture 14 | Variational EM for SLDS |
| Fri, Mar 5 | Lab 8 | Switching LDS model of neural data |
| Mon, Mar 8 | Lecture 15 | Stochastic RNNs and LFADS |
| Wed, Mar 10 | Lecture 16 | Looking forward |
Final Projects
| Date | Type | Topic |
|---|---|---|
| Fri, Mar 12 | Projects | Work on final projects |
| Mon, Mar 15 | Projects | Work on final projects |
| Wed, Mar 17 | Presentations | Project poster session |
| Fri, Mar 19 | Presentations | Project poster session |