BIDS for MATLAB / Octave
This repository aims at centralising MATLAB/Octave tools to interact with datasets conforming to the BIDS (Brain Imaging Data Structure) format.
For more information about BIDS, visit https://bids.neuroimaging.io/.
Download, unzip this repository and add its content to the MATLAB/Octave path.
Or clone it with git:
git clone https://github.com/bids-standard/bids-matlab.git
and then add it to your MATLAB/Octave path.
Get the latest features
The latest features of bids-matlab that are in development are in our
To access them you can either download the
dev branch from there:
Or you can check it out the
dev branch after the adding this official
bids-matlab repository as a remote.
git add remote upstream https://github.com/bids-standard/bids-matlab.git git checkout upstream/dev
What this toolbox can do
read the layout of a BIDS dataset (see
perform queries on that layout to get information about the subjects, sessions, runs, modalities, metadata... contained within that dataset (see
parse the layout of "BIDS-derivative compatible" datasets (like those generated by fMRIprep),
create BIDS compatible filenames or folder structures for raw or derivatives datasets (
do basic copying of files to help initialize a derivative dataset to start a new analysis (
generate a human readable report of the content of BIDS data set containing anatomical MRI, functional MRI, diffusion weighted imaging, field map data (see
read and write JSON files (see
bids.util.jsonwrite) provided that the right dependencies are installed,
read and write TSV files (see
access and query the BIDS schema (bids.schema)
The behavior of this toolbox assumes that it is interacting with a valid BIDS
dataset that should have been validated using
BIDS-validator. If the
Node.js version of the validator is
installed on your computer,
you can call it from the matlab prompt using
bids.validate. Just be aware that
any unvalidated components may produce undefined behavior. Although, if you're
BIDS-y enough, the behavior may be predictable.
What this toolbox cannot do... yet
- generate human readable reports of the content of BIDS data with EEG, MEG, iEEG, physio and events data,
- deal with some of the incoming BIDS extensions (BIDS model...)
What will this toolbox most likely never do
- act as a Matlab / Octave based BIDS-validator
- act as a BIDS converter
- implement reading / writing capabilities for the different modality-specific
data format that exist in BIDS (
BIDS matlab is structured as package, so you can easily access functions in subfolders
that start with
To use the
BIDS = bids.layout('/home/data/ds000117'); bids.query(BIDS, 'subjects')
To use the
content = bids.util.jsondecode('/home/data/some_json_file.json');
BIDS-MATLAB works with:
- Octave 5.2.0 or newer
- MATLAB R2014a or newer
We aim for compatibility with the latest stable release of Octave at any time. Compatibility can sometimes also be achieved with older versions of Octave but this is not guaranteed.
Reading and writing JSON files
If you are using MATLAB R2016b or newer, nothing else needs to be installed.
If you are using MATLAB R2016a or older, or using Octave, you need to install a supported JSON library for your MATLAB or Octave. This can be any of:
Other tools (MATLAB only)
- dicm2nii: A DICOM to BIDS converter
- imtool3D_BIDS: A 3D viewer for BIDS directory
- Brainstorm: Comprehensive brain analysis toolbox (includes BIDS import and export and different examples dealing with BIDS datasets (e.g. group analysis from a MEG visual dataset, resting state analysis from OMEGA datasets )
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!