Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BCI2000 .dat file reader #13151

Open
Sam54000 opened this issue Mar 10, 2025 · 2 comments
Open

BCI2000 .dat file reader #13151

Sam54000 opened this issue Mar 10, 2025 · 2 comments
Labels

Comments

@Sam54000
Copy link
Contributor

Sam54000 commented Mar 10, 2025

Describe the new feature or enhancement

Hi, I have worked with a lot of BCI2000 output data and noticed that there is no existing reader in MNE (as far as I know). BCI2000 is a very versatile software for multimodal acquisition and the most cited BCI tool. Therefore, I would like to contribute to the codebase by adding a Raw class dedicated to BCI2000 data and its associated reader for output files in .dat format. I hope this is relevant, and I really look forward to contributing to the codebase! Just need the blessing of the MNE elders ^^

Describe your proposed implementation

Reproducing the same implementation philosophy of other format (such RawEDF, RawEGI) I would like to add a Raw class dedicated to BCI2000 data that would be called RawBCI2k and the associated reader mne.io.read_raw_bci2k().
The BCI2000 community had already implemented a reader in python (see here) so I would like to take example of their reader and wrap it into a nice mne.io.read_raw_bci2k() function.
In order to avoid dependencies, I am going to write the class and the reader "from scratch" taking example from their reader and cite them.

Describe possible alternatives

As an alternative, I would work with the BCI2000 team in order to make their reader a python package. We would put the BCI2000 reader in the mne requirement (it would be installed alongside the other packages when installing mne). Then we would call their reader module when calling mne.io.read_raw_bci2k().

Additional context

No response

@Sam54000 Sam54000 added the ENH label Mar 10, 2025
@larsoner
Copy link
Member

Sounds reasonable to me!

One hiccup could be licensing -- if you want to look at their code and understand what to do their code needs to be in a BSD-compatible license. Looking at https://github.com/neurotechcenter/BCpy2000 it looks like GPL, which is incompatible. You would need to ask for explicit permission to relicense their code.

If they don't grant it, you would have to come up with an implementation from scratch based on some file format specification doc or similar I think

@Sam54000
Copy link
Contributor Author

Sure, I am working with them to find the best solution.
Then I will implement the solution and submit the PR for review.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants