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.
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).
Analyzes DICOM physical acquisition parameters (TE, TR, TI, flip angle, sequence name) to automatically pre-select T1w, T2w, T2starw, FLAIR, dwi, or bold.
Run seamlessly inside batch pipelines, Python scripts, or SLURM cluster jobs with full CLI flag support (--dicom, --bids, --threads, --gz) without spawning GUI windows.
Generates dual-root descriptors, comprehensive .bidsignore, sorted _scans.tsv with ISO 8601 acquisition timestamps, demographic participants.tsv, and automatic participants.json.
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.
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.
BIDS'em ALL follows a robust 6-step architecture designed to guarantee 100% data traceability and reproducibility:
Multithreaded recursive DICOM scan. Automatically detects timestamps and groups exams acquired within a configurable time window (default 2h) into standardized longitudinal sessions (ses-YYYYMMDDHH).
Discovers unique patients, formats clean alphanumeric subject IDs (sub-XXX), and maintains an audit mapping table in codes/corresp.tsv to preserve privacy.
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).
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.
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.
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.
bidsemall.jar or run:
java -jar bidsemall.jar.nii / .nii.gz in sourcedata are cleaned before re-conversion.codes/ folder.BIDS'em ALL can run in headless mode (without graphical display) directly from terminals, Python wrapper scripts, or cluster schedulers (SLURM, SGE, Docker, Singularity).
# 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"
# 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
| 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'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
"IntendedFor" pointing to BOLD sequences for susceptibility distortion correction (SDC).
.bval, .bvec, and reverse-phase fieldmaps ready for TOPUP/EDDY pipelines.
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.
dcm2niix executables for Windows (x64), macOS (Intel & Apple Silicon), and Linux (x64). You simply launch bidsemall.jar on any operating system.
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.
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.