1. Overview#

This documentation describes the Python implementation of Sparse Variational Gaussian Process Factor Analysis (svGPFA, Duncker and Sahani [DS18]) distributed in this repository.

svGPFA identifies common latent structure in neural population spike-trains, which allows for variability both in the trajectory and in the rate of progression of the underlying computations. It uses shared latent Gaussian processes, which are combined linearly as in Gaussian Process Factor Analysis (GPFA, Yu et al. [YCS+09]). svGPFA extends GPFA to handle unbinned spike-train data by using a continuous time point-process likelihood model and achieving scalability using a sparse variational approximation. Variability in the trajectory is decomposed in terms capturing variability in individual trials, across subset of trials belonging to the same experimental condition and across all trials. Variability in the timing of a neural computation is modelled using a nested Gaussian process.

For examples of running svGPFA, and plotting its estimates, please refer to this Google Colab notebook, or to the gallery of scripts for estimation and visualisation.