Skip to main content

AI-powered T1w to T2 TSE MRI translation using flow matching

Project description

MRecover

AI-powered T1w to T2 TSE MRI translation using autoregressive flow matching.

MRecover synthesizes T2-weighted turbo spin echo (TSE) images from T1-weighted (MPRAGE) brain MRI, enabling recovery of T2 TSE contrast without re-scanning.

Installation from github

git clone https://github.com/jinghangli98/MRecover.git
cd MRecover
pip install -e .

Installation from PyPI

pip install mrecover

Model

The models are hosted at https://huggingface.co/jil202/MRecover. You will need to agree to share your contact information to access the models. The model will be automatically downloaded from HuggingFace on first use. You will need to authenticate:

huggingface-cli login

Docker

Build the simple CPU image:

docker build -t mrecover:cpu .

Build the CUDA image for NVIDIA GPU hosts:

docker build -f Dockerfile.cuda -t mrecover:cuda12.1 .

Run with your Hugging Face token and a mounted data directory:

docker run --rm -e HF_TOKEN=$HF_TOKEN -v "$PWD:/data" mrecover:cpu -i /data/T1.nii.gz -o /data/T2tse.nii.gz --device cpu

For CUDA, use Docker on a Linux host with NVIDIA Container Toolkit:

docker run --rm --gpus all -e HF_TOKEN=$HF_TOKEN -v "$PWD:/data" mrecover:cuda12.1 -i /data/T1.nii.gz -o /data/T2tse.nii.gz --device cuda

Quick Start

CLI

# Force anisotropic TSE-like spacing (0.375 × 1.5 × 0.375 mm)
mrecover -i T1.nii.gz -o T2tse.nii.gz --tse-through-plane 1.5

# Input already registered to TSE space (skip resampling)
mrecover -i T1_registered.nii.gz -o T2tse.nii.gz --tse-registered

# Higher quality with more ODE steps
mrecover -i T1.nii.gz -o T2tse.nii.gz --steps 10

Python API

import mrecover

# Simple translation
mrecover.translate("T1.nii.gz", "T2tse.nii.gz")

# With options
mrecover.translate(
    "T1.nii.gz",
    "T2tse.nii.gz",
    steps=10,
    tse_through_plane=1.5,   # resample through-plane to 1.5 mm
    tse_inplane=0.375,        # target in-plane resolution
)

# Returns the generated volume as a numpy array
volume = mrecover.translate("T1.nii.gz", "T2tse.nii.gz")
print(volume.shape)  # (X, Y, Z)

CLI Reference

Argument Default Description
-i, --input required Input T1w NIfTI or DICOM directory
-o, --output required Output file path
--steps 1 ODE integration steps (more = higher quality, slower)
--device cuda Device: cuda or cpu
--rk4 off Use RK4 instead of Euler ODE solver
--no-fp16 off Disable half precision
--no-auto off Disable autoregressive slice context
--tse-inplane 0.375 In-plane resampling target (mm)
--tse-through-plane None Through-plane resampling target (mm)
--tse-registered off Skip resampling (input already in TSE space)
--model None Path to custom model checkpoint
--seed 42 Random seed

Input / Output

Input: T1w MPRAGE NIfTI (.nii / .nii.gz) at any isotropic resolution (e.g. 0.55–1 mm), or a DICOM series directory.

Output: Synthetic T2 TSE NIfTI or DICOM. By default the output is resampled to 0.375 mm in-plane with the through-plane spacing preserved from the input.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mrecover-0.1.1.tar.gz (13.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mrecover-0.1.1-py3-none-any.whl (14.1 kB view details)

Uploaded Python 3

File details

Details for the file mrecover-0.1.1.tar.gz.

File metadata

  • Download URL: mrecover-0.1.1.tar.gz
  • Upload date:
  • Size: 13.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for mrecover-0.1.1.tar.gz
Algorithm Hash digest
SHA256 6390ef0a1156ee4e4bf64a608ee4b922b76310585e7ea6db0bba0105e4b3d95c
MD5 7c0ac50f3e1685b15590b5e4295233a0
BLAKE2b-256 642daf6d4ef9d082786e082ea5bb6e1bbd6e58b3395951d5588213756f191ab6

See more details on using hashes here.

File details

Details for the file mrecover-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: mrecover-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 14.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for mrecover-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 696e6e3e63171791cfef7f62d27c3ef7f02a0aa436a93ed12f03e1d35a4c12e9
MD5 9946701b05d845016fb3732c1e828ded
BLAKE2b-256 425677257f0385889eb1a9ae356b348824ad8864ef42641f8d38cf4baee15fe4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page