MOTION-BIDS

Extending the Brain Imaging Data Structure specification to organize motion data for reproducible research

Sein Jeung
Helena Cockx
Stefan Appelhoff
Timotheus Berg
Klaus Gramann
Sören Grothkopp
Elke Warmerdam
Clint Hansen
Robert Oostenveld
BIDS Maintainers
Julius Welzel

Motivation

  • Thousands subjects are recorded for research purposes each year
  • Lack of consensus leads to misunderstanding and time wasted on rearranging data or rewriting scripts that expect particular file formats and organization

Create a standard for organizing motion data building on BIDS

Easy to follow guidelines for researchers to share motion data (including conversion tools in FieldTrip, MNE, EEGLAB)

Reuse and validate pipelines on existing data (e.g. OpenNeuro)

What is BIDS?

BIDS is based on simple file formats and folder structures

DATA STRUCTURE

  • File formats to use (e.g. nifti, json, tsv) → [BIDS is NOT a file format]
  • Naming convention for files and directories

METADATA

  • Prevents metadata getting lost while doing research
  • Stored in json files, readable by both humans and machines
  • Some metadata is better than no metadata

BIDS Brain Imaging Data Structure: What’s in it for the PIs

BIDS comes with …

  • an easy option for reanalysis of data after members have left the lab
  • smoother data sharing with collaborators
  • less work to organise datasets to use data with popular toolboxes (EEGLab, FieldTrip, MNE)

Help you team get there by …

  • introducing ‘BIDS Bucks’ for promoting BIDS adoption (coffee, chocolate, …)
  • assign a team member to be the Capt’n BIDS
  • organise a BIDS workshop for your team
  • appreciate effort of members to adopt BIDS

Common principles

Level of requirement for files and within files:

  • REQUIRED
  • RECOMMENDED
  • OPTIONAL

Example: participant files

Example dir structure

├─ README.tsv
├─ dataset_description.json
├─ participants.json
├─ participants.tsv
├─ sub-001
├─ sub-002

participants.json

{
"age": {
      "Description": "age of the participant",
      "Units": "years"
      },
"sex": {
    "Description": "sex as reported by the participant",
    "Levels": {
      "M": "male",
      "F": "female"  },
    },
}

participants.tsv

participant_id    age     sex
sub-001           34      M
sub-002           12      F

Where do we want to go


Where do we want to go

EXAMPLE

├─ README.md
├─ dataset_description.json
├─ participants.json
├─ participants.tsv
├─ sub-001
| ├─ses-01
| |  ├─eeg/
| |  └─motion/
| ├─ ses-02
| └─ sub-001_scans.tsv
├─ sub-002
└─ sub-003

MOTION SPECIFIC DATA

Raw data

Example motion data files

├─README.md
└─sub-001/ses-01/
├─eeg/
...
└─motion/
    ├─sub-001_task-<label>_tracksys-<label>_motion.tsv
    ├─sub-001_task-<label>_tracksys-<label>_motion.json
    ├─sub-001_task-<label>_tracksys-<label>_channels.tsv
    ├─sub-001_task-<label>_tracksys-<label>_channels.json
    ├─sub-001_task-<label>_events.tsv
    └─sub-001_task-<label>_events.json

*_motion.tsv

  • Currently only .tsv files
  • One channel per column
  • Match by order to channels.tsv file
acc_x acc_y acc_z gyro_x gyro_y gyro_z
0.263 0.092 0.008 0.931 0.690 0.810
0.695 0.192 0.844 0.398 0.885 0.895
0.077 0.259 0.548 0.282 0.279 0.233
0.558 0.096 0.803 0.750 0.847 0.239
0.199 0.184 0.657 0.892 0.364 0.060
0.966 0.727 0.521 0.759 0.352 0.813

Metadata

Example motion data files

├─README.md
└─sub-001/ses-01/
├─eeg/
...
└─motion/
    ├─sub-001_task-<label>_tracksys-<label>_motion.tsv
    ├─sub-001_task-<label>_tracksys-<label>_motion.json
    ├─sub-001_task-<label>_tracksys-<label>_channels.tsv
    ├─sub-001_task-<label>_tracksys-<label>_channels.json
    ├─sub-001_task-<label>_events.tsv
    └─sub-001_task-<label>_events.json

*_motion.json

REQUIRED:

  • TaskName, SamplingFrequency

RECOMMENDED:

  • TaskDescription, MotionChannelCount, SoftwareFilters

OPTIONAL:

  • Manufacturer, RecordingSoftware, …
{
TaskName: SpotRotation,
TaskDescription: Spinning around,
MissingValues: 0,
MotionChannelCount: 6,
Manufacturer: HasoMed,
TrackedPointsCount: 1,
SamplingFrequency: 120,
ACCChannelCount: 3,
GYROChannelCount: 3,
}

*_channels.tsv

REQUIRED

  • name, component, type, tracked_point, units

RECOMMENDED

  • Placement

OPTIONAL

  • Description, sampling frequency

EXAMPLE:

name    type    units   srate   tracked_point       component     placement
acc_x   ACCEL   m/s^2   222     lf                  x             left_foot
acc_y   ACCEL   m/s^2   222     lf                  y             left_foot
acc_z   ACCEL   m/s^2   222     lf                  z             left_foot
gyro_x  GYRO    rad/s   222     lf                  x             left_foot
gyro_y  GYRO    rad/s   222     lf                  y             left_foot
gyro_z  GYRO    rad/s   222     lf                  z             left_foot

Summary motion data

Thank you for listening carefully

Thanks to Sein Jeung for pushing this to completion over the past three years

Thanks to all of the BIDS Maintainers and Devs who help to implement this

Thanks to my working group, who have given me the freedom to work in this

Thanks to all of our (BIDS)-companions and all participants who ever provided data which is now in BIDS

Definitions

  • Dataset - A dataset consists of data acquired from one or more subjects, possibly from multiple sessions.
  • Subject - a single participant in a study. A subject can be scanned multiple times, in which case each scan is a separate session.
  • Session - a logical grouping of neuroimaging and behavioral data consistent across subjects. Session can (but doesn’t have to) be synonymous to a visit in a longitudinal study.
  • Task - a set of structured activities performed by the participant. Tasks are usually accompanied by stimuli and responses, and can greatly vary in complexity.
  • Data type - a functional group of different types of data. Some BIDS defined data types are:
    • anat (structural imaging such as T1, T2 and so on)
    • eeg (electroencephalography)
    • motion (time series of object positions, orientations, or their time derivatives)