I’m reaching out to get some community feedback on EEG data management, particularly around format choices for BIDS-compliant datasets.
Our context: we are building a multimodal dataset (EEG, MRI, genetics, clinical data) and are working on structuring everything in BIDS format.
Our current approach: we opted for EDF for our EEG data. Our reasoning is that triggers/stimuli are encoded in EDF annotations and can be retrieved straightforwardly via MNE. Channel and event information is also available in the BIDS sidecars (channels.tsv and events.tsv), which we find sufficient for analysis.
Our question: do you see any concrete reason not to stick with EDF? Have you encountered actual limitations with EDF that pushed you toward another format (BrainVision, FIF, etc.)?
Any feedback from people who have dealt with similar pipelines would be much appreciated!
I think all BIDS-supported formats are generally fine, but here are some things worth considering:
EDF stores EEG data with 16 bits resolution. While this is sufficient in most cases, you might be better off with higher resolutions when you are dealing with extremely large and different offsets across channels. In such cases, BDF or BrainVision might be better options.
Triggers/stimuli are also retrieved automatically from BDF and BrainVision formats, so this is not an advantage exclusive to EDF.
I would not recommend FIF because this format is not widely used outside of storing MEG data.
I would not recommend EEGLAB either for a similar reason (not widely used and based on a proprietary MATLAB format).
Other than that, I don’t think there are additional arguments for or against a particular format, especially because you are planning to use the BIDS structure anyway, which includes all kinds of metadata in separate files (which makes the choice of the EEG file format even less critical).
One practical limitation I have run into with EDF is that it is easy for two readers to produce seemingly reasonable results while making different assumptions about the file.
A few examples:
Sampling rate is effectively per signal rather than global.
EDF+D timing depends on reconstructing the data-record onsets correctly.
Annotations are stored through a signal channel rather than ordinary header metadata.
Real files sometimes contain contradictory record counts, calibration ranges, or duplicate labels.
Some tools normalize or resample mixed-rate channels to make downstream processing easier.
None of those automatically make EDF a bad BIDS format, especially when the BIDS sidecars preserve the semantic information. However, they do make validation and reader behavior important when datasets are shared across software ecosystems.
I recently implemented EDF-family parsing for two open-source TypeScript projects, which is where I encountered most of these cases:
edfcore is the parser, while edf2csv is a local converter that preserves separate sampling rates, annotations, and discontinuities rather than silently normalizing them.
For disclosure, I am the developer. My experience would make me comfortable using EDF for BIDS when the files are validated and the sidecars are authoritative, but less comfortable relying on EDF alone as the complete semantic representation of the dataset.
I’d stick with EDF unless you have a specific problem that another format solves
The main limitation is that EDF stores the signal samples as 16-bit integers. That is usually fine for EEG, but it can matter if channels have very different ranges or large offsets, since the available resolution is determined by the physical min/max stored for each channel. BrainVision or BDF may be a better choice if preserving higher numeric resolution is important
The other issue is interoperability. EDF can represent different sample counts per signal, and EDF+D uses annotations to describe discontinuities. Readers do not always handle those cases in exactly the same way. This is mostly a concern with unusual or imperfect files, not a reason to avoid EDF altogether
For a BIDS dataset I would therefore check three things: that the exported values match the source data after scaling, that events and discontinuities are read correctly in the software you expect people to use, and that the dataset passes the BIDS validator. I’d also treat events.tsv and channels.tsv as the authoritative description rather than relying only on embedded annotations
One small point about FIF: it is useful in MNE workflows, but it is not currently one of the accepted raw EEG formats in EEG-BIDS. The BIDS specification recommends EDF or BrainVision; BDF and EEGLAB are also accepted
So if your EDF files are valid, have adequate resolution, and round-trip correctly through your pipeline, I don’t see a practical reason to convert them. I would choose BrainVision or BDF only if you have identified a precision or compatibility issue that EDF cannot handle cleanly