Skip to main content

ULF-Synth

ULF-Synth: Physics-Guided Ultra-Low-Field MRI Enhancement for Pediatric Neuroimaging

arXiv License: MIT Python

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

Sample 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

MIT

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)

Source distribution for ulfsynth 0.1.11
File Size Uploaded
ulfsynth-0.1.11.tar.gz 22.3 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for ulfsynth 0.1.11
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

0.1.13

2 release files

0.1.12

2 release files

This release

0.1.11 This release

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page