Teaching
Material for the 2024 course on the Geometry of Neural Representations (part of Columbia’s graduate course in Advanced Topics in Theoretical Neuroscience)
Colab Notebook: Neural Geometry
Material for the 2022 course on Neural Decoding (part of Columbia’s graduate course in Advanced Topics in Theoretical Neuroscience)
Colab Notebook: The Art of Decoding Neural Representations
Decodanda
Decoding and geometrical analysis of neural activity with built-in best practices
Decoding neural activity is a standard practice in neuroscience, often used to claim that a particular population represents a specific variable. Unfortunately, decoding has many pitfalls that, if not avoided carefully, can lead to false negative or, even worse, false positive results.
Decodanda is an open-source Python package designed to expose a user-friendly and flexible interface for population activity decoding, avoiding the most common pitfalls through a series of built-in best practices.
It For example:
Cross-validation is automatically implemented using a default or specified trial structure
All analyses come with a built-in null model to test the significance of the data performance (see the notebook)
Multi-session pooling to create pseudo-populations is supported out of the box (see the notebook)
The individual contributions of multiple correlated experimental variables are isolated by cross-variable data balancing, avoiding the confounding effects of correlated variables (see the notebook)
In addition, Decodanda exposes a series of functions to compute the Cross-Condition Generalization Performance (CCGP) for the geometrical analysis of neural population activity (see the notebook).
For a guided explanation of some of the best practices implemented by Decodanda, you can refer to my teaching material for the Advanced Theory Course in Neuroscience at Columbia University.
Have fun, drink water, and decode safely!
-
Null model for decoding performance
All analyses in Decodanda come with a built-in null model to test the significance of the data performance.
-
Decoding in time
Decodanda implements a balanced, cross-validated decoding with a slding time window as a function of time from a given onset.
-
Balancing out correlated variables
When two variables are very correlated (e.g. stimulus and action in a trained subject) it is hard to disentangle their individual contributions to the neural code. Decodanda does that by cross-variable condition balacing.
-
CCGP and geometrical investigation of population coding
Decodanda exposes a series of function to compute the cross-condition generalization performance (CCGP) to reveal the geometrical properties of population coding.