GSoC 2021 project 14.2 BCI2000-to-BIDS converter: a GUI application in Python/Matlab/C++

Acquisition of and real-time interaction with electrophysiological signals can be accomplished with many different bio-signal acquisition devices. The BCI2000 general-purpose software platform provides an open-source solution to abstracting a wide range of bio-signal acquisition devices, synchronizing their signals to a variety of other devices that capture behavior (e.g., eye-trackers, data-gloves, etc.), and closed-loop experiments. BCI2000’s large high-quality code base is documented by a comprehensive set of technical references that is available as a wiki at (http://doc.bci2000.org). To date, BCI2000 has been provided to more than 6,000 users worldwide that have produced an extensive body of electrophysiological data.

The Brain Imaging Data Structure specifies a standard folder structure for many different electrophysiological signals, such as EEG, MEG and intracranial EEG, imaging data and is rapidly growing with ongoing proposals to extend BIDS. Metadata are both human- and machine-readable and their fields are prescribed to allow for automated processing. Moreover, there is a large community involved in the development of BIDS, including developers from many labs and analysis packages worldwide. A converter from BCI2000 data to BIDS will connect the many users of BCI2000 to the BIDS community and facilitate sharing of the unique BCI2000 experiments in BIDS.

The objective of this project is to develop the framework along with a graphical user interface (GUI) to convert BCI2000 data into the BIDS format. Achieving this goal will facilitate the dissemination of BCI2000-based data within the growing BIDS community and the open sharing of these data. We anticipate that this project will be structured into: 1) a framework for the conversion from BCI2000-based data format into BIDS data format; 2) implementation of a proof-of-concept command line tool in either Python, Matlab or C++; and 3) expansion of the corresponding command line tools with a graphical user interface to inspect and visualize the data and conversion process. The tools developed within this project will be open-source, developed on GitHub and hosted and maintained within the BCI2000 project and links will be added to the bids-starter-kit.

Skill level needed:

  • Python | Matlab | C++ - command line - intermediate
  • Python | Matlab | C++/Qt - GUI programming - intermediate
  • Familiarity with data structures - advantage
  • Familiarity with BIDS - advantage

Tech keywords:

  • Python, PyQt5, JSON, Matlab, C++, Qt
  • BCI2000, BIDS
  • GitHub

Mentors : Peter Brunner (Washington University in St. Louis), Dora Hermes @Dora_Hermes (Mayo Clinic, Rochester)

Co-Mentor: Markus Adamek (Washington University in St. Louis), Max van den Boom (Mayo Clinic, Rochester)

Tags: BCI2000, BIDS, electrophysiology, data formats, GUI

1 Like

Hey @malin, @Dora_Hermes !
I am Aditya R Rudra, a second year CSE undergraduate from NITK.
I read through idea and found it really involving and interesting…
Any help regarding how to get started would be really appreciated.

Regards…

Hi Aditya,

Here is a start of the github repo where this project will take place:

Please have a look at some of the issues and see whether you can make a start. You can respond to the issues with questions as well.

Thank you!
Dora

(adding a tag: adityaofficial10 )

1 Like

@Dora_Hermes
If I am not wrong, we intend to develop a command line utility and a corresponding GUI which does the BCI2000 to BIDS converter. Right?
I have also started working on the issues.
I will also prepare a draft proposal and send it to you for review.

Thank you, that sounds great!

That is indeed the plan. The issues on github break down some steps toward this process.

Hello, @Dora_Hermes! Is that project idea and repository link still actual?

This year’s application period for the GSOC has expired. We are still planning to do the project though and contributions to the github repo are welcome!

Okay. I have forked the repository and going to try to implement the converter even not as a GSoC student.