Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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.Just like any Filter processor, the RecordNode can be placed after any Source, Filter, Splitter or Merger processor in your signal chain. However, RecordNodes cannot modify the data passing through them, but instead copy and redirect the data to memory in the background.

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).

...

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. #TODO:

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 int he 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!