YASS: Yet Another Spike Sorter

https://travis-ci.org/paninski-lab/yass.svg?branch=master https://readthedocs.org/projects/yass/badge/?version=latest https://badges.gitter.im/paninski-lab/yass.svg

Note: YASS is in an early stage of development. Although it is stable, it has only been tested with the data in our lab, but we are working to make it more flexible. Feel free to send feedback through Gitter. Expect a lot of API changes in the near future.

Reference

Lee, J. et al. (2017). YASS: Yet another spike sorter. Neural Information Processing Systems. Available in biorxiv: https://www.biorxiv.org/content/early/2017/06/19/151928

Installation

Installing the last stable version:

pip install yass-algorithm[tf]

The above command will install yass and all its dependencies (including) tensorflow (CPU), for GPU do pip install yass-algorithm[tf-gpu].

If you have Tensorflow already installed, running pip install yass-algorithm will install yass and its dependencies except for Tensorflow. For more information regarding Tensorflow installation see this.

If you are feeling adventurous, you can install from the master branch:

pip install git+git://github.com/paninski-lab/[email protected]

Example

We are currently updating our documentation, this section will be updated once we have an example with publicly available data.

Documentation

Documentation hosted at https://yass.readthedocs.io

Running tests

Note: this is indented only for YASS developers, our testing data is not publicly available.

Before running the tests, download the testing data:

export YASS_TESTING_DATA_URL=[URL-TO-TESTING-DATA]

make download-test-data

make test

To run tests and flake8 checks (from the root folder):

pip install -r requirements.txt

make test

Building documentation

You need to install graphviz to build the graphs included in the documentation. On macOS:

brew install graphviz

To build the docs (from the root folder):

pip install -r requirements.txt

make docs

Indices and tables

Changelog

0.10dev

  • Colored logs
  • Improved testing coverage
  • Neural network code was simplified considerably
  • Added features to Neural networks objects
  • Added neural networks to documentation
  • Option to create all tensorflow sessions with a specific configuration
  • Shortcut in command line to limit GPU memory in all tensorflow sessions (through gpu_options.per_process_gpu_memory_fraction)
  • Refactored test suite
  • Integrats new triage network (using Keras)

0.9 (2018-05-24)

  • Added parallelization to batch processor
  • Preprocess step now runs in parallel
  • Filtering and standarization running in one step to avoid I/O overhead

0.8 (2018-04-19)

  • It is now possible to save results for every step to resume execution, see save_results option
  • Fixed a bug that caused excessive logging when logger level was set to DEBUG
  • General improvements to the sorting algorithm
  • Fixes a bug that was causing and import error in the mfm module (thanks @neil-gallagher for reporting this issue)

0.7 (2018-04-06)

  • New CLI tool for training neural networks yass train
  • New CLI tool for exporting results to phy yass export
  • Separated logic in five steps: preprocess, detect, cluster templates and deconvolute
  • Improved Neural Network detector speed
  • Improved package organization
  • Updated examples
  • Added integration tests
  • Increased testing coverage
  • Some examples include links to Jupyter notebooks
  • Errors in documentation building are now tested in Travis
  • Improved batch processor
  • Simplified configuration file
  • Preprocessing speedups

0.6 (2018-02-05)

  • New stability metric
  • New batch module
  • Rewritten preprocessor
  • A lot of functions were rewritten and documented
  • More partial results are saved to improve debugging
  • Removed a lot of legacy code
  • Removed batching logic from old functions, they are now using the batch module
  • Rewritten CLI interface yass command is now yass sort

0.5 (2018-01-31)

  • Improved logging
  • Last release with old codebase

0.4 (2018-01-19)

  • Fixes bug in preprocessing (#38)
  • Increased template size
  • Updates deconvolution method

0.3 (2017-11-15)

  • Adds new neural network module

0.2 (2017-11-14)

  • Config module refactoring, configuration files are now much simpler
  • Fixed bug that was causing spike times to be off due to the buffer
  • Various bug fixes
  • Updates to input/output structure
  • Adds new module for augmented spikes
  • Function names changes in score module
  • Simplified parameters for score module functions

0.1.1 (2017-11-01)

  • Minor changes to setup.py for uploading to pypi

0.1 (2017-11-01)

  • First release