MRI algorithms for fat-water separation based on chemical shift with B0-correction
Project description
mri-fatwater
MRI chemical shift-based fat-water separation with B0-correction using multi-scale graph cuts.
Overview
mri-fatwater is a Python package for MRI fat-water separation based on the multi-scale graph-cut algorithm described in Berglund & Skorpil, 2017. It can be used in Python scripts and as a command line tool.
⚠️ Repository rename notice: This repository was previously named
fwqpbo. Existing links remain valid.
Installation
pip install mri-fatwater
Alternatively, clone the repository and install dependencies, for instance using uv:
git clone https://github.com/bretglun/mri-fatwater.git
cd mri-fatwater
uv sync
Usage
Command-Line Interface
# Show help
fatwater -h
# Run with parameter files
fatwater -d mri_fatwater/configs/dataParams.yml -a mri_fatwater/configs/algoParams.yml -m mri_fatwater/configs/modelParams.yml -o output_dir/
Python API
Example using config files:
from mri_fatwater import fatwater, io
results = fatwater.separate(
data_param_file='mri_fatwater/configs/dataParams.yml',
algo_param_file='mri_fatwater/configs/algoParams.yml',
model_param_file='mri_fatwater/configs/modelParams.yml'
)
io.save(results, 'output_dir/')
Example using config dicts:
from mri_fatwater import fatwater, io
data_path = 'mri_fatwater/data'
data = io.load_numpy_data('17.npy', data_path)
results = fatwater.separate(
data=data,
data_params={'B0': 1.5, 't': [0.00287, 0.00607, 0.00927]},
algo_params={
'graphcut': True,
'output': ['wat', 'fat', 'ff', 'B0map', 'R2map']},
model_params={
'watCS': 4.7,
'fatCS': [5.3, 4.31, 2.76, 2.1, 1.3, 0.9],
'relAmps': [0.048, 0.039, 0.004, 0.128, 0.693, 0.087]}
)
io.save(results, data_path + '/17_REC')
See scripts/demo.py for a complete example.
Configuration
Input parameters can be provided as:
- Human-readable YAML configuration files
- Python dictionaries
Example configuration files are available in the mri_fatwater/configs/ directory.
Input data should be a complex NumPy array or a .npy file specified in the data configuration file with chemical shift encoded "echoes" along the first dimension.
Dependencies
See pyproject.toml for the complete list of dependencies.
Citation
If you use this software in your research, please cite:
Berglund J and Skorpil M. Multi-scale graph-cut algorithm for efficient water-fat separation. Magn Reson Med, 78(3):941-949, 2017. [doi: 10.1002/mrm.26479]
License
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License v3.0.
See LICENSE.md for the full license text.
Contact
Johan Berglund, Ph.D.
Uppsala University Hospital, Uppsala, Sweden
📧 johan.berglund@akademiska.se
Copyright © 2016–2026 Johan Berglund
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mri_fatwater-1.2.1.tar.gz.
File metadata
- Download URL: mri_fatwater-1.2.1.tar.gz
- Upload date:
- Size: 956.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
464f3eab98607cb3ac535f363907e4375ee4e8513e23a492357526eebd0713fd
|
|
| MD5 |
8bbb9979b8a49fd93d91909efed6d7fc
|
|
| BLAKE2b-256 |
d829af0f9c2d3f902d1eca5422340784de209eab595caaa9568f18ecabfa2b29
|
File details
Details for the file mri_fatwater-1.2.1-py3-none-any.whl.
File metadata
- Download URL: mri_fatwater-1.2.1-py3-none-any.whl
- Upload date:
- Size: 945.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
44f6b60c282e1ba41f9ea6a2dadefde8b3d90ce1084a003501ef29417d5cc5a2
|
|
| MD5 |
dd9c3755f05185834e465e2882138c50
|
|
| BLAKE2b-256 |
7f495944ee348c2741c6f60eab0cb4044be7ef31f977e3f2870d87a6c563a621
|