Code & Data
Willett FR, Avansino DT, Hochberg LR, Henderson JM**, Shenoy KV** (2020) High-performance brain-to-text communication via imagined handwriting. Nature. In press. bioRxiv.
- Data sharing:
- Willett FR, Avansino DT, Hochberg LR, Henderson JM**, Shenoy KV** (2021) Data from: High-performance brain-to-text communication via handwriting. Dryad. Dataset.
- Code sharing:
- This GitHub repo is associated with this manuscript and dataset. The code can be used to run an offline reproduction of the main result: high-performance neural decoding of attempted handwriting movements. The jupyter notebooks included here implement all steps of the process, including labeling the neural data with HMMs, training an RNN to decode the neural data into sequences of characters, applying a language model to the RNN outputs, and summarizing the performance on held-out data.
- Results from each step are saved to disk and used in future steps. Intermediate results and models are available with the data - download these to explore certain steps without needing to run all prior ones (except for Step 3, which you'll need to run on your own because it produces ~100 GB of files).
- BCI performance, calculations and tables
- If interested in BCI performance, calculations and tables, please see BCI Performance Tables on this site.
- We aim to periodically update, edit and evolve these NHP and human performance tables, and we are very open to input, corrections and suggestions (firstname.lastname@example.org).
Even-Chen N*, Sheffer B*, Vyas S, Ryu SI, Shenoy KV (2019) Structure and variability of delay activity in premotor cortex. PLoS Computational Biology.
Churchland MM*, Cunningham JP*, Kaufman MT, Foster JD, Nuyujukian P, Ryu SI, Shenoy KV (2012) Neural population dynamics during reaching. Nature. 487:51-56.
- The jPCA MATLAB code pack, including examples, can be downloaded from Professor Mark Churchland's Lab site: Code -- jPCA
Spike Sorting -- MKsort
- Matt Kaufman, during his graduate work, wrote a spike-sorting program in Matlab called MKsort.
- It is now distributed by Ripple LLC, freely and as open source software.
- It is targeted mainly for use with Utah arrays, but can be used with other systems as well.
- It is presently considered in "beta", but it is quite stable and has been in use by the Shenoy Lab and other Labs for several years.
- It can be downloaded from Matt Kaufman's Lab site: MKsort
Churchland MM*, Yu BM*, Cunningham JP, Sugrue LP, Cohen MR, Corrado GS, Newsome WT, Clark AM, Hosseini P, Scott BB, Bradley DC, Smith MA, Kohn A, Movshon JA, Armstrong KM, Moore T, Chang SW, Snyder LH, Lisberger SG, Priebe NJ, Finn IM, Ferster D, Ryu SI, Santhanam G, Sahani M, Shenoy KV (2010) Stimulus onset quenches neural variability: a widespread cortical phenomenon. Nature Neuroscience. 13:369-378.
- The Variance MATLAB code pack, including examples, can be downloaded from Professor Mark Churchland's Lab site: Code -- Variance toolbox
Yu BM, Cunningham JP, Santhanam G, Ryu SI, Shenoy KV*, Sahani M* (2009) Gaussian-process factor analysis for low-dimensional single-trial analysis of neural population activity. Journal of Neurophysiology. 102:614-635.
- The GPFA MATLAB code pack, including examples, can be downloaded from Professor Byron Yu's Lab site: