Skip to content

Improve the interface between BIDS and MATLAB #10

@pvdemael

Description

@pvdemael

Introduction

BIDS or Brain Imaging Data Structure can be decribed as a simple and intuitive way to organize and describe your neuroimaging and behavioral data.
BIDS is not an image format, but describes a formal human- and computer-readable way of setting up a folder structure, a filenaming convention and the storing of metadata from neuroimaging studies.
An introduction to the BIDS specification is published in a Nature Scientific Data paper.

BIDS allows to

  • easily share data with other researchers (within and between labs)
  • setup processing pipelines which can be triggered automatically as the data is computer readable
  • use several BIDS-compatible tools in one processing pipeline, getting the best out of all tools
  • make sure that you still know your data after 10 years not looking at it as the data is human readable and structured

Community

BIDS is gaining more and more importance in the open science neuroimaging community.
A recent survey showed that the MRI is the main modality to use BIDS.
This community is very vivid with videoconferencing, online meetings, collaborations, Google Docs documents, a github page etc.
Since publication, BIDS has been extended with 4 other modalities and 23 extensions (BEP, BIDS Extension Proposal) are under development. BEP005 on ASL and BEP009 on PET are now very close to completion.
image

Tools

There are already some tools available to generate or interact with a BIDS dataset.
Some of these tools are organized under BIDS Apps which are portable BIDS compatible neuroimaging tools using e.g. Docker.
We can split up these tools by their use:

  • VALIDATION
    A very important tool is the BIDS Validator, a web application which can be used to validate your BIDS dataset against the specification.

  • CONVERTING
    Datasets from all modalities must be converted to BIDS. For Dicom data, dcm2niix is an important tool. Heudiconv, dcm2BIDS and BIDSKit are other examples. Also specific tools like pybv or MNE_bids are available.

  • INTERPRETING
    To be able to work with BIDS datasets, one must be able to interpret datasets. A reference implementation is pybids.
    Most tools are written in Python.

  • PROCESSING/MANIPULATION
    A lot of software tools (SPM, FSL, mriqc, ...) implement parts of the BIDS specification.
    A big issue is that those tools do often not implement the whole specification.
    The FSL website e.g. states:

Note

The pybids library is a more suitable choice if you are after a more robust and featured interface for working with BIDS datasets.

Challenge

As said before, almost all tools are written in Python. Some efforts are made to implement a BIDS interpreter in Matlab The topic of this project is to discuss on a good interface between BIDS and Matlab and test/improve current Matlab based packages.

Some suggestions of topics can be:

  • wish list: what is necessary to have a good interface/API
  • define the interface (eg like pybids, bids-matlab, matbids or something else)
  • inventorize BIDS compatible packages (Python & Matlab) and identify distinct implementations
  • compare current Matlab packages (BIDS-matlab, matbids, ...)
  • what about adding files to the Matlab BIDS data structure on the fly during analysis (not possible in current packages)
  • a completely Matlab-based BIDS converter
  • what is necessary to make a (Matlab) BIDS interpreter tool future proof: what are the good design practices to make sure that the package can easily deal with new extensions
  • For the coders: improve BIDS-matlab, matbids or other custom Matlab scripts, compare them, do code-profiling, improve design, improve interface, clean-up etc.

This list is obviously non-exhaustive and not-binding!

Outcome

Ideally, we end with a well-defined interface for a Matlab package (based or not on one of the existing ones), have and idea on good practices, a working-plan, etc.

Skills to participate

General

No real skills are necessary to discuss on data sharing. However, some knowledge of the BIDS specification is recommended.

Coding

If you would like to work on the code, knowledge of Matlab and eventually Python is recommended.

Organization

Depending on the group size and interests, we will need to split up in taskforces.

Links

https://bids.neuroimaging.io/
https://github.com/bids-standard
https://www.nature.com/articles/sdata201644
https://medium.com/stanford-center-for-reproducible-neuroscience/bids-usage-survey-results-72637ff039c4

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions