What is Klusters?
Klusters is a powerful and easy-to-use cluster cutting application designed to help neurophysiologists sort action potentials recorded from multiple neurons on groups of electrodes (e.g., tetrodes or multisite silicon probes). Klusters is part of a larger data analysis framework, including
NeuroScope (advanced viewer for electrophysiological and behavioral data) and
NDManager. Klusters was developed by Lynn Hazan in
G. Buzsáki's lab (CMBN, Rutgers Newark, USA).
What is cluster cutting?
Neurophysiological experiments investigating the functional properties of neuronal networks involve recording brain signals with large numbers of electrodes. Because each of the electrodes used in these experiments generally records from multiple neurons, the first step before analyzing the data is to sort out the action potentials emitted by each individual neuron. Hence, each putative action potential or "spike" must be grouped together with other spikes that are thought to belong to the same neuron. Such a group of spikes is referred to as a "cluster", and the whole process of sorting out the action potentials is thus known as "spike sorting" or "cluster cutting".
How is Klusters distributed?
Klusters is a free software distributed under the
General Public License (GPL).
Who uses Klusters?
Klusters is used to process neuronal recordings from the hippocampus and cortex by dozens of teams around the world, including those of G. Buzsáki (Univ. Rutgers, USA), M. Zugaro and S. Wiener (CNRS-Collège de France, France), A. Sirota (Univ. Tübingen, Germany), K. Benchenane (CNRS, France), K. Diba (Univ. Wisconsin, USA), D. Robbe (IDIBAPS, Spain), H. Hirase (RIKEN, Japan), D. Isbrandt (Univ. Hamburg, Germany), V. Crunelli (Univ. Cardiff, UK), G. Laurent (Caltech, USA), E. Kandel (Univ. Columbia, USA), J. Knierim (Univ. Johns Hopkins, USA) and many more...
Warning: Klusters requires Qt3 and kdelibs from KDE3, and can no longer run on some recent GNU/Linux distributions that have dropped support for these libraries. To solve this issue, the code will soon be ported to Qt4. In the meantime, please use (older) versions that support Qt3 and kdelibs from KDE3.
Good news: Thanks to user feedback, a very simple solution is now available for more recent versions of (K)Ubuntu (>=11.10 Oneiric).
Supported Systems
Klusters was developed for GNU/Linux, but can also run on MacOS, and even on Windows, using a virtual machine such as
VirtualBox (see
instructions contributed by Lucile Belliveau).
Packages
Readily-installable packages are provided for (K)Ubuntu. For other platforms, you will need to compile the sources.
If you use a recent version of (K)Ubuntu (>=11.10 Oneiric), you can get
kdelibs4c2a and its dependencies from the repositories for
Natty. This can be done either graphically using your favorite package manager, or at the command-line like this:
- Add the following line to /etc/apt/sources.list:
deb http://fr.archive.ubuntu.com/ubuntu/ natty main universe
(you can replace fr.archive.ubuntu.com with the mirror closest to you)
Type:
# apt-get update
# apt-get install kdelibs4c2a
Remove the line from /etc/apt/sources.list
Type:
# apt-get update
(Thanks to C. Rodgers and C. Schmidt-Hieber).
Building from Source
Before you start, make sure you have a working building environment (GCC C++ compiler and GNU make). All distributions provide packages ready for installation. Use your favorite package manager to install them, either graphically (Synaptic, KPackageKit, YaST, etc.) or from the command-line (apt-get on Debian/Ubuntu, yum on Fedora/Redhat, etc.) Next, install the libraries and headers for kdelibs (KDE3), qt3 and libxml2. Again, use the packages provided by your distribution. Usually, packages for headers have the same name as those for libraries, followed by a suffix such as '-dev' or '-devel'.
The general procedure consists in extracting the archive, configuring the build process, building the sources, and installing:
# tar xvzf klusters-1.6.4.tar.gz
# cd klusters
# ./configure --prefix=$(kde-config --prefix) --without-arts
# make
# su
(type root password)
# make install
On some platforms, you may need to add extra arguments during the configuration step. For instance, if Qt libraries and headers are located within the non-standard directory /usr/lib64/qt-3.3, configuration will fail unless you add the following options:
# ./configure --prefix=$(kde-config --prefix) --without-arts --with-qt-includes=/usr/lib64/qt-3.3/include --with-qt-libraries=/usr/lib64/qt-3.3/lib
Similarly, if Qt tools (such as moc) are located in the non-standard directory /usr/lib64/qt-3.3/bin, they will not be found during configuration unless you change your PATH variable beforehand:
# PATH="$PATH:/usr/lib64/qt-3.3/bin"
If you need help, contact Michaël Zugaro at
michael.zugaro at college-de-france.fr
The user manual can be acessed in Klusters from the Help menu. It is also available
online.
Klusters can be tested using these
example files (25.1MB, courtesy of David Robbe).
Developer documentation (API) can be found in the source archive in the directory klusters-api/html. It is also available
online.
June 29 2011 - Klusters 1.6.4
- Klusters can now use non-integer sampling rates.
- Klusters no longer crashes for 30kHz sampling rates.
- More minor corrections to have Klusters compile with the new versions of gcc.
April 10 2010 - Klusters 1.6.3
- Minor corrections to have Klusters compile with the new versions of gcc.
September 17 2007 - Klusters 1.6.2
- Addition of the capability to add information (structure, isolation distance, type, quality and notes) to cluster in the Cluster Palette.
- This information is saved in the parameter file. Note that Klusters is no more backward compatible and the information is only saved in the xml version of the parameter file.
January 28 2004 - Klusters 1.6.1
- Addition of the capability to browse spikes in the Trace View.
- Klusters has been modified to be compatible with the new GCC 3.4 release series (G++ is now much closer to full conformance to the ISO/ANSI C++ standard).
- This version has been tested on Fedora Core3 linux with the gcc 3.4.2 and on KNOPPIX 3.7 with the gcc 3.4.4 20041218 (prerelease)(Debian 3.4.3-6).
December 28 2004 - Klusters 1.6
- Ability to open several Correlation Views in a single display. This allows you to examine spike train properties at different time scales.
- Cross-correlograms are displayed in gray when the background is white or very light (including while printing with the "Use white background" option on).
- Bug fixes.
October 26 2004 - Klusters at SfN
- Klusters was presented at the Society for Neuroscience 34th Annual Meeting in San Diego
- The abstract reference is: L.Hazan et al, Soc Neurosci Abstr 34, 768.3, 2004
October 11 2004 - Klusters 1.5.2
- Labels displayed next to the traces in the Trace View.
- Bug fixes.
September 20 2004 - Klusters 1.5.1
- Ability to open data files recorded with a 14 bits recording system.
- Bug fixes.
September 13 2004 - Klusters 1.5
- The parameter file format was changed. However, Klusters is backward compatible and can still read the old parameter files.
- Addition of a new type of view, the Trace View. The Trace View displays spikes on the wide-band signals. This view is available only if the wide-band data file is present in the same directory as the other files and the new parameter file format is used.
- When moving the mouse over the Correlation View, the clusters corresponding to the underlying correlogram are shown in the status bar.
- Bug fixes.
July 27 2004 - Klusters 1.4.2
July 22 2004 - Klusters 1.4.1
- Klusters runs on Slackware 10.
- rpms for Mandrake 9.1
- Bug fixes.
July 16 2004 - Klusters 1.4
- The source archive klusters-1.4.tar.gz released on July 08 did not compiled on certain distributions, this is now corrected. If you have encounter this problem, please download a copy of the corrected archive and try again (this does not affect the debian package).
- In addition a layout bug was corrected in the documentation. [This affects both the source archive and the debian package].
- rpms for SuSE 9.1
July 08 2004 - Klusters 1.4
- Printing, and exporting to a PostScript file (.ps) or Portable Document File (.pdf).
- Bug fixes.
April 19 2004 - Klusters 1.3.3
April 09 2004 - Klusters 1.3.2
- When moving the mouse over the Correlation View, the time corresponding to the underlying correlogram is shown in the status bar.
- In the Error Matrix View, clicking twice with the CTRL key on a cell of the Error Matrix will unselect the corresponding pair of clusters (which were selected by the first click).
- Bug fixes.
March 08 2004 - Klusters 1.3.1
- Minor release which fixes bugs and adds the ability to open another session file without closing the current one (this will actually start another instance of Klusters).
February 23 2004 - Klusters 1.3
- The user interface is now more flexible, allowing you to dynamically compose custom combinations of views, and lay them out as you like.
These combinations are referred to as displays, and the term views is now more restrictively used to designate
a specific type of data representation (i.e., the 'building blocks': Clusters View, Waveform View, Correlation View and Error Matrix View).
- Views can be added and removed from a display.
- Views can be moved around in a display.
- A display can contain several Cluster Views, each presenting a different two-dimensional projection of the feature space.
- Display titles (tab labels) can be edited.
- These changes are now reflected in the application menus and User Manual.
- Thread interruptions are now much faster, resulting in a more responsive interface (this reduces the delays
when closing a display, the data files or the application).
- Bug fixes.
February 11 2004 - Klusters on SourceForge !
February 06 2004 - Klusters 1.2
- Firing rates displayed in the Correlation View.
- Automatic Reclustering: besides the ability to manually reshape existing clusters, Klusters now provides a mechanism to invoke an external automatic cluster cutting program such as Kenneth D. Harris' KlustaKwik to selectively recluster currently selected clusters.
- User Manual written by Michaël Zugaro.
- An icon for Klusters.
- Bug fixes.
January 21 2004 - Klusters 1.1
- Addition of the Grouping Assistant feature. This feature helps you to find similar clusters by displaying an Error Matrix. Each element in the Matrix indicates how likely it is that the two clusters corresponding to the row and column of the element contain spikes from the same neuron.