relacs (pronounced "relax!")
is a software platform for closed-loop data acquisition,
online analysis, and stimulus generation specifically
designed for (but not limited
to) electrophysiological recordings.
free and open software
to foster development and exchange of innovative
experimental protocols and analysis techniques.
The main reason for developing relacs
was to create a platform for implementing
relacs offers many more
features, that sets it apart from other data acquisition software:
In addition, relacs provides:
We are using this program very succesfully in our lab for many years
(see list of publications).
- Open source
relacs is programmed in C++:
- 201 header files
- 200 C++ source code files
- altogether 177 259 lines of code and inline documentation
(113 172 lines for the relacs-core,
64 087 lines for plugins)
relacs is published under the
Qt4 for the GUI and mutlithreading support,
Doxygen for inline documentation of the API, and
optionally GSL-GNU scientific library for some numerics.
Currently, only COMEDI based implementations of the
AnalogOutput plugins are provided
(see comedi plugins).
The dynamic-clamp feature is based on RTAI.
Note: For normal (no dynamic-clamp) streaming analog input and output, RTAI is NOT required!
- Sweep-based quasi-continuous acquisition
Stimulation (analog output) and data-recording (analog input)
are started simultaneously for each stimulus to ensure
best synchronization, but data are recorded all the time
and can be viewed continuously.
Depending on the hardware and the driver implementation
relacs is also able to start analog output
without interrupting the analog input stream
(e.g. the dynamic clamp plugins).
relacs has been designed initially
for up to about 10 input traces. More traces are possible,
but might require a different widget for showing the raw voltage
- Stimulation via analog output channels
The neuron (or whatever system) can be stimulated via the analog
output channels of the data acquisition boards with continuous
freely programmable waveforms. Depending on the hardware of your
experimental setup this can be, for example, a current injected
into the cell, a sound wave, an electric field, ...
- Seamless integration of attenuators
For adjusting the amplitude of a stimulus and still make use of the
full resolution of the data aquisition board one can use digitally
controlled attenuators. This is especially usefull for acoustic stimuli.
relacs uses two levels of abstraction
to support attenuators. First, the
Attenuator device interface provides
an interface to various attenuator device types.
Second, the Attenuate interface
translates an intensity variable to the appropriate attenuation level.
How the intensity variable is interpreted (e.g. as dB SPL or sound pressure)
depends on the implementation of the Attenuate interface
as well as on the corresponding calibration program.
This way, one requests a meaningful intensity for a stimulus
that is then automatically and hardware-independently translated
into an appropriate attenuation level.
- Version 0.9.8
- November, 2012
Made internal representation of key-value pais is hierarchical
to simplify lots of code and to better fit the odML standard.
Read all NEWS announcements.