ULF-Synth: Physics-Guided Ultra-Low-Field MRI Enhancement for Pediatric Neuroimaging
Abstract
Ultra-low-field (ULF) MRI enables portable and accessible neuroimaging, but suffers from low signal-to-noise ratio and limited spatial resolution relative to high-field (HF) systems. Acquiring paired ULF–HF data for supervised enhancement is often infeasible, particularly in resource-limited settings. We introduce ULF-Synth, a framework combining: (i) acquisition-based synthesis of realistic ULF images from HF volumes for large-scale paired training, and (ii) a spatial-frequency domain objective that prioritizes recovery of high-frequency anatomical detail. The formulation is architecture-agnostic, consistently improving structural similarity and perceptual fidelity across encoder-decoder, adversarial, and diffusion-based translation models. Trained exclusively on synthetic data, our models generalize to real 64 mT ULF acquisitions, improving multiclass brain segmentation and achieving higher radiologist preference and diagnostic acceptability in a blinded reader study.
Simulation Pipeline
The ULF synthesis module models the key physical phenomena distinguishing ULF from HF acquisitions:
| Effect | Implementation | |
|---|---|---|
| 1 | Signal scaling | $(B_{{ULF}}/B_{{HF}})^2$ polarization ratio |
| 2 | T2* decay & B0 inhomogeneity | Spatially-varying exponential decay from random B0 field maps |
| 3 | Thermal noise | Gaussian noise scaled to SNR 15–50 |
| 4 | k-space cropping | Reduced resolution (45–55%) |
| 5 | k-space undersampling | Accelerated acquisition (2×–3×) with center-out sampling |
| 6 | B0 off-resonance distortion | Phase distortion from random B0 field maps |
Qualitative Results
Installation
git clone https://github.com/toufiqmusah/ULF-Synth.git
cd ULF-Synth
pip install -e .
This installs ulfsynth and all core dependencies (including PyTorch).
The bundled nnUNet translation fork is automatically
discovered and installed during setup — no extra steps needed.
Install from PyPI (future)
pip install ulfsynth # simulation only
pip install ulfsynth[full] # with enhancement support
CLI
The ulfsynth package provides three commands:
ulfsynth simulate — ULF synthesis from HF volumes
# Single volume
ulfsynth simulate input.nii.gz output.nii.gz
# Folder of NIfTI files
ulfsynth simulate /path/to/hf/scans/ /path/to/ulf/scans/
# Reproducible seed
ulfsynth simulate input.nii.gz output.nii.gz --seed 42
ulfsynth enhance — ULF→HF restoration (requires nnUNet)
# Single volume (CPU)
ulfsynth enhance --device cpu input.nii.gz output.nii.gz
# Folder of NIfTI files (GPU)
ulfsynth enhance /path/to/ulf/scans/ /path/to/enhanced/scans/
# Weights are downloaded from HuggingFace on first use.
# Pre-download: ulfsynth download-weights
ulfsynth download-weights — cache pretrained weights
ulfsynth download-weights
Caches model weights from HuggingFace to ~/.cache/ulfsynth/.
Python API
Simulation
from ulfsynth.simulate import simulate_ulf, simulate_file, simulate_folder, sample_params
# Generate one ULF volume with random parameters
ulf_volume, affine, header, params = simulate_ulf("hf_input.nii.gz")
# With a fixed seed
ulf_volume, affine, header, params = simulate_ulf("hf_input.nii.gz", seed=42)
# Custom parameters
params = sample_params()
params["signal_target"] = 30
ulf_volume, affine, header, params = simulate_ulf("hf_input.nii.gz", params=params)
# Single-file convenience (returns params dict)
params = simulate_file("hf_input.nii.gz", "ulf_output.nii.gz", seed=42)
# Batch folder processing (returns list of params)
results = simulate_folder("hf_scans/", "ulf_scans/", seed=42)
Output preserves the input affine and header metadata.
Enhancement
from ulfsynth.enhance import enhance_file, enhance_folder
# Single file
enhance_file("ulf_input.nii.gz", "enhanced_output.nii.gz", device="cpu")
# Batch folder processing
enhance_folder("ulf_scans/", "enhanced_scans/", device="cuda")
Requires nnUNet (pip install -e src/nn-translation/). Weights are auto-downloaded on first call.
Roadmap
- Physics-guided ULF synthesis pipeline
- Pre-trained enhancement weights — ULF→HF restoration models
- Python package —
pip install ulfsynth - Docker image — zero-config containerized pipeline
Citation
@misc{musah2026ulfsynth,
title = {ULF-Synth: Physics-Guided Ultra-Low-Field MRI Enhancement for Pediatric Neuroimaging},
author = {Toufiq Musah and Salvatore Calcagno and Federica Proietto Salanitri and Xiaomeng Li and Maruf Adewole and Marawan Elbatel},
year = {2026},
eprint = {2605.24625},
archivePrefix = {arXiv},
url = {https://arxiv.org/abs/2605.24625}
}
License
Release files for ulfsynth 0.1.11
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ulfsynth-0.1.11.tar.gz | 22.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ulfsynth-0.1.11-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.6 MB
Release files / ulfsynth-0.1.11.tar.gz
| Download URL | ulfsynth-0.1.11.tar.gz |
|---|---|
| Size | 22.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
218753b22257f704913647d88cdd709e265ba1089538e97b5f07ff3c801d6195
|
|
BLAKE2b-256 checksum How to use checksums |
323fce97f90a58021315d4cd9c29f032a11e2bd9e411f7d78f176241a25d25b0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Release files / ulfsynth-0.1.11-py3-none-any.whl
| Download URL | ulfsynth-0.1.11-py3-none-any.whl |
|---|---|
| Size | 1.4 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ac24d5cd6d9b33be4aea5ac7cd5d91cb0c128b01a46bcfca5385337ae032454b
|
|
BLAKE2b-256 checksum How to use checksums |
5557aaf4d7d77864875f76a29016d0c523ce7a8f9d4d5918dc65f40c203435b3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|