Skip to main content

Python implementation of the svGPFA algorithm (Duncker and Sahani, 2018)

Project description

Python implementation of Sparse Variational Gaussian Process Factor Analysis (svGPFA, Duncker and Sahani, 2018) tests docs

svGPFA identifies common latent structure in neural population spike-trains. It uses shared latent Gaussian processes, which are combined linearly as in Gaussian Process Factor Analysis (GPFA, Yu et al., 2009). 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.

Examples and Documentation

You can run svGPFA on sample data, plot its estimates and perform goodness-of-fit tests (without installing anything in your computer) by just running this Google Colab notebook. You can also do this by installing svGPFA (instructions below) and running this Jupyter notebook. In addition, after installing svGPFA, you can estimate models using a script, as shown in section Testing the installation below.

Documentation can be found here.

Installation

  1. clone this repo

  2. change the current directory to that of the cloned repo

    cd svGPFA
    
  3. if you will not run the example notebooks (see above), in the root directory of the cloned repo type

    pip install -e .
    

    If you will run the example notebooks (see above), in the root directory of the cloned repo type

    pip install -e .[notebook]
    

Testing the installation

  1. From the root directory of the cloned svGPFA directory, change the current directory to examples/scripts.

    cd examples/scripts
    
  2. run the estimation of svGPFA parameters (for only two EM iterations)

    python doEstimateSVGPFA.py --em_max_iter=2
    
  3. if everything went well the previous script should terminate after showing the following line in the standard output:

    Saved results to results/xxxxxxxx_etimationRes.pickle
    

Citing us

If you use svGPFA, please cite the following paper:

Lea Duncker and Maneesh Sahani (2018). Temporal alignment and latent Gaussian process factor inference in population spike trains. 32nd Conference on Neural Information Processing Systems, Montréal, Canada

@article{duncker2018temporal,
  title={Temporal alignment and latent Gaussian process factor inference in population spike trains},
  author={Duncker, Lea and Sahani, Maneesh},
  journal={Advances in neural information processing systems},
  volume={31},
  year={2018}
}

Development team

  • Joaquin Rapela (Gatsby Computational Neuroscience Unit, University College London)

  • Maneesh Sahani (Gatsby Computational Neuroscience Unit, University College London)

Acknowledgements

The research and development for svGPFA is supported by funding from the Gatsby Charitable Foundation.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

svGPFA-1.0.0.tar.gz (56.5 kB view details)

Uploaded Source

Built Distribution

svGPFA-1.0.0-py3-none-any.whl (62.4 kB view details)

Uploaded Python 3

File details

Details for the file svGPFA-1.0.0.tar.gz.

File metadata

  • Download URL: svGPFA-1.0.0.tar.gz
  • Upload date:
  • Size: 56.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.7.13

File hashes

Hashes for svGPFA-1.0.0.tar.gz
Algorithm Hash digest
SHA256 c7bc87ce7dcfbbfc011cfa0a414600603c4e96159bd51dd8d17aa80e19b7be7b
MD5 e9df6e30440badb2ef3742b0f38ded62
BLAKE2b-256 91432294cda34588df2606ec97e86797a6377f804432ee93bb3f6a33914d5c1b

See more details on using hashes here.

File details

Details for the file svGPFA-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: svGPFA-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 62.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.7.13

File hashes

Hashes for svGPFA-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 852ca413e85725380f321eebb4f2f67a2e6662f819241190643523d1962784c1
MD5 03c739005a9479f545b777fbd8e3fff7
BLAKE2b-256 73d32af5e3772c3b253f1f1b5f2b70f3f46b0483120c053f231b2390c2d82373

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page