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.12

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.12
File Size Uploaded
ulfsynth-0.1.12.tar.gz 21.6 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for ulfsynth 0.1.12
File Interpreter ABI Platform
ulfsynth-0.1.12-py3-none-any.whl Python 3 none any Details

Total release size: 22.0 MB

Release files / ulfsynth-0.1.12.tar.gz

Download URL ulfsynth-0.1.12.tar.gz
Size 21.6 MB
Tags Source
SHA-256 checksum
How to use checksums
e93c401e064b256b8f6050d3db04f2b39cd3e129c5992c9005df3598aa33a8e6
BLAKE2b-256 checksum
How to use checksums
c9c44542555188c3d85c65becea1dd46cc85897cda09c39c65eb95f9655d42b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 17, 2026.

Transparency log

Release files / ulfsynth-0.1.12-py3-none-any.whl

Download URL ulfsynth-0.1.12-py3-none-any.whl
Size 367.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
85fd55389ef1095919b843d5e2389a6accf99327a4e2cf11edd440c156f364be
BLAKE2b-256 checksum
How to use checksums
cc19fc9c3d4f010e16ed21ae686c2515fba9f59a20177a4fac9ef190606dc1b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 17, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.13

2 release files

This release

0.1.12 This release

2 release files

0.1.11

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