Find anatomical location of a list of MNI coordinates

31 sec read

Quite often you need to know what is the brain structure (anatomical name) of a given coordinate, say (-8, 2, 6)? Is there a program for this? The answer is yes.

Please download the following matlab script:


This program requires the anatomical database file (TDdatabase.mat), which is free for downloading at Please note TDdatabase.mat is included in the xjview package.

Remember to add both files to matlab path.

How to use it?

Here is one example to find the structure of two points 20 6 10 and 30 9 12:

[oneline, cellarray]=cuixuFindStructure([20 6 10; 30 9 12]);

You will find

>> oneline{1}

ans =

 // Right Cerebrum // Sub-lobar // Lentiform Nucleus // Gray Matter // Putamen // undefined

>> oneline{2}

ans =

 // Right Cerebrum // Sub-lobar // Extra-Nuclear // White Matter // undefined // undefined
>> cellarray

cellarray = 

  Columns 1 through 5

    'Right Cerebrum'    'Sub-lobar'    'Lentiform Nucleus'    'Gray Matter'     'Putamen'
    'Right Cerebrum'    'Sub-lobar'    'Extra-Nuclear'        'White Matter'    'undefined'

  Column 6



Want to receive new post notification? 有新文章通知我

第五十三期fNIRS Journal Club通知2024/06/22, 10am 李洪

Wanling Zhu
8 sec read

第五十二期fNIRS Journal Club视频 周欣博士

Youtube:优酷: 自闭症特质(A
Wanling Zhu
12 sec read

第五十二期fNIRS Journal Club通知2024/06/01, 10am 周欣博士

自闭症特质(Autistic traits)影响人与人之间的社交互动,但该影响背后的神经机制仍然有待研究。来自香港中文大学的周欣博士将分享团队利用近红外超扫描技术研究不同互动场景下脑同步与自闭特质之间
Wanling Zhu
8 sec read

20 Replies to “Find anatomical location of a list of MNI coordinates”

  1. Hi! I love this function. I have a naive question: For specifying the optional DB, what are ALL the allowable strings one can include? E.g., if I want to just find AAL’s label for a set of coordinates.

  2. Hi,
    your code/xjview is very helpful, thanks!

    I have one question; For Coordinate (-53 -10 24) I recieve this string of names: ‘Left Cerebrum’ ‘Frontal Lobe’ ‘Precentral Gyrus’ ‘White Matter’ ‘undefined’ ‘Postcentral_L (aal)’

    I was wondering, why I am given different assignments to one Coordinate. What I mean; do I have to assign my Coordinate now to Precentral Gyrus or the Postcentral Gyrus? Maybe I oversee something obvious, but right now I am am very confused by this. Do the first 5 Label and the last label represent different brain atli?

    I am loocking forward to your answer

  3. @Isabelle
    There are multiple anatomical databases out there and sometimes their reports are inconsistent. The information xjview gives you is only a guidance, and you should consider other factors such as cluster extent etc.

  4. Hi,

    thanks alot for sharing this code. I was wondering whether there is a “find nearest gray matter” tool available? (like in the talairach tool, e.g. perform a search within a 5mm radius).

    I was thinking about implementing it, but since it seems to be some work involved I’d rather ask first if that code exists already 🙂

    Best wishes

  5. @Matti
    Matti, I don’t have a script like this. If you do implement it and are willing to share it, please feel free to let me know.

  6. Dear Xu,

    The last column is always from the AAL atlas. The previous column give Brodmann’s areas. So, is this list of areas a culmination of the Brodmann, AAL, Ch2better, etc maps that you asked us to copy into spm/canonical?


  7. Dear Xu,
    Thank you very much for sharing this. What is the unit if measure in the MNI system you use? I will use your code to extract voxels in the ICBM152 dataset in Brainstorm, which consist of 15002 voxels in the cortex.

  8. Dear Xu,
    this function is really helpful for me. But here are some questions about it.
    1. Have a set of coordinates in csv file with the delimiter of comma, and I was wondering if you have the method to input the csv file directly. Cause there are thousands of coordinates, I can’t type them one by one.
    If your toolbox doesn’t support this kind of input format, do you have any idea about how to solve it.
    2. No offense, do you know any other toolbox also has this kind of coordinates information achievement function? I just wanna compare them and find the best one for my study.


  9. @Ziqian
    We do not have a function taking csv as input unfortunately. I also do not know other programs with similar functions. If you find out please let me know.

  10. Xu Cui :
    We do not have a function taking csv as input unfortunately. I also do not know other programs with similar functions. If you find out please let me know.

    The only another one I know is fsl and in my mind maybeb freesurfer would also have this similar fuction.
    The command I remember is ‘atlasquery’.
    I am totally a neophyte of matlab. My file is like each set of coordinates one each line. How do you think I can translate it to fit your input format? I could send you an example if necessary.
    Any suggestion is helpful. Thank you.

  11. Xjview used AAL1 to report brain regions which only have 116 regions in default. If I want to report regions based on AAL3 with 170 regions, what should I do?

    1. You will need to replace xjview’s database (the .mat file). Are you good at MatLab?

Leave a Reply

Your email address will not be published. Required fields are marked *