Dept of Computing Science and Mathematics University of Stirling

Noisy Spike Generator

This page describes a biophysically justifiable noisy spike generator, written in MATLAB (note: it needs the Statistics Toolbox, and the Communications Toolbox (but see note 1 below)). Essentially, the functions here are used to generate the sort of data that might be expected to be provided by a single electrode in a multi-electrode array (MEA), used to record spiking neural cells, probably in vitro. As part of an EPSRC funded project (Talking with Nerve Cells), we were trying to detect spikes (and later classify (or sort) them) in noisy data from extracellular MEAs. This set of routines allows generation of data for which the actual spike train times ("ground truth") are known. It also allows generation of realistic background noise.

On this page we provide

This version has a lot more functionality than earlier versions: in particular, it allows emulation of the delay in generation of spikes over the neuron's spiking surface, so that the spike shape received can depend on the relative location of the electrode and the neuron's spiking surface. It also runs a lot faster (and has fewer (or possibly only different) bugs). We would appreciate any comments and reports of bugs in this software. There's also some .m files for use in assessing different spike sorting techniques.

We believe it to work.


We are always interested in feedback on these routines. Email lss at cs.stir.ac.uk.

Note 1: The use of the communications toolbox is restricted to the use of the awgn function, which I use to add some white noise at the end of the data generation. If you can do without that function, simply comment out the line that uses it (line 539 of generatenoisysamples.m), and the software will, I believe, work without the communications tollbox.

Note 2 (added 25 March 2009): The generator generates a waveform made up from spikes, some of which are the target spikes, some noisy spikes whose times are correlated with the target spikes, and some other noisy spikes whose times are not correlated with the target spikes. In the code as made available here, the noisy correlated spikes have their waveform slghtly smoothed relative to that of the target spikes, and the uncorrelated noisy spikes have their waveform further smoothed. We did this because we believed that the signals wouls be somwhat smoothed on their way from neuron to electrode. We now realise that this can give certain types of spike detection algorithms a particular advantage. We intend to introduce a new release in which the degree of this type of smoothing can be adjusted by the user. The relevant code lies between lines 140 and 160 of generatenoisyspikes.m. If you need assistance with this, please contact me.



Back to Professor Smith's home page.

Last updated: Wednesday, 25-Mar-2009 10:18:47 GMT

If you have any difficulties accessing this page, or you have any queries/suggestions arising from this page, please email:
Prof Leslie S Smith (lss(nospam_please)@cs.stir.ac.uk)

computing logos