An open source, cross-platform software suite for neuroscience data acquisition and experimental control.

Trodes is used to monitor incoming data from our data acquisition hardware. It acts as the user interface for all aspects of an experiment, including complex control of behavioral apparatuses and neuro-perturbation devices.

Development team and financial support


Many modules, one system. Designed for performance, flexibility, and ease of use.

Trodes is made up of "modules", each running as a separate process and serving a specialized purpose. The modules all communicate with a central graphical interface that performs the most crucial tasks associated with visualizing and saving data. With this architecture, the trodes suite is readily extendable without needing detailed understanding of existing code. This allows Trodes and its users to benefit from a community of talented engineers and scientists.

Trodes is bundled with two modules, the camera module and the StateScript module.

All channels are saved at full sampling rate

Long gone are the days when only low sampling rate LFP and spike snippets could be saved. With Trodes, the channels are saved in continuous broadband form, allowing the user to change the filters, digital references, and triggering parameters long after the recording session. Files can be played back later in real time, providing a valuable data exploration tool. Here is a screenshot of a file being played back with all filters turned off:


The same interface works on three operating systems. Ideal for online/offline workflow.

The computers used to acquire data are often not the same as the computers used to analyze data offline. While a lab may acquire on a linux workstation optimized for low latency performance, researchers may want to inspect the collected data on a laptop running OSX.

Because Trodes is developed and tested on Windows, OSX, and Ubuntu Linux, data collection and offline inspection are completely cross-platform. Collect data on one machine, play back in real time on another. The same cross-platform capability is true for most of the modules, such as the camera module. Collect video on one machine, but use the same interface for offline position tracking on another machine.

Organize channels into "nTrodes" that trigger together during spikes.

Sort spikes when they occur and send spike events to other modules. Plot PSTH's with optogenetic stimulation to determine neuronal subtype. Define feedback stimulation contigent on specific spike patterns. The possibilites are endless.

screenshot macscreenshot


The Camera Module is used to acquire video that is synchronized to the neural recording

Track the animal's position either during the experiment or afterward as you play the video back. Most USB webcams are supported, and for precise frame timing control the module also supports Allied Vision Tech's GigE cameras on all three operating systems.


The StateScript Module is used to communicate with the ECU StateScript server.

Use this interface to edit scripts, send commands to the ECU, and connect 'observer' programs such as Python or Matlab to your custom control system.




Getting started


16 Channel Recording (1.21 GB)

Source code

Bitbucket repository

Development binaries

Bitbucket downloads

Trodes Development Team

Mattias Karlsson

Co-founder, SpikeGadgets

Maris Kali

Developer, SpikeGadgets

Kevin Wang

Developer, SpikeGadgets

Loren Frank

Professor, UCSF/Howard Hughes Medical Institute

Daniel Liu

PhD Candidate, UC Berkeley - UCSF Graduate Program in Bioengineering

Demetris Roumis

PhD Candidate, UCSF Neuroscience Program

Tom Davidson

Research Specialist, UCSF/Howard Hughes Medical Institute

Caleb Kemere

Asst. Prof, Rice University Electrical and Computer Engineering

Shayok Dutta

PhD Candidate, Rice University Electrical and Computer Engineering

Andy Lustig

Developer, Howard Hughes Medical Institute

Ryan Young

PhD Candidate, Brandeis University