Release 1.3.1 (Orion) BIDS v1.9.0 Ready Multiplatform

Convert Raw DICOM Datasets to BIDS Standard in Seconds

BIDS'em ALL is a high-performance Java application that reorganizes and converts complex clinical or research DICOM archives into standardized, analysis-ready BIDS datasets. Features multithreaded I/O, parallel dcm2niix conversion, physical MR tag prediction, and a headless CLI.

Performance Boost
  • ⚡ Parallel execution: 2.5x to 5x faster on network drives (SMB / NAS).
  • 🧠 Auto-Suggestion: Physical MR tags pre-select modalities.
  • 📂 Incremental summary: Cohort header parsing in 11 ms.
  • 🛡️ Zero validator errors: Native BIDS v1.9.0 & fMRIPrep / QSIprep ready.

Key Features

High-Speed Multithreading

Multi-threaded file scanning, parallel directory mapping, and concurrent dcm2niix conversion. Highly optimized to eliminate latency bottlenecks over SMB network shares (e.g. hospital NAS).

Smart MR Modality Suggestion

Analyzes DICOM physical acquisition parameters (TE, TR, TI, flip angle, sequence name) to automatically pre-select T1w, T2w, T2starw, FLAIR, dwi, or bold.

Headless CLI & Scripting

Run seamlessly inside batch pipelines, Python scripts, or SLURM cluster jobs with full CLI flag support (--dicom, --bids, --threads, --gz) without spawning GUI windows.

BIDS v1.9.0 Compliant

Generates dual-root descriptors, comprehensive .bidsignore, sorted _scans.tsv with ISO 8601 acquisition timestamps, demographic participants.tsv, and automatic participants.json.

Fieldmap Auto-Link (IntendedFor)

Automatically links distortion correction fieldmaps (fmap/) to all functional (bold) and diffusion (dwi) scans in the same session, enabling out-of-the-box support for fMRIPrep and QSIprep.

Native Compression (.nii.gz)

Generates standard uncompressed .nii by default for speed, or native compressed .nii.gz (5x smaller storage) on demand via the GUI options or --gz CLI switch.

Visual Interface

BIDS'em ALL Main Window
Main Window: Select input DICOM directory, output BIDS path, and monitor real-time multi-step progress.
BIDS'em ALL Serie Configuration
Interactive Modality Prompt: Smart auto-suggestion pre-selects the predicted BIDS tag with key MR parameters.

The 6-Step Automated Workflow

BIDS'em ALL follows a robust 6-step architecture designed to guarantee 100% data traceability and reproducibility:

1
DICOM Inventory & Session Grouping

Multithreaded recursive DICOM scan. Automatically detects timestamps and groups exams acquired within a configurable time window (default 2h) into standardized longitudinal sessions (ses-YYYYMMDDHH).

2
Patient De-identification & Mapping

Discovers unique patients, formats clean alphanumeric subject IDs (sub-XXX), and maintains an audit mapping table in codes/corresp.tsv to preserve privacy.

3
Smart Modality & Metadata Setup

For new acquisition series, the heuristic engine proposes the most probable BIDS datatype tag. The user validates or adjusts optional/mandatory BIDS entities (task, acq, ce, dir, run).

4
Persistent Rule Learning (DIC.yml)

All user-confirmed associations are saved to a persistent dictionary (DIC.yml). When converting new subjects with the same sequence protocol, conversion runs completely unattended.

5
Pseudo-BIDS Sourcedata Organization

Raw DICOM files are organized into sourcedata/sub-XXX/ses-YYY/<series_key>/ using high-speed parallel copy streams, maintaining a pristine archive of original DICOMs.

6
Parallel dcm2niix & BIDS Finalization

Concurrent conversion to NIfTI with dcm2niix, file renaming to canonical BIDS filenames in rawdata/, injection of sidecar JSON metadata, fieldmap IntendedFor linking, and incremental cohort summarization.

