During my graduate work, I wrote a spike-sorting program in Matlab. It is now distributed by Ripple LLC, free and open-source. It is targeted mainly at use with Utah arrays, but can be used with other systems as well. It is presently considered "in beta", but is quite stable and has been in use by the Shenoy lab for several years. Some key advantages are:

- High-quality waveform alignment, improving sorting
- Ability to sort differentiated waveforms (sometimes very helpful)
- Defined units "compete" for spikes, making sorting easier
- Can sort in waveform mode or PCA mode
- Strong ability to assess and ensure stability of sorts over time
- Integrated unit-rating system for unit selection later
- Integration with your behavioral data for better checking for whether a cluster is a single unit or not
- Built-in tools for identifying narrow-spiking neurons
- Open-source, expandable framework so you can add new sorting methods, importers, etc. if you wish
- Free

DataHigh is a Matlab-based graphical user interface to visualize and interact with high-dimensional neural population activity. DataHigh has built-in tools to perform dimensionality reduction on raw spike trains, and includes a suite of visualization tools tailored for neural data analysis. This software makes it much, much easier to explore high-dimensional neural data. The primary architect was Ben Cowley, a graduate student at CMU in Byron Yu's lab, in collaboration with me and under the wise guidance of Byron.

These two analyses are from Raposo*, Kaufman*, and Churchland 2014, and are implemented in Matlab code. PAIRS stands for "Projection Angle Index of Response Similarity", and is a method for determining whether recorded neurons' responses are more clustered than expected by chance. Variance Alignment is a method for determining whether two sets of data from the same neurons share similar covariance patterns. For example, you might be interested in whether neurons exhibit similar covariance patterns during stimulus presentation and movement, or during presentation of a visual stimulus versus during presentation of an auditory one. See the paper or the comments in the code for further explanation. Variance Alignment requires the Statistics Toolbox.

Demixing Principal Component Analysis (dPCA) is a really useful technique invented by Wieland Brendel and Christian Machens. It is much like PCA, but tries to rotate your axes so that each component contains signals from only one source. For example, some components might contain only untuned activity that ramps with time, while others might contain the tuning you're interested in. All credit for this technique goes to Wieland and Christian; it's listed here because I really like the technique (and made a very small contribution to the Matlab code).

This isn't exactly software, but TeX is almost programming. Wondering how to write an academic document (especially a dissertation) in TeX but don't know how? Check out the guide I wrote.

Additional code packages will be posted as the related results are published.