PyBIDS

0.22.0 · active · verified Fri Apr 17

PyBIDS is a Python library that provides an interface for interacting with datasets organized according to the Brain Imaging Data Structure (BIDS) specification. It allows users to query, manage, and extract information from BIDS datasets, supporting local and cloud-based paths. The current version is 0.22.0, and the library maintains an active release cadence with minor feature releases every few months and frequent bug-fix updates.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to initialize a `BIDSLayout` for a BIDS-compliant dataset and query for specific files using entity key-value pairs. It includes creating a minimal dummy BIDS structure to make the example runnable without an existing dataset.

import os
from bids import BIDSLayout

# Create a dummy BIDS directory for demonstration
dummy_bids_dir = 'my_bids_dataset'
os.makedirs(os.path.join(dummy_bids_dir, 'sub-01', 'ses-01', 'anat'), exist_ok=True)
with open(os.path.join(dummy_bids_dir, 'dataset_description.json'), 'w') as f:
    f.write('{"Name": "My Dummy Dataset", "BIDSVersion": "1.4.0"}')
with open(os.path.join(dummy_bids_dir, 'sub-01', 'ses-01', 'anat', 'sub-01_ses-01_T1w.nii.gz'), 'w') as f:
    f.write('dummy data')

# Initialize the BIDSLayout
layout = BIDSLayout(dummy_bids_dir, validate=False)

# Query for files
t1w_files = layout.get(subject='01', suffix='T1w', extension='.nii.gz')

print(f"Found {len(t1w_files)} T1w files for subject 01:")
for f in t1w_files:
    print(f.path)

# Clean up dummy directory (optional)
# import shutil
# shutil.rmtree(dummy_bids_dir)

view raw JSON →