Graphical User Interface (GUI) Guide

  1. Launch the Application: Double-click bidsemall.jar or run:
    java -jar bidsemall.jar
  2. Select Input & Output Directories:
    • Click "Input DICOM directory": Choose the root folder containing your raw DICOM files (subfolders and arbitrary directory structures are supported).
    • Click "Output BIDS directory": Choose the destination folder where the BIDS structure will be created.
  3. Configure Options (Optional):
    • Clean previously converted data: Checked by default; ensures previously generated .nii / .nii.gz in sourcedata are cleaned before re-conversion.
    • Compress to .nii.gz: Activate in user settings if you want 5x smaller compressed output.
    • Local vs Global Dictionary: Choose whether to store protocol mappings globally in the app folder or locally in the project's codes/ folder.
  4. Click "Convert": Sit back and watch the real-time progress bar. If an unrecognized sequence is encountered, BIDS'em ALL presents a prompt dialog with the automatically suggested BIDS tag pre-selected. Simply press Enter to confirm.

Command-Line Interface (CLI) & HPC Automation

BIDS'em ALL can run in headless mode (without graphical display) directly from terminals, Python wrapper scripts, or cluster schedulers (SLURM, SGE, Docker, Singularity).

1. Named Arguments Syntax (Recommended)
# Run standard conversion with 4 parallel threads
java -cp "bidsemall.jar;lib/*;libs/*" com.bidsemall.Main \
    --dicom "/data/raw_dicoms/subject_01" \
    --bids "/data/bids_dataset" \
    --threads 4

# Run with compressed .nii.gz output
java -cp "bidsemall.jar;lib/*;libs/*" com.bidsemall.Main \
    --dicom "/data/raw_dicoms/subject_01" \
    --bids "/data/bids_dataset" \
    --threads 4 \
    --gz

# Explicit series UID mapping (automated headless conversion)
java -cp "bidsemall.jar;lib/*;libs/*" com.bidsemall.Main \
    --dicom "/data/raw_dicoms/subject_01" \
    --bids "/data/bids_dataset" \
    --t1w "1.2.840.113711.999999.31915.1778078418.6" \
    --flair "1.2.840.113711.999999.31915.1778078418.5"
2. Positional Syntax (Legacy Compatibility)
# Syntax: <dicom_dir> <bids_dir> <use_local_dic:0|1> <t1_uid> <flair_uid> <use_patient_id:0|1>
java -jar bidsemall.jar "/data/raw_dicoms/subject_01" "/data/bids_dataset" 1 "1.2.840...t1" "1.2.840...flair" 1
3. Available CLI Options
Option Type Description
--dicom <path> Directory Path Path to the raw DICOM input folder.
--bids <path> Directory Path Path to the output BIDS project folder.
--threads <N> Integer Number of worker threads for parallel I/O and dcm2niix (default: CPU cores).
--gz / --compress Flag Produce compressed .nii.gz files instead of .nii.
--t1w <UID> String Series Instance UID for the T1w sequence (automates headless execution).
--flair <UID> String Series Instance UID for the FLAIR sequence.
--local-dic <0|1> Boolean Store protocol dictionary in project codes/ (1) or app root (0).
--help / -h Flag Display CLI help and usage manual.

BIDS v1.9.0 Specification & Dataset Structure

BIDS'em ALL organizes output datasets in strict compliance with the modern Brain Imaging Data Structure standard:

BIDS_dataset/
├── dataset_description.json      # Dataset metadata (BIDSVersion 1.9.0)
├── README                        # Human-readable study description
├── .bidsignore                   # Configured ignore rules for codes/ and native vendor maps
├── participants.tsv              # Demographics table with participant_id, age, sex
├── participants.json             # BIDS data dictionary defining demographic fields
├── codes/                        # De-identification mapping table (corresp.tsv) & DIC.yml
├── sourcedata/                   # Original DICOMs sorted by sub-XXX/ses-YYY/<series>
├── derivatives/
│   └── data_summarize/           # Cohort summary table (dimensions, voxel size, TR, TE)
└── rawdata/                      # Canonical BIDS NIfTI dataset
    ├── dataset_description.json
    ├── participants.tsv
    └── sub-01/
        └── ses-2023083112/
            ├── sub-01_ses-2023083112_scans.tsv   # Includes filename & ISO 8601 acq_time
            ├── anat/
            │   ├── sub-01_ses-2023083112_acq-FLAIR_FLAIR.nii
            │   ├── sub-01_ses-2023083112_acq-FLAIR_FLAIR.json
            │   └── sub-01_ses-2023083112_acq-T1w_T1w.nii
            ├── dwi/
            │   ├── sub-01_ses-2023083112_dwi.nii
            │   ├── sub-01_ses-2023083112_dwi.bval
            │   └── sub-01_ses-2023083112_dwi.bvec
            ├── func/
            │   ├── sub-01_ses-2023083112_task-rest_bold.nii
            │   └── sub-01_ses-2023083112_task-rest_bold.json
            └── fmap/
                ├── sub-01_ses-2023083112_dir-AP_epi.nii
                └── sub-01_ses-2023083112_dir-AP_epi.json  # Auto-injected IntendedFor
bids-validator
Passes with 0 errors on official BIDS validators both at root and rawdata levels.
fMRIPrep Ready
Fieldmaps automatically contain "IntendedFor" pointing to BOLD sequences for susceptibility distortion correction (SDC).
QSIprep Ready
Diffusion datasets include paired .bval, .bvec, and reverse-phase fieldmaps ready for TOPUP/EDDY pipelines.

Download BIDS'em ALL

Complete standalone package with cross-platform dcm2niix binaries included.

Requires Java Runtime Environment (Java 8 or higher; Java 11, 17, or 21 recommended). No installation required: simply unzip and run.

Frequently Asked Questions (FAQ)

Yes! BIDS'em ALL is written in Java and includes pre-packaged native dcm2niix executables for Windows (x64), macOS (Intel & Apple Silicon), and Linux (x64). You simply launch bidsemall.jar on any operating system.

Yes! Version 1.3+ includes dedicated network optimizations: parallel directory creation, multi-threaded copy channels, single-pass buffered DICOM scanning (eliminating thousands of redundant SMB stat/open requests), and incremental cohort summarization (executes in 11 ms instead of minutes).

All learned sequence associations are saved in DIC.yml (located in the project's codes/ folder if using local dictionary, or in the application directory if using global dictionary). You can inspect or edit this human-readable YAML file in any text editor, or delete specific entries to re-trigger the configuration prompt.

Yes. If your DICOMs are already sorted in BIDS_dir/sourcedata, leave the "Input DICOM directory" empty, select only the "Output BIDS directory", and click Convert. BIDS'em ALL will ask if you want to convert from existing sourcedata, allowing you to re-generate NIfTI files or change compression settings instantly.

The prediction engine analyzes physical MR parameters (Echo Time $TE$, Repetition Time $TR$, Inversion Time $TI$, Flip Angle, Pulse Sequence) alongside sequence naming tokens:
  • FLAIR: Long Inversion Recovery ($TI \ge 1500\text{ ms}$, $TE \ge 50\text{ ms}$) or explicit text tokens.
  • T1w: 3D MPRAGE / IR-SPGR ($TI \approx 350\text{--}1400\text{ ms}$, $TE \le 20\text{ ms}$) or short spin-echo ($TR \le 850\text{ ms}$, $TE \le 25\text{ ms}$).
  • T2w: Long spin-echo ($TE \ge 60\text{ ms}$, $TR \ge 1800\text{ ms}$, no long $TI$).
  • T2starw / SWI: Gradient echo ($TE \ge 15\text{ ms}$, small flip angle $\le 35^\circ$).
  • DWI: Diffusion-weighted image type tags and EPI sequence identifiers.
  • BOLD: 2D EPI gradient-echo with functional repetition times.

On GE systems, CUBE designates 3D Fast Spin Echo with 1 mm isotropic (cubic) resolution, which can be acquired as CUBE T1, CUBE T2, or CUBE FLAIR. Similarly, Siemens SPACE and Philips VISTA exist in T1, T2, and FLAIR variants. BIDS'em ALL combines sequence names with physical acquisition parameters ($TE$, $TR$, $TI$) to eliminate false positives.