# Neurite Exchange Imaging (NEXI) model estimator for gray matter diffusion MRI
[![PyPI - Version](https://img.shields.io/pypi/v/nexi.svg)](https://pypi.org/project/nexi)
[![PyPI - Downloads](https://img.shields.io/pypi/dm/nexi)](#)
[![GitHub](https://img.shields.io/github/license/QuentinUhl/nexi)](#)
[![GitHub top language](https://img.shields.io/github/languages/top/QuentinUhl/nexi?color=lightgray)](#)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/nexi.svg)](https://pypi.org/project/nexi)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
-----
**Table of Contents**
- [Installation](#installation)
- [Usage](#usage)
- [Prerequisites](#prerequisites)
- [Citation](#citation)
- [License](#license)
## Installation
```console
pip install nexi
```
## Usage
### Estimate NEXI parameters
To estimate NEXI parameters using the nexi package, you can use the estimate_nexi function. This function takes several parameters that you need to provide in order to perform the estimation accurately.
```
estimate_nexi(dwi_path, bvals_path, td_path, lowb_noisemap_path, out_path)
```
`dwi_path`: The path to the diffusion-weighted image (DWI) data in NIfTI format. This data contains the preprocessed diffusion-weighted volumes acquired from your imaging study.
`bvals_path`: The path to the b-values file corresponding to the DWI data. B-values specify the strength and timing of diffusion sensitization gradients for each volume in the DWI data.
`td_path`: The path to the diffusion time (td) file, also known as Δ. This file provides information about the diffusion time for each volume in the DWI data. The diffusion time is the time between the two gradient pulses.
`lowb_noisemap_path`: The path to the noisemap calculated using only the small b-values (b < 2 ms/µm²) and Marchenko-Pastur principal component analysis (MP-PCA) denoising. This noisemap is used to calculate the signal-to-noise ratio (SNR) of the data.
`out_path`: The folder where the estimated NEXI parameters will be saved as output.
## Prerequisites
### Data Acquisition
For accurate NEXI parameter estimation using the nexi package, acquire PGSE EPI (Pulsed Gradient Spin Echo Echo-Planar Imaging) diffusion MRI data with diverse combinations of b values and diffusion times. Ensure reasonable signal-to-noise ratio (SNR) in the data for accurate parameter estimation.
### Preprocessing
Before proceeding, make sure to preprocess your data with the following steps:
- Marchenko-Pastur principal component analysis (MP-PCA) denoising ([Veraart et al., 2016](https://doi.org/10.1016/j.neuroimage.2016.08.016)). Recommended algorithm : [dwidenoise from mrtrix](https://mrtrix.readthedocs.io/en/dev/reference/commands/dwidenoise.html)
- Gibbs ringing correction ([Kellner et al., 2016](https://doi.org/10.1002/mrm.26054)). Recommended algorithm : [FSL implementation](https://bitbucket.org/reisert/unring/src/master/)
- Distortion correction using FSL topup ([Andersson et al., 2003](https://doi.org/10.1002/mrm.10335), [Andersson et al., 2016](https://doi.org/10.1016/j.neuroimage.2015.10.019)). Recommended algorithm : [FSL topup](https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/topup)
- Eddy current and motion correction ([Andersson and Sotiropoulos, 2016](https://doi.org/10.1016/j.neuroimage.2015.12.037)). Recommended algorithm : [FSL eddy](https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/eddy)
Additionally, you need to compute another noisemap using only the small b-values (b < 2 ms/µm²) and MP-PCA. This noisemap will be used to calculate the signal-to-noise ratio (SNR) of the data.
Furthermore, you can provide a mask of grey matter tissue if available. This mask can be used to restrict the processing to specific regions of interest. If a mask is not provided, the algorithms will be applied to the entire image, voxel by voxel, as long as there are no NaN values present.
To compute a grey matter mask, one common approach involves using a T1 image, [FastSurfer](https://deep-mi.org/research/fastsurfer/), and performing registration to the diffusion (b = 0 ms/µm²) space. However, you can choose any other method to compute a grey matter mask.
## Citation
If you use this package in your research, please consider citing the following papers:
### Original NEXI Paper
Ileana O. Jelescu, Alexandre de Skowronski, Françoise Geffroy, Marco Palombo, Dmitry S. Novikov, [Neurite Exchange Imaging (NEXI): A minimal model of diffusion in gray matter with inter-compartment water exchange](https://www.sciencedirect.com/science/article/pii/S1053811922003986), NeuroImage, 2022.
### First application on human gray matter / Development of this package
Quentin Uhl, Tommaso Pavan, Malwina Molendowska, Derek K. Jones, Marco Palombo, Ileana O. Jelescu, [Quantifying human gray matter microstructure using NEXI and 300 mT/m gradients](https://arxiv.org/abs/2307.09492), Arxiv, 2023.
## License
`nexi` is distributed under the terms of the [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html).
Raw data
{
"_id": null,
"home_page": null,
"name": "nexi",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "diffusion,dmri,grey matter,microstructure,model,mri",
"author": null,
"author_email": "Quentin Uhl <quentin.uhl@gmail.com>, \"Ileana O. Jelescu\" <ileana.jelescu@chuv.ch>",
"download_url": "https://files.pythonhosted.org/packages/7d/2c/593a207bf890d1cbbb3ffbc2f263b0779c32505a3ddd167dd95f63acc257/nexi-1.0.7.tar.gz",
"platform": null,
"description": "# Neurite Exchange Imaging (NEXI) model estimator for gray matter diffusion MRI\n\n[![PyPI - Version](https://img.shields.io/pypi/v/nexi.svg)](https://pypi.org/project/nexi)\n[![PyPI - Downloads](https://img.shields.io/pypi/dm/nexi)](#)\n[![GitHub](https://img.shields.io/github/license/QuentinUhl/nexi)](#)\n[![GitHub top language](https://img.shields.io/github/languages/top/QuentinUhl/nexi?color=lightgray)](#)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/nexi.svg)](https://pypi.org/project/nexi)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n\n-----\n\n**Table of Contents**\n\n- [Installation](#installation)\n- [Usage](#usage)\n- [Prerequisites](#prerequisites)\n- [Citation](#citation)\n- [License](#license)\n\n## Installation\n\n```console\npip install nexi\n```\n\n## Usage\n\n### Estimate NEXI parameters\n\nTo estimate NEXI parameters using the nexi package, you can use the estimate_nexi function. This function takes several parameters that you need to provide in order to perform the estimation accurately.\n\n```\nestimate_nexi(dwi_path, bvals_path, td_path, lowb_noisemap_path, out_path)\n```\n\n`dwi_path`: The path to the diffusion-weighted image (DWI) data in NIfTI format. This data contains the preprocessed diffusion-weighted volumes acquired from your imaging study.\n\n`bvals_path`: The path to the b-values file corresponding to the DWI data. B-values specify the strength and timing of diffusion sensitization gradients for each volume in the DWI data.\n\n`td_path`: The path to the diffusion time (td) file, also known as \u0394. This file provides information about the diffusion time for each volume in the DWI data. The diffusion time is the time between the two gradient pulses. \n\n`lowb_noisemap_path`: The path to the noisemap calculated using only the small b-values (b < 2 ms/\u00b5m\u00b2) and Marchenko-Pastur principal component analysis (MP-PCA) denoising. This noisemap is used to calculate the signal-to-noise ratio (SNR) of the data.\n\n`out_path`: The folder where the estimated NEXI parameters will be saved as output.\n\n## Prerequisites\n\n### Data Acquisition\n\nFor accurate NEXI parameter estimation using the nexi package, acquire PGSE EPI (Pulsed Gradient Spin Echo Echo-Planar Imaging) diffusion MRI data with diverse combinations of b values and diffusion times. Ensure reasonable signal-to-noise ratio (SNR) in the data for accurate parameter estimation.\n\n### Preprocessing\n\nBefore proceeding, make sure to preprocess your data with the following steps:\n- Marchenko-Pastur principal component analysis (MP-PCA) denoising ([Veraart et al., 2016](https://doi.org/10.1016/j.neuroimage.2016.08.016)). Recommended algorithm : [dwidenoise from mrtrix](https://mrtrix.readthedocs.io/en/dev/reference/commands/dwidenoise.html)\n- Gibbs ringing correction ([Kellner et al., 2016](https://doi.org/10.1002/mrm.26054)). Recommended algorithm : [FSL implementation](https://bitbucket.org/reisert/unring/src/master/)\n- Distortion correction using FSL topup ([Andersson et al., 2003](https://doi.org/10.1002/mrm.10335), [Andersson et al., 2016](https://doi.org/10.1016/j.neuroimage.2015.10.019)). Recommended algorithm : [FSL topup](https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/topup)\n- Eddy current and motion correction ([Andersson and Sotiropoulos, 2016](https://doi.org/10.1016/j.neuroimage.2015.12.037)). Recommended algorithm : [FSL eddy](https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/eddy)\n\nAdditionally, you need to compute another noisemap using only the small b-values (b < 2 ms/\u00b5m\u00b2) and MP-PCA. This noisemap will be used to calculate the signal-to-noise ratio (SNR) of the data.\n\nFurthermore, you can provide a mask of grey matter tissue if available. This mask can be used to restrict the processing to specific regions of interest. If a mask is not provided, the algorithms will be applied to the entire image, voxel by voxel, as long as there are no NaN values present.\n\nTo compute a grey matter mask, one common approach involves using a T1 image, [FastSurfer](https://deep-mi.org/research/fastsurfer/), and performing registration to the diffusion (b = 0 ms/\u00b5m\u00b2) space. However, you can choose any other method to compute a grey matter mask.\n\n## Citation\n\nIf you use this package in your research, please consider citing the following papers:\n\n### Original NEXI Paper\n\nIleana O. Jelescu, Alexandre de Skowronski, Fran\u00e7oise Geffroy, Marco Palombo, Dmitry S. Novikov, [Neurite Exchange Imaging (NEXI): A minimal model of diffusion in gray matter with inter-compartment water exchange](https://www.sciencedirect.com/science/article/pii/S1053811922003986), NeuroImage, 2022.\n\n### First application on human gray matter / Development of this package\n\nQuentin Uhl, Tommaso Pavan, Malwina Molendowska, Derek K. Jones, Marco Palombo, Ileana O. Jelescu, [Quantifying human gray matter microstructure using NEXI and 300 mT/m gradients](https://arxiv.org/abs/2307.09492), Arxiv, 2023.\n\n\n## License\n\n`nexi` is distributed under the terms of the [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html).\n",
"bugtrack_url": null,
"license": null,
"summary": "Neurite Exchange Imaging (NEXI) model estimator for diffusion MRI",
"version": "1.0.7",
"project_urls": {
"Documentation": "https://github.com/QuentinUhl/nexi#readme",
"Issues": "https://github.com/QuentinUhl/nexi/issues",
"Source": "https://github.com/QuentinUhl/nexi"
},
"split_keywords": [
"diffusion",
"dmri",
"grey matter",
"microstructure",
"model",
"mri"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "0605f5b765e24f9ab970487b48081a9100fdd867560c18996016e6abdb9e9634",
"md5": "d849590e00425589b0fb907d8083976a",
"sha256": "d716cd71c889f0fa539537f44df74db9012ae89ffa1f04149278276bd3aff694"
},
"downloads": -1,
"filename": "nexi-1.0.7-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d849590e00425589b0fb907d8083976a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 28807,
"upload_time": "2023-08-22T08:18:06",
"upload_time_iso_8601": "2023-08-22T08:18:06.265635Z",
"url": "https://files.pythonhosted.org/packages/06/05/f5b765e24f9ab970487b48081a9100fdd867560c18996016e6abdb9e9634/nexi-1.0.7-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "7d2c593a207bf890d1cbbb3ffbc2f263b0779c32505a3ddd167dd95f63acc257",
"md5": "ae6aaad6ff982d5152ac6999ae3723fc",
"sha256": "bf2e5431e2df4a5b115ab3d3057193e7bad8675c6837cd2f325c4e53f8c918f6"
},
"downloads": -1,
"filename": "nexi-1.0.7.tar.gz",
"has_sig": false,
"md5_digest": "ae6aaad6ff982d5152ac6999ae3723fc",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 32880,
"upload_time": "2023-08-22T08:18:08",
"upload_time_iso_8601": "2023-08-22T08:18:08.044872Z",
"url": "https://files.pythonhosted.org/packages/7d/2c/593a207bf890d1cbbb3ffbc2f263b0779c32505a3ddd167dd95f63acc257/nexi-1.0.7.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-08-22 08:18:08",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "QuentinUhl",
"github_project": "nexi#readme",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "nexi"
}