Skip to content

Wrong offset in Biocam sparse reader ? #1865

Description

@b-grimaud

When the sparse reader for 3Brain file was implemented (see #1446), the "synthetic noise" option had an offset of +2048 since noise levels were stored around 0. It was assumed that, after a 12-bits unsigned to signed conversion, the generated noise would end up around the baseline (see issue #1743).

However, I've recently noticed odd-looking units if I run sorters on compressed data.
Checking out the traces, it looks like the offset isn't valid anymore.

Through SI :

recording = se.read_biocam(path,
                            mea_pitch=60,
                            electrode_width=21, 
                            fill_gaps_strategy="zeros"
                            ) 
recording = spre.unsigned_to_signed(recording, bit_depth=12)
recording.get_traces(start_frame=10*fs, end_frame=11*fs, channel_ids=['421'])

Plots the following :

Image

Whereas with "synthetic_noise" :

Image

Looking through NoiseMean in the HDF5 shows that indeed the noise is now stored around 2048.

I think they might have changed something internally about how noise is encoded. I've also noticed that re-exporting compressed recording to "raw" through BrainWave 5 results in a different HDF5 structure than with BrainWave 6, and the latter cannot be read with neo. I'll open a separate PR, but there's definitely something different on the way they save data.

@mahlzahn Have you noticed anything different with recent recordings ? We keep our BrainWave up to date, and I started noticing the issue on recordings from January 2026.

Running latest on Ubuntu 24.04.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions