Skip to main content

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: image

Requirements:

See here for the list of requirements.

Use Example:

  1. Install the package into the desired environment using pip pip install mni-to-atlas.
  2. Import the AtlasBrowser class into your workspace.
  3. Create an instance of the AtlasBrowser class and specify an atlas to use (can be "AAL", "AAL3", or "HCPEx").
  4. Provide MNI coordinates to the AtlasBrowser object 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 = True in the find_regions method. 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:

  1. Tzourio-Mazoyer et al. (2002) DOI: 10.1006/nimg.2001.0978
  2. Rolls et al. (2020) DOI: 10.1016/j.neuroimage.2019.116189
  3. 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)

Source distribution for mni-to-atlas 1.2.0
File Size Uploaded
mni_to_atlas-1.2.0.tar.gz 675.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mni-to-atlas 1.2.0
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.4

2 release files

0.3

2 release files

0.2

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page