Metadata-Version: 2.4
Name: qmri-io
Version: 0.1.0
Summary: NIFTI, DICOM, and BIDS I/O for qmri
Author-email: Gold Standard Phantoms <tom.hampshire@goldstandardphantoms.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/gold-standard-phantoms/qmri
Project-URL: Documentation, https://qmri.readthedocs.io
Project-URL: Repository, https://github.com/gold-standard-phantoms/qmri
Keywords: mri,nifti,dicom,bids,neuroimaging
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Medical Science Apps.
Classifier: Typing :: Typed
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: qmri>=0.1.0
Requires-Dist: nibabel>=5.0
Provides-Extra: dicom
Requires-Dist: pydicom>=2.4; extra == "dicom"
Provides-Extra: all
Requires-Dist: qmri-io[dicom]; extra == "all"

# qmri-io

NIFTI, DICOM, and BIDS I/O for qmri.

## Installation

```bash
pip install qmri-io
```

## Quick Start

```python
from qmri.diffusion import adc
from qmri.io import nifti

# Load DWI data
dwi = nifti.load("dwi.nii.gz")

# Fit ADC
result = adc.fit(dwi.data, dwi.b_values, method="iwlls")

# Save result
nifti.save(result.adc, dwi.affine, "adc_map.nii.gz")
```

## Features

- **NIFTI support** via nibabel
- **BIDS dataset loading** with automatic sidecar parsing
- **DICOM support** (optional, requires pydicom)
- **Sidecar file handling** (.bval, .bvec, .json)

## Design

This package handles file I/O so the core `qmri` package doesn't need nibabel or pydicom as dependencies. Functions return simple dataclasses with numpy arrays, not complex container objects.

## Documentation

Full documentation: https://gold-standard-phantoms.github.io/qmri

## Licence

MIT
