Ephus is a collection of programs for data acquisition. Although focused on electrophysiological experiments, Ephus is a general-purpose data acquisition environment. Ephus consists of modules such as:
Stimulator - a program that controls output, DA or DIO, on several channels. For each channel one has to specify output signals.
Acquirer - a program that controls input, DA or DIO, on several channels.
Ephys - a specialized program for cellular electrophysiology supporting intracellular recordings.
The number of output and input channels are only limited by the available hardware. The mapping between hardware and output and input channels is achieved in an initialization file. The data sent to the stimulator can be specified by the PulseEditor. Each program can be triggered by other programs, or trigger the other programs when started. Alternatively all programs can be triggered by the Looper, which cycles through a specified number of data acquisitions. Each position in a loop can send different data to the stimulator channels or Ephys via the PulseJacker.
The above roughly recapitulates the functionality of standard electrophysiology data acquisition programs. Ephus also has numerous unique features.
Multiple levels of customization. Ephus allows easy exploration of experimental parameters through interactions with GUIs. However, Ephus also allows rapid (< 1 second) switching between widely differing experiments using 60 programmable Hotswitches. To program a hotswitch one simply has to configure Ephus manually (i.e. set data acquisition parameters, select stimulation protocol, activate programs, arrange windows) and define the hotswitch. Subsequently, pressing the hotswitch will recover the saved settings. Logical groups of experiments (e.g. defined by a set of hotswitches) can be saved as a configuration set, each of which has its own set of hotswitches. Each user typically maintains 3-4 active configuration sets. The operation of the programs, including all configuration management, is managed by a Matlab class (the 'ProgramManager') that keeps track of who is doing what and in which order.
QCam - a program for CCD camera control. QCam acquires data from CCD cameras. QCam is used for fluorescence microscopy, bright-field microscopy for whole cell recordings, intrinsic signal imaging, and more. Using hotswitches it is easy to switch quickly between different look-up tables, frame rates, window sizes and other imaging parameters.
Mapper - a program linking LSPS and electrophysiological measurements. The Mapper is a highly optimized tool for circuit mapping or photochemical microscopy. The Mapper is used to define the scan parameters and to align the scan with a video image of the sample. The Mapper also orchestrates the Stimulator, Acquirer, and Ephys programs_,_ all of which are involved in a mapping experiment. The Mapper is associated with some specialized calibration programs.
User-functions for on-line analysis and customization. Program execution is associated with about a dozen events, each of which can be made to trigger the execution of custom user functions. Typically these functions are used to program custom data analysis after data acquisition. However, user-functions can also be used to change data acquisition parameters and therefore allow customization.
Data-binding through the xsg. The xsg ('experiment saving gui') controls the saving of data files. All data acquired are bound together in a logical manner and all acquisition parameters are saved in a header.