# %% # A basic funtion to convert MNI coords to harvard oxford labels using spherical masking # input: # - list of coords of size N*3 # output: # - list of labels of size N import numpy as np from nilearn import datasets from nilearn.input_data import NiftiSpheresMasker def coords2labels(coords: np.array, sphere_radius=2): """ Args: ----- coords: 2d numpy array of size (N,3). Returns: ----- a list strings of size N. """ atlas = datasets.fetch_atlas_harvard_oxford('cort-maxprob-thr25-2mm') masker = NiftiSpheresMasker(seeds=coords,radius=sphere_radius,allow_overlap=True) masker.fit() label_indices = masker.transform_single_imgs(atlas.maps).astype(int) labels = np.array(atlas.labels)[label_indices.flatten()].tolist() return labels # example use case: sample_coords = [[0,0,35], [4,5,6], [-12, 20, -20] ] coords2labels(sample_coords)