RecordNode

IMPORTANT: The Open Ephys GUI documentation has migrated to a new site – please visit https://open-ephys.github.io for the most up-to-date information.

 

The RecordNode is a processor that writes data in a variety of formats. The GUI won’t save data unless you have at least one RecordNode in your signal chain. The purpose of the RecordNode is to save your data in the format you want and the location you need at any point in the signal chain.

Adding a RecordNode into a signal chain brings up the interface below: (The subprocessors are hidden by default, so you will need to use the ‘SHOW/HIDE SUBPROCESSORS TOGGLE’ to access them).

General Configuration

On the top-right of the editor is the ‘WRITE PATH SELECTOR’ which opens up an explorer window to navigate to the desired write directory. Use this to set the root path of where the data files generated from this RecordNode will be stored.

Directly below, the ‘ENGINE SELECTOR’ pull-down lists the available recording formats. Both the ‘WRITE PATH SELECTOR’ and ‘ENGINE SELECTOR’ default to the values shown in the Control Panel.

To the left of the ‘ENGINE SELECTOR’ is the ‘LOCAL DISK SPACE MONITOR’ which indicates the amount of free space available at the path shown by the ‘WRITE PATH SELECTOR’.

Recording Continuous Channels

Selecting a ‘CONTINUOUS CHANNEL MONITOR’ opens up a ‘RECORD CHANNEL SELECTOR’ interface as shown. By default, the interface has every channel set to record. Through the interface, you can toggle individual channels on/off, select ALL or NONE channels at once, as well as a custom range of channels using Python slicing:

Click and drag multi-channel selection is also available:

Use the ESC key to exit the ‘RECORD CHANNEL SELECTOR’ and save the current configuration.

Recording Events

Below the ‘ENGINE SELECTOR’ is the ‘RECORD EVENTS TOGGLE’ which toggles the recording of any events coming into this RecordNode. Regardless of the toggle state, this will not modify any incoming events

Recording Spikes

Analogous to the “RECORD EVENTS TOGGLE', the ‘RECORD SPIKES TOGGLE’ will enable/disable recording of any spike data coming into this RecordNode. In order for spikes to be detected by the RecordNode, you must have a spike generating processor somewhere before the RecordNode in your signal chain.

Multiple Record Nodes

A RecordNode can be placed after any Source, Filter, Splitter or Merger processor in your signal chain. In the example below, we are able to record the raw data coming from Neuropixels probes while simultaneously recording the same data after it has passed through a bandpass filter. In this case, we have configured the first RecordNode to write the raw data in the Binary format while writing the filtered data in the NWB format.

Synchronizer

The RecordNode has a built-in synchronizer module which allows for synchronizing asynchronous data sources in the signal chain. Below each ‘CONTINUOUS CHANNEL MONITOR’ is a ‘SYNC CHANNEL MONITOR’ which provides an interface for designating an input data source as a master data source as well as selecting a digital input channel for each data source to serve as a sync channel. The active master data source will always have a letter ‘M' on its 'SYNC CHANNEL MONITOR’. There can only be one sync channel per data source and the active sync channel is always indicated with an orange background.

Once the synchronizer has been configured, starting data acquisition as normal will automatically start the synchronizer. Each ‘SYNC CHANNEL MONITOR’ will change from a gray background to an orange background to indicate the synchronizer is running. Once a data source has been synchronized with the master data source, the corresponding ‘SYNC CHANNEL MONITOR’ will turn green. Data sources with a higher sample rate will generally synchronize more quickly than those with lower sample rates.

Currently, the synchronizer is only available when using the Binary data format for recording. The result is a synchronized_timestamps.npy file that contains a double (float64) timestamp for each int64 timestamp found in the original, unsynchronized timestamps.npy file for each data source.

A more in-depth tutorial of the synchronizer using Neuropixels and NIDAQ as data sources is coming soon!