Dataset contents

This page documents, source by source, what kind of data each dataset actually contains — anatomy, contrasts/modalities, sampling, coil configuration, field strength, the on-disk file format and array layout, and how many files of each kind the catalog exposes.

For the download/credential workflow and the reconstruction pipeline see Usage; for licensing see Licensing & legal.

Where the numbers come from

MRIDATA and OCMR_SOURCE are backed by a self-updating upstream index — the live catalog is larger than the committed offline fallback, and counts drift as the upstreams grow. The other five sources (CMRXRECON2024, CMRXRECON300, USC_SPEECH, M4RAW, FASTMRI) are backed by static committed offset maps (data/*_map.csv), so the file counts below are exact for the shipped package.

Every source is normalised to a RawAcquisitionData by load_raw. The temporal / parametric axis (cine frames, mapping weightings, …) is always mapped to ISMRMRD contrasts; the slice axis to ISMRMRD slices; repetition stays 0 unless noted.


MRIDATA — mridata.org

Anatomymostly 3-D Cartesian knee, plus brain/body volumes
Samplingfully sampled raw k-space
TrajectoryCartesian (3-D and 2-D)
VendorsGE / Siemens / Philips
Field strength1.5 T / 3 T
File formatISMRMRD .h5 — loads directly, no conversion
Accessdirect HTTP download (http://mridata.org/download/<uuid>), per-dataset terms

What a file contains. One complete raw acquisition in ISMRMRD form: the readout profiles plus the scanner's XML header (encoding/recon matrix, FOV, TE/TR, receiver channel count, …). The 3-D FSE knee volumes are the workhorse: a single fully-sampled Cartesian volume, typically 8–15 coils, tens of phase-encode partitions.

Metadata. The live scrape of mridata.org/list carries per-card fields — vendor, field strength, channel count (→ entry.receiver_channels), matrix size (→ entry.acquisition_dim), plus TE/TR, institution, protocol, download count under entry.extra. mridata.org's own anatomy labels go well beyond this package's curated DICOM Body Part Examined subset (hip, shoulder, spine, phantom scans, …); anything not recognised becomes entry.anatomy == :other. The committed data/mridata_index.toml is the offline fallback used only when the scrape fails entirely.

Any mridata UUID can also be passed to dataset directly — a minimal entry is synthesised from the UUID.


OCMR_SOURCE — Open Cardiac MRI k-space

Anatomyheart (entry.anatomy == :heart; real-time and breath-hold cine)
Samplingfully sampled (fs_* files) and pseudo-random undersampled (us_* files)
TrajectoryCartesian
VendorSiemens (MAGNETOM Free.Max 0.55 T, Avanto / Sola 1.5 T, Prisma / Vida 3 T)
Field strength0.55 T / 1.5 T / 3 T
File formatISMRMRD .h5 — loads directly
Accessdirect HTTP from OCMR's S3 bucket; citation of the OCMR paper required

What a file contains. One multi-coil cardiac cine acquisition. Coil counts are not in OCMR's metadata — they live only inside the ISMRMRD file — so entry.receiver_channels is nothing until the file is loaded.

Coded metadata. OCMR's attributes CSV uses short codes. The ones with a DICOM anchor are decoded onto core fields; the rest stay in entry.extra (DICOM-keyword named — see extra_schema(OCMR_SOURCE)):

Core field / extra keyValuesSource column
entry.fully_sampledtrue/falsesmp (fs/pse), plus the fs_/us_ filename prefix
entry.orientation:short_axis, :long_axisviw (sax/lax)
entry.partial_fouriertrue/falseech (asy=asymmetric/sym=symmetric)
entry.cohort:volunteer, :patientsub
entry.num_slicesslice countslices
entry.scanner_modele.g. Siemens MAGNETOM Prismascn
extra["sampling"]fully sampled, pseudo-random undersampledsmp
extra["slice_mode"]individual, multiple, stacksli
extra["partial_fourier_direction"]symmetric, asymmetricech
extra["acquisition_duration_class"]short, longdur
extra["phase_wrap"]no aliasing, with aliasingfov

Field strength and fully/under-sampled status are also encoded in the file name (fs_0001_1_5T.h5, us_0014_3T.h5) and used as a fallback.


CMRXRECON2024 — MICCAI 2024 cardiac reconstruction challenge

Anatomyheart (aorta_* series: aorta), multi-coil, Cartesian
Samplingfully sampled ground truth (the challenge's undersampling masks are applied by you, not shipped)
TrajectoryCartesian (the Uniform/ktGaussian/ktRadial labels are sampling masks, not trajectories)
Vendor / fieldSiemens, 3 T (measured per-subject value; nominal 3 T when absent)
Coils10 virtual channels (entry.receiver_channels, SVD-compressed by the organisers, entry.coil_data == :derived); physical element count 30–38 in entry.extra["multi_coil_elements"]
File formatMATLAB v7.3 .mat k-space → converted to cached Cartesian ISMRMRD on first load
AccessSynapse token + completed challenge registration; individual .mat files fetched by HTTP range from a ~1.2 TB split ZIP

Array layout. Each .mat holds one k-space array shaped (kx, ky, coils, slices, frames) — 4-D (kx, ky, coils, slices) when there is no temporal axis (BlackBlood). Variable name: kspace_full (FullSample) or kus (undersampled tasks). Access the raw arrays with MRITestData.load_mat.

Series. DICOM has no single "modality" attribute for this — see Taxonomy — so each series decomposes onto several core fields. The file name also encodes the series (e.g. cine_sax, t1map, aorta_tra):

SeriesFilescontrastorientationsequencequantitativecardiac_sync / other flags
Cinecine_sax, cine_lax, cine_lvot:mixed:short_axis/:long_axis/:lvot"balanced steady-state free precession" (TrueFISP)false:retrospective
MappingT1map, T2map:t1/:t2:short_axisMOLLI-FLASH / T2-prepared FLASH ¹true:none
Taggingtagging:tagging:short_axis"tagged cine (SPAMM)"false:retrospective
Aortaaorta_sag, aorta_tra:mixed:sagittal/:axial—false:none — anatomy == :aorta
Flow2dflow2d:flow_encoded——falsephase_contrast == true
BlackBloodblackblood:unknown ²:short_axis"turbo spin echo"falseblood_signal_nulling == true

¹ entry.sequence: "modified Look-Locker inversion recovery (fast low angle shot readout)" for T1map, "T2-prepared fast low angle shot" for T2map — confirmed against Wang et al. 2025 (see Taxonomy references): "the modified Look-Locker inversion recovery-fast low angle shot sequence was used for T1 mapping" / "the T2-prepared-fast low angle shot sequence was used for T2 mapping", both "with SAX view". T2 mapping is FLASH-based (spoiled gradient echo), not balanced SSFP.

² Sequence and view are confirmed the same way ("the turbo spin-echo sequence was used for black-blood under breath hold", "black-blood with SAX view"); the paper does not state a T1 vs T2 weighting for it (no TE/TR given), so contrast stays genuinely :unknown — that is a gap in the source, not an unverified guess.

Views. SAX (short-axis) — a stack of parallel slices across the left ventricle (base → apex on the slice axis). LAX (long-axis) — the slice axis instead holds the 2-chamber / 3-chamber / 4-chamber views. LVOT (left ventricular outflow tract, orientation == :lvot) is the third cine view.

File counts in the committed map (data/cmrxrecon2024_map.csv, all MultiCoil):

ModalityTrainingValidationTest
Cine566178203
Mapping386120137
Aorta3019096
Tagging1434946
Flow2d—5867
BlackBlood—5767

(Validation/Test acquisition parameters — FOV, TR/TE, flip angle, matrix — are not published upstream, so entry.extra["reconstruction_fov_mm"], ["acquisition_matrix"], ["repetition_time_ms"], ["echo_time_ms"] and ["flip_angle_deg"] are populated only for the Training subjects.)


CMRXRECON300 — revised CMRxRecon-2023 k-space

Anatomyheart, multi-coil, Cartesian, 300 healthy volunteers (entry.cohort == :volunteer)
Sampling_ks k-space is UNDERSAMPLED — regular k-t pattern, R≈3 (entry.acceleration == 3.0, entry.undersampling_pattern == :uniform) — paired with fully-sampled ACS _calib files (entry.has_acs == true)
TrajectoryCartesian
Vendor / fieldSiemens, 3 T
Coils30 physical channels retained (no SVD compression); entry.receiver_channels == 30
File formatMATLAB v7.3 .mat (variable Recon_ks for imaging, Calib for ACS) → converted to cached Cartesian ISMRMRD on first load
Accessfree Synapse account (no challenge registration); split .tar.gz archives, one continuous gzip stream, random-access via a committed zran checkpoint index

Reconstruction implication. load_raw reads the true acquired-line pattern from the zero-fill pattern of Recon_ks, so the resulting RawAcquisitionData is correctly marked undersampled. A plain inverse FFT aliases; an artifact-free image needs parallel imaging (ESPIRiT / CG-SENSE) using the paired ACS. The ACS lines are written into the same ISMRMRD file, flagged ACQ_IS_PARALLEL_CALIBRATION and centred in the phase-encode extent; the calib file's coordinates are in entry.locator["calib_path"] (a transport detail, not DICOM metadata — kept out of entry.extra).

Series — every subject has all four:

modality columncontrastorientationquantitativeContents
Cine SAX (cine_sax_ks + _calib):mixed:short_axisfalseshort-axis balanced-SSFP cine stack
Cine LAX (cine_lax_ks + _calib):mixed:long_axisfalselong-axis cine (2ch/3ch/4ch on the slice axis)
T1map (t1map_ks + _calib):t1:short_axistrueinversion-time series → per-pixel T1
T2map (t2map_ks + _calib):t2:short_axistrueT2-prep echo-time series → per-pixel T2

Sets (committed member maps data/cmrxrecon300_<set>_map.csv; each catalog entry pairs one _ks file with its _calib file). Counts below are entries (i.e. subject × modality):

SetSubjectsCine SAXCine LAXT1mapT2map
Training120119120120120
Validation6060606060
Test1209083119119
Demo11111

(A few Test subjects are missing a modality, hence the uneven counts.)

CMRxRecon-300 has no upstream index: its catalog is built from the committed per-set member maps, so refresh_index has nothing to fetch and simply reports them.


USC_SPEECH — USC SPAN 75-speaker real-time speech rtMRI

Anatomypharynx/larynx (entry.anatomy == :pharynx_larynx, "vocal tract"), sagittal (entry.orientation == :sagittal), real-time speech production
Samplingnon-Cartesian; the raw file holds all 13 spiral interleaves, which together fulfil the Nyquist rate (Lim et al. 2021) — entry.fully_sampled == true
Trajectoryspiral — 13-interleaf spiral-out spoiled GRE (entry.trajectory == :spiral)
Vendor / fieldGE Signa Excite, 1.5 T, custom 8-channel upper-airway array (entry.receiver_channels == 8)
File formatMRD / ISMRMRD .h5 already — loads directly, no conversion. Stores spiral k-space samples plus the k-space trajectory and density-compensation tables
Accessfigshare dataset.zip (~570 GB, CC-BY, no account); one .h5 member pulled by ZIP range request

Reconstruction implication. Because the trajectory is non-Cartesian, the loaded RawAcquisitionData's params["trajectory"] is not "cartesian". Build a non-Cartesian AcquisitionData (with the trajectory + density compensation) — an inverse FFT is not applicable.

What is cataloged. Only the 2drt (2-D real-time) sagittal pharynx/larynx raw k-space. Each entry is one subject × stimulus × repetition (entry.subject_id, entry.repetition); ids look like sub001/2drt/01_vcv1_r1. Committed map: data/usc_speech_map.csv, 75 subjects, 2371 files.

Stimuli (entry.extra["protocol_name"]) — 21 per subject:

StimulusContent
01_vcv1–03_vcv3vowel–consonant–vowel sequences
04_bvt/bVt/ token set
05_shibbolethshibboleth sentences
06_rainbow"Rainbow" passage
07_grandfather1/2"Grandfather" passage
09_northwind1/2"North Wind and the Sun" passage
11_posturesheld articulatory postures
12_picture1–16_picture5picture-description spontaneous speech
17_topic1–21_topic5free spontaneous speech by topic

M4RAW — low-field brain, multi-contrast, multi-repetition

Anatomybrain
Samplingfully-sampled Cartesian (one repetition per file) → plain inverse FFT reconstructs it, no parallel imaging needed
TrajectoryCartesian
Vendor / field"Oper-0.3" (Ningbo Xingaoyi), 0.3 T whole-body scanner, 4-channel head coil, 183 volunteers
File formatfastMRI HDF5 layout (kspace / reconstruction_rss / ismrmrd_header) → converted to cached Cartesian ISMRMRD on first load
AccessZenodo ZIPs (CC-BY, no account); one .h5 member pulled by ZIP range request

Array layout. kspace on disk is (slices, coils, freq, phase); HDF5.jl reads it reversed and the loader permutes to canonical (kx, ky, coils, slices, 1). reconstruction_rss is the per-repetition RSS magnitude ground truth (not used by the converter). Multi-repetition data is the point of M4Raw: averaging or learning across repetitions to overcome the low SNR of 0.3 T.

Contrasts (entry.contrast/entry.sequence, with entry.repetition 1, 2, …) and file counts in the committed map (data/m4raw_map.csv, 2030 files):

ContrastFilesentry.contrastentry.sequence
T1w (TSE)624:t1"turbo spin echo"
T2w (TSE)624:t2"turbo spin echo"
FLAIR416:fluid_attenuated"turbo spin echo (inversion-recovery prepared)"
T1 GRE ¹366:t1"spoiled gradient echo"; separate archive (M4RawV1.5_gre_data.zip)

¹ GRE was added in the M4RawV1.5 release, after the original Scientific Data paper (which describes only T1w/T2w TSE and FLAIR); its T1-weighting is confirmed by the M4RawV1.5 release notes and dataset card ("T1w Gradient echo (GRE) data") on github.com/mylyu/M4Raw and Zenodo record 8056074.

Sets (entry.split): :train (1024), :val (240), :test (400); the GRE archive carries no train/val/test split (entry.split === nothing). All splits are fully sampled.


FASTMRI — NYU / FAIR fastMRI

Anatomyknee, brain, prostate, breast
File formatfastMRI HDF5 layout (kspace / optional mask / ismrmrd_header) → converted to cached ISMRMRD on first load (same converter as M4Raw)
Accessform-gated — request at fastmri.med.nyu.edu; the email carries 90-day pre-signed AWS S3 URLs. Register them with set_fastmri_urls!
Archivesknee & brain: .tar.xz (xz block-level range extraction); prostate & breast: .tar.gz (zran checkpoint index in data/fastmri_zran/)

Individual scans are extracted from the archives without downloading them whole. Until the maintainer populates data/fastmri_map.csv, list_datasets(FASTMRI) is empty — see fastMRI: form-gated credentials.

Array layout. kspace on disk is (slices, coils, kx, ky) (multicoil) or (slices, kx, ky) (knee singlecoil); prostate is 5-D (slices, coils, kx, ky, averages) and the averages (interleaved shots) are summed. A 1-D mask (0/1 over ky) is present for test-split data (prospectively undersampled for the challenge) and absent for fully-sampled train/val data; when absent, acquired lines are detected from non-zero k-space energy.

Per-anatomy contents (committed map data/fastmri_map.csv)

The map's series_variant column is the archive filename's middle token — never a coil count: singlecoil/multicoil for knee/brain (→ entry.coil_data), or the sequence type T2/DIFF for prostate (→ entry.contrast/entry.sequence).

AnatomyCoil formatTrajectoryFieldFully sampledNotes
kneesinglecoil and multicoil; entry.receiver_channels unset (varies per file), entry.coil_data == :derived for the emulated singlecoil filesCartesian3 T nominal (exact value in ISMRMRD header)train/val yes, test maskedentry.contrast == :proton_density, entry.orientation == :coronal, entry.sequence == "fast spin echo", entry.vendor == :siemens
brainmulticoilCartesianheadertrain/val yes, test maskedentry.orientation == :axial; entry.contrast from the file name (AXT1/AXT1PRE → :t1 contrast_agent=false, AXT1POST → :t1 contrast_agent=true, AXT2 → :t2, AXFLAIR → :fluid_attenuated)
prostatemulticoilCartesian3 Tno (highly accelerated / aliased; entry.fully_sampled == false regardless of split)entry.contrast/entry.sequence: T2 → :t2/"turbo spin echo", DIFF → :diffusion/"echo-planar imaging"
breastmulticoil, entry.receiver_channels == 16golden-angle radial (entry.trajectory == :goldenangle, entry.acceleration ≈ 2.8)3 T, entry.scanner_model == "Siemens MAGNETOM TimTrio"noentry.acquisition_dim == 3; stored (slices, coils, kx, ky, 2) real/imag Float64; large (~4.5 GB per file); entry.sequence == "radial VIBE (stack-of-stars)", entry.partial_fourier == true

Test-split sampling (bug fix). Knee and brain test-split files are prospectively undersampled for the challenge (they ship a mask); only train/val is genuinely fully sampled. entry.fully_sampled reflects this per-file (split !== :test), not just per-anatomy — a change from the pre-refactor catalog, which incorrectly marked every knee/brain test entry as fully sampled regardless of split.

File counts:

Anatomy · coils · splitFiles
knee · singlecoil · train / val / test973 / 199 / 108
knee · multicoil · train / val / test973 / 199 / 118
brain · multicoil · train / val / test4469 / 1378 / 1116
prostate · T2 · train126
prostate · DIFF · train60
breast · multicoil · train100

(fastMRI ships only train/val publicly for prostate and breast; the brain/knee test splits are prospectively undersampled, and brain additionally ships *_test_full fully-sampled archives.)


Quick cross-source summary

SourceAnatomySamplingTrajectoryField (T)Native formatRecon
MRIDATAknee / brain (3-D)fullCartesian1.5 / 3ISMRMRDdirect FFT
OCMR_SOURCEheart, cinefull + undersampledCartesian0.55 / 1.5 / 3ISMRMRDdirect (fs) / PI (us)
CMRXRECON2024heart / aorta (6 series)fullCartesian3.mat → ISMRMRDdirect FFT
CMRXRECON300heart (cine + T1/T2 map)undersampled + ACSCartesian3.mat → ISMRMRDparallel imaging
USC_SPEECHpharynx/larynx (rt speech)non-Cartesian, fully sampledspiral1.5MRD/ISMRMRDnon-Cartesian
M4RAWbrain (multi-contrast/rep)fullCartesian0.3fastMRI .h5 → ISMRMRDdirect FFT
FASTMRIknee / brain / prostate / breastfull for train/val; test/prostate/breast: noCartesian (breast: golden-angle radial)1.5 / 3fastMRI .h5 → ISMRMRDdirect FFT / PI