mni-to-atlas
A simple Python-based tool for finding brain atlas regions based on MNI coordinates, with basic plotting abilities to show the sagittal, coronal, and axial views of the coordinates on the atlas.
The following atlases are currently supported:
- Automated anatomical labelling atlas [1]
- Automated anatomical labelling 3 atlas (1mm3 voxel version) [2]
- Human Connectome Project extended parcellation atlas [3]
If there is an atlas you would like to see added, please open an issue.
Example screenshot of the plotting:
Requirements:
See here for the list of requirements.
Use Example:
- Install the package into the desired environment using pip
pip install mni-to-atlas. - Import the
AtlasBrowserclass into your workspace. - Create an instance of the
AtlasBrowserclass and specify an atlas to use (can be "AAL", "AAL3", or "HCPEx"). - Provide MNI coordinates to the
AtlasBrowserobject to find the corresponding atlas regions. The brain regions for these coordinates are then returned as a list of strings.- The coordinates should be an (n x 3) array, where each row contains an x-, y-, and z-axis MNI coordinate.
- By default, plotting the coordinates is not performed, however this can be changed by setting
plot = Truein thefind_regionsmethod. In this case, a figure will be generated for each set of coordinates.
In case your MNI coordinates do not correspond to a defined atlas region (e.g., the coordinates correspond to electrodes above the brain surface), the project_to_nearest method can be used to project the coordinates to the nearest defined atlas region, before finding the brain regions.
# Import the AtlasBrowser class
from mni_to_atlas import AtlasBrowser
import numpy as np
# Instantiate the AtlasBrowser class and specify the atlas to use
atlas = AtlasBrowser("AAL3")
# Define MNI coordinates as an (n x 3) array
coordinates = np.array([[-24, -53, 73],
[-25, 20, 70]])
# Find the brain regions at the MNI coordinates (plotting is optional)
regions = atlas.find_regions(coordinates, plot=True)
assert regions == ["Parietal_Sup_L", "Undefined"]
# Project 'undefined' coordinates to the nearest defined atlas region
projected_coords = atlas.project_to_nearest(coordinates)
projected_regions = atlas.find_regions(projected_coords)
assert np.all(projected_coords == np.array([[-24, -53, 73], [-24, 18, 66]]))
assert projected_regions == ["Parietal_Sup_L", "Frontal_Sup_2_L"]
References:
- Tzourio-Mazoyer et al. (2002) DOI: 10.1006/nimg.2001.0978
- Rolls et al. (2020) DOI: 10.1016/j.neuroimage.2019.116189
- Huang et al. (2022) DOI: 10.1007/s00429-021-02421-6
Metadata
Release files for mni-to-atlas 1.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mni_to_atlas-1.2.0.tar.gz | 675.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mni_to_atlas-1.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.3 MB
Release files / mni_to_atlas-1.2.0.tar.gz
| Download URL | mni_to_atlas-1.2.0.tar.gz |
|---|---|
| Size | 675.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3d5fef2759f5de6cb59f2d1afec2f14e3ea2fcff03aae5c3b05989996d0b303e
|
|
BLAKE2b-256 checksum How to use checksums |
aaf6248994208ea7db9dc902871778f497a30255eeb11e3d2402102bc99997b4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Dec 1, 2025.
Transparency logRelease files / mni_to_atlas-1.2.0-py3-none-any.whl
| Download URL | mni_to_atlas-1.2.0-py3-none-any.whl |
|---|---|
| Size | 663.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1134401959bb689d990a0b37171b4f64f88e2188589c1d9721f68ae7b5c44753
|
|
BLAKE2b-256 checksum How to use checksums |
3e0e988220d19a4537e0d05ca3e6134101fdb78018ef3a748abbaa50d5ac0df3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Dec 1, 2025.
Transparency log