SpikeOMatic is a free software running on both Linux and Windows. It performs spike-sorting using two data generation models, a simple Gaussian Mixture Model (GMM) and a more sophisticated Dynamic Hidden Markov Model (DHMM). When working with a GMM the Expectation-Maximization (EM) algorithm is used to perform statistical inference. A DHMM requires the sophisticated Markov Chain Monte Carlo (MCMC) machinery to be used. In addition this latter kind of model gives rise to MCMC algorithms exhibiting slow relaxations. We are therefore implementing Extended Ensemble techniques known as Replica Exchange Method (REM), Parallel Tempering Method or Metropolis-Coupled MCMC method… depending on your field (Physics, Statistics, Phylogeny).
The MCMC based SpikeOMatic version available from this web page is now broken, that is, some work is needed to make it installable on the last R versions. I therefore urge you guys to use the one located at:
newSOMtutorial. I'm planing to start working on the package again at the begining of next year.
SpikeOMatic version is now usable and can be found at the following
I've started working on the new
SpikeOMatic version. It will be more tightly linked to R and it won't use
the GSL anymore (it is
NOT because the GSL is bad, it's just that it makes life hard for
Windows users of SpikeOMatic). I have already a parallel version
working (the stage where models with different numbers of neurons are
fitted and compared is distributed on several CPUs). In order to use it
you will need to have the LAM/MPI
implementation of the Message Passing Interface (MPI) installed on a
bunch of PCs (running Linux) or Macs (running OS X). Then you will need
2 R packages: Rmpi and Snow. You can get info about them at the two
snow and about R and
// applications on Macs. If you're really impatient to try the //
version out, send me an email and I'll send you a script implementing
There are problems running the mcmc code of SpikeOMatic on 64 bits machines (AMD opterons). Thanks to Robert Stewart for making me know and courageously trying out. Pascal Viot and I will try to fix that as soon as possible.
Sorry guys we have by mistake put a sub-optimal Makefile in our last update of the library (early February 2005). You could therefore not compile it on Windows without modifying this file yourself (and you could also not compile it on Linux without plotutils installed). That's now fixed...
R (version 2.0) package for
windows is now available. It should be simpler to install than the
previous one, check the new Windows
There was a tiny mistake in the vignette of the second tutorial which made the regenerated pdf file look much worse than the one we give on this web site. The mistake has been corrected.
A new release of R came out (2.0 instead of 1.9). We
have not tested it yet but we will do
it next week. If anyone gets problems trying to run SpikeOMatic with
this new R version, do not hesitate to let us know.
For the Windows users, don't get too bothered by the wrong check sum "insult" you get while installing the package. That's not a problem… But we will fix that soon (thanks to Clément Léna for letting us know).
The SpikeOMatic Library is available for Windows. You can download the source and compile it in Cygwin. If you have any question, request or suggestion, please address it to Matthieu Delescluse in priority until October 20.
SpikeOMatic goes MCMC! We are releasing today the SpikeOMatic Library, a bunch of C routines used to do spike-sorting with a Markov Chain Monte Carlo method. The R SpikeOMatic package is updated accordingly with new functions and a new tutorial. That's for Linux only. It even seems to work on Windows.
Finally we made it! The new (beta) version of SpikeOMatic is ready for release... And it even runs on Windows!
It requires less work from us.
If the general purpose environment is powerful enough, the user is free to use its built-in functionalities as well as the ones added by SpikeOMatic.
It makes our life easier to have SpikeOMatic available on different operating systems (currently Linux and Windows).
R has much more graphical capabilities than Scilab does.
It is straightforward to dynamically link your (C or Fortran) codes to R and therefore to call them from the environment. In my experience it is much trickier in Scilab.
R is faster and its memory management is much more efficient.
R can easily extended by user contributed packages. The ones which are already available are really impressive. If you're a neurophysiologist the level of the analysis they allow you to do will very likely be a whole new world for you.
Last but definitely not least, R is fundamentally a programming language and a very powerful and elegant one. If you consider that the vectorization of Scilab/MatLab is really cool (and elegant), you will be impressed.
Then a simple click will allow you to visualize the data.
The spike detection is done by typing a single command. The detection can then be checked.
If you're happy with the events detection you can cut the spike sweeps and at the same time extract some useful noise properties. Basics features of the sample which will be sent to the sorting algorithm are worth looking at.
Once the model has been established and the individual spikes classified, diagnostic plots for individual neurons are obtained in one command line.
The Markov Chain Monte Carlo algorithm we described in a recent paper, Pouzat et al (2004), and a book chapter, Pouzat (2004), is now implemented in a C library written by Christophe Pouzat and Matthieu Delescluse. This library runs on top of the Gnu Scientific Library (GSL). An almost complete API documentation is available. We are preparing an hopefully nice description of this library, for now if you want to use it directly in your own codes, take a look at the files in the test folder of the source package.
Our R package makes use of the library by calling a stand alone C binary, som_mcmc. In order to perform a complete analysis with R and the MCMC extension of SpikeOMatic you will need to have GSL installed and this binary somewhere on your PATH.
The organization of the library is very similar to the one of GSL. The main difference is that we have carried the "object oriented" approach a bit further, following the recommendation of J P Braquelaire's book: Méthodologie de la programmation en C (Dunod, Paris, 2000). That means that the structures used by the library or always accessed through pointers. That the user cannot manipulate directly the components (fields) of the structures directly but has to use specific functions (methods). We are essentially using objects like in object oriented programming, the big difference is that we do not have inheritance.
Source package of the SpikeOMatic Library
Linux binary of som_mcmc, the workhorse of the SpikeOMatic Library, compiled with icc and with gcc. If you dowload one of these binaries you will have to "gunzip" it and then change its name from som_mcmc_icc or som_mcmc_gcc to som_mcmc. This last file has to be in a folder located on your excecutable PATH. We will need also to have GSL installed.
Install the R package from source or binary on Windows
Install the SpikeOMatic Library from source on Windows
A documentation in HTML format of the SpikeOMatic Library is available.
R allows you to process some peculiar files (files with a .Rnw suffix) where documentation in LaTeX or HTML format and R code are mixed. Using function Sweave R executes the so called code chunks of these files and outputs a LaTeX or an HTML file where the LaTeX (or HTML) parts of the previous file have been directly copied and where the code chunks have been replaced by the result of their execution (including figures if figures have been generated). In short it allows you to dynamically re-generate an analysis, thanks to Friedrich Leisch and his Sweave R function. The idea is tightly linked to the reproducible research approach advocated by Robert Gentleman and Duncan Temple Lang in their Statistical Analyses and Reproducible Research paper.
All that seems probably a bit abstract to most of you so let's see these ideas and tools in action by re-generating the first SpikeOMatic tutorial. After starting R, get the HTML help with command:
You can of course do the same with the second tutorial. The last R command should be:
The first part of SpikeOMatic, the one using a Gaussian mixture model and the Expectation Maximization (EM) algorithm was developed while C Pouzat was in the lab of Gilles Laurent in Caltech. This work was done in collaboration with Ofer Mazor.
The Markov Chain Monte Carlo extension is a collaborative work between Christophe Pouzat, Matthieu Delescluse Pascal Viot and Jean Diebolt. The salaries of Christophe, Pascal and Jean come from the CNRS, the one of Matthieu comes from a fellowship of the Ministère délégué à la Recherche. It was supported as well by a "pre-projet of ACI Neurosciences intégratives et computationnelles" and a "bourse BioInformatique".
This work would not have been possible without Linux and the GNU project, especially emacs, gcc, gdb and ddd. Thanks as well to Intel for giving free C and Fortran compilers for Linux. When I compare the "work" of some guys who got a Nobel price in Biology and the work of the guys who developed compilers and debuggers I can only conclude that the world is definitely unfair.
Back to C Pouzat Home Page Retour à la page titre de C Pouzat