BioSemi, ActiRead and ABR replication issue

Dear Brainstorm team,
I have a question about trying to replicate an ABR we acquired through BioSemi that was viewed through the software called ActiRead, a BioSemi software.

The purpose of this exercise was to acquire a multichannel ABR using 8 electrodes.
If you are using BioSemi and want to acquire ABRs you might use an ABR-dedicated tab in ActiView (the data acquisition software of BioSemi, requiring LabView Runtime engine) as shown below in red.

However, with this setup up you cannot acquire multichannel ABR as the ABR-dedicated tab is restricted to two-channel ABR (recording from the left and right mastoids). Therefore we have decided not to use this ABR tab but to use the monopolar tab (the all-purpose EEG acquisition tab). With this setup you can select any number of channels according to user specifications. Therefore we selected 8 channels that were connected to the BioSemi hardware, presented 22477 epochs of stimulations and used ActiRead to view the results which is shown below. Importantly, when ActiView saves the file in BDF format, all the channels are already saved with respect to the CMS (common mode sense) channel which in our purposes was positioned on the nape of the neck. Meaning, re-referencing was not required. This is why under the heading "Reference" no channels were selected.

To replicate this output from ActiRead we imported the same BDF channel into Brainstorm and ran the following: bandpass filter 100 - 1500 Hz, epoching and averaging. No referencing was required as explained in the above. A screenshot of the channel file is shown below along with the averaged output of 22477 epochs (EXG1 channel, the same channel that is being viewed in ActiRead, was selected in RED). Thankfully, the latency at which wave V occurred looked similar but comparing the screenshot of ActiRead and Brainstorm leads to three key observations:

  1. The morphology of the ABR is vastly different.
  2. The stimulus artefact is absent in Brainstorm.
  3. Wave III is below the zero line.


image

We do not know what might be causing these differences - if anyone has any ideas we would highly appreciate it! We share the raw BDF file that was used to produce this output. Many thanks in advance.

The difference is possibly due to the filters. Brainstorm's filters are very sharp. This induces 'ringing' at frequencies close to cutoff. This might account both for the rapid ripples (period ~= 1/1500) and the low value at wave III (period ~= 1/100).

I'm not sure why Brainstorm uses such sharp filters. It looks good in the frequency domain, but there's a price to pay in the time domain (see my Neuron paper), for example artefactual 'waves'.

I looked at the data in Matlab. With a mild (butterworth order 2) highpass filter followed by a DSS/JD analysis to find the most repeatable components, I get the plots below (time course of trial average +/- 2SD of bootstrap and 'topography' over channels). I see a clear wave V with a wave IV like hump, and a later wave VI or VII with a different spatial signature. I don't see other waves, which doesn't mean they are not hiding in the noise.

@mcp0228, there seems to be at least two parameters that will cause the differences:

  1. Filters, as mentioned by @alain, the filter definition causes the first two observed differences.
    Is there a way to check the type, and the frequency response of the applied filters ActiRead?
    In addition, is the filter applied before or after averaging epochs?

    In Brainstorm, you can check the filter response with the View filter response button in the band-pass process.

    About the type, in Brainstorm, we use FIR instead of IIR filters, as the FIR filters do not introduce phase distortion: Linear phase - Wikipedia

  2. Baseline definition for DC removal. This will not have an impact on the shape of the waves but on their DC offset. This causes the third observed difference.
    Is there any definition of baseline in the ActiRead software?
    Baseline is usually defined as the pre-stimulus period. However this definition may change depending on your research question. From the ActiRead plot, it is hard to see what was the baseline period used to compute the DC component to remove.

With the considerations from above, I imported the shared data and use this approach:

  1. Band-pass filter 40-4000Hz (around 2.5 times lower and higher than 100-1500 Hz) to account for a less sharp filters in the ActiRead
  2. Eye-balling the data, is seems the early stimulus (0 to 4 ms) have DC = 0V. As such I used this period to remove the DC offset.

This is the result:

To complement Raymundo's response:

The last plot is a good illustration of the 'ringing' phenomenon. Judging from the ActiRead plot, the ABR stimulus was a ~5-cycle pulse at 4 kHz (correct?). Low-pass filtering at 4 kHz smears the artifact in both directions, conferring an "oscillatory" aspect to the trace almost up to wave V. Note that the original BST plot had "oscillations" at ~1.5 kHz, the filter cutoff in that case. An easy way to avoid this effect is to not apply a low-pass, which is not so useful because there's not much high-frequency power to remove. The stimulus artifact itself is short and can be ignored (unless you filter). Alternatively, one can use alternating polarities so the artifact averages out.

@mcp0228's 3. might also be a ringing effect. Notice in the original BST plot how wave III rode on a wider dip of duration (roughly) consistent with half a period at 100Hz.

The FIR/IIR distinction is orthogonal to zero-phase vs non-zero phase. An IIR can be made zero-phase by applying it both ways (matlab's filtfilt), and an FIR could be non-zero phase (e.g. causal). What counts here is the duration of the impulse response, inversely related to sharpness of the cutoff. BST's sharp filters entail a long impulse response.

Thank you very much @alain and @Raymundo.Cassani for your in-depth answers!
Appreciate your time to write detailed answers :slight_smile:
We've collectively determined that the main issue has to do with filtering as we've had a similar experience in the past with Brainstorm filtering.

Quick answers to your questions;

  1. ActiRead highpass filter type; 1st order. ActiRead lowpass filter type; 2nd order Bessel.
    We asked the BioSemi team for a frequency response but haven't received this information.
  2. The filter was applied before averaging epochs.
  3. I do not think that there is a baseline definition in ActiRead, as such I don't think baseline correction exists.
  4. ABR stimulus was 2-1-2 tone burst at 4 kHz.