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