Neuropixels validation using the BrainWave Simulator

Neuropixels validation using the BrainWave Simulator

This document describes how to use Neuropixels with XDAQ to validate the system prior to conducting actual experiments. By using the BrainWave signal generator/simulator, users can generate and visualize various types of signals and test analysis workflows to ensure proper system functionality.

Getting Started

Before beginning, you may consult the general XDAQ Self-Test Guide and Neuropixels manual for basic procedures, including grounded-noise measurements and built-in self-tests performed in a saline bath.

Ensure that the setup is properly shielded and grounded. All shanks, as well as the external GND and REF, should be fully immersed in the saline bath, and the appropriate reference should be selected in the acquisition software.

Grounded Measurement

The experimental setup is illustrated in the diagram below.

As the probe is gradually immersed in saline, the peak-to-peak amplitude decreases. This reduction reflects the grounding of noise that originates from floating conditions once the probe is placed in a conductive environment.



Simulated Signal Transmission

In addition to noise measurements, simulated signals can be applied using the BrainWave Simulator (BWS), as described below. For further details on signal delivery via the BWS, please refer to the user manual.


There are typically two selectable modes: Onboard waveform mode and External signal mode.


Onboard Signal Generation
In the onboard waveform generation mode, sine, square, and triangle waveforms are generated directly by the BWS. The frequency and amplitude can be adjusted to verify that the signals are delivered as expected.The spectrum plugin can be used to monitor changes in frequency and power and to confirm that they correspond to the selected parameters.

External Source Playback
In external signal input mode, customized audio waveforms can be delivered from an external device, such as a PC or an audio player, via a 3.5 mm stereo jack cable connected to the BWS and transmitted through the saline bath.


Functions & Interface Overview

Examples of the settings interface in Open Ephys (OE) using the Neuropixels plugin for a Neuropixels 2.0 probe are shown below.



Video 1:
The Neuropixels probe is gradually immersed in a saline bath. As immersion depth increases, the signal amplitude decreases, demonstrating the reduction of noise as the probe transitions from a floating condition to a properly grounded, conductive environment.




Video 2:
The onboard signal generator of the BrainWave Simulator (BWS) is used to change the output frequency. The selected frequency is confirmed by observing the corresponding peak in the power spectrum window.






Videos 3 & 4:
Different waveforms generated by the BWS are demonstrated to validate system performance: a sine wave (10 Hz) to assess frequency response and gain, a square wave to test slew rate and transient response, and a triangle wave to verify signal linearity and symmetry. 
In simulation mode, beyond power spectrum analysis, randomly generated spikes can also be processed through a complete spike analysis pipeline, including the probe viewer, spike detection, and sorting.




Video 5:
A broadband virtual signal is delivered through an external audio source. Spike-band activity is extracted using a band-pass filter, and the same analysis procedures described above can be applied to verify system performance.


Sample Code and Demo File 

Customized ephys data can be converted to a compatible audio format using MATLAB or Python for use with external signal mode.

MATLAB

% signal: your neural data (vector)

% fs: original sampling rate, e.g., 30000 Hz

audioFs = fs;  % keep the original sampling rate


% Normalize the signal to [-1, 1] range (WAV requirement)

signal_norm = signal / max(abs(signal));


% Write to WAV file

audiowrite('neural_original_waveform.wav', signal_norm, audioFs);


Python (recommended for float data)

import numpy as np

import soundfile as sf


# signal: your neural data (numpy array)

# fs: original sampling rate, e.g., 30000 Hz

audio_fs = fs  # keep the original sampling rate


# Normalize the signal to [-1, 1] (WAV requirement for float)

signal_norm = signal / np.max(np.abs(signal))


# Write to WAV file

sf.write('neural_original_waveform.wav', signal_norm, audio_fs)



Python (requires integer data)


from scipy.io import wavfile

import numpy as np


# signal: your neural data (numpy array)

# fs: original sampling rate, e.g., 30000 Hz

# Normalize and convert to int16

signal_int16 = np.int16(signal / np.max(np.abs(signal)) * 32767)


# Write WAV

wavfile.write('neural_original_waveform.wav', fs, signal_int16)


We also provide an example Neuropixels configuration file for the XDAQ–Open Ephys software. This example includes all required plugins in the signal chain and is fully configured for immediate use. By opening the example file, users can start signal acquisition and verify system performance using the real-time analysis functions described above. The signal chain can also be freely modified as needed. [Download here





    • Related Articles

    • Getting started with KonteX's ultra-small X-Headstages

      Thank you for considering KonteX's ultra-small headstage solution. We believe our optimized tools will not only improve the quality of your research but also save you money in the long run. Here is a list of relevant articles you may find useful to ...