Giter VIP home page Giter VIP logo

simple-brain-plot's Introduction

Simple brain plot

brainPlot is a MATLAB function to create simple line-art brain plots.

Figure with all atlases

DOI

Atlases available, Installation, Usage, Examples, References, Attribution

Atlases available

This tool can be used to visualize the brain areas in the following atlases:

  • ‘Desikan-Killiany’ aparc cortical atlas as present in FreeSurfer [1].
  • ‘Desikan-Killiany’ aparc+aseg combined cortical and subcortical atlas as present in FreeSurfer [1].
  • 120 regions Cammoun sub-parcellation of the Desikan-Killiany cortical atlas [2].
  • 120 regions Cammoun sub-parcellation of the Desikan-Killiany cortical atlas with ASEG subcortical regions [2].
  • 250 regions Cammoun sub-parcellation of the Desikan-Killiany atlas [2].
  • 39 regions combined Walker-von Bonin and Bailey (WBB47) parcellation atlas of the macaque [3][4][5][6].

Installation

  1. Download/clone this repository and save it in a directory, e.g. ~/MATLAB
  2. Locate the simple-brain-plot directory and add this directory to your MATLAB path using the addpath command:
addpath('~/MATLAB/simple-brain-plot')
  1. You are ready to use plotBrain!

Note: When you use the function for the first time, the figure viewer in MATLAB may display "Unable to open file" or "File not found". This error only appears when you use the function for the first time and will be resolved when you try to run it a second time.

Usage

plotBrain(regions, values, cm) creates brain plot with regions having colors as specified by the regions and values vectors with a colormap defined by the matrix cm. Colormap cm can have any number of rows, but must have exactly 3 columns.

plotBrain(regions, values, cm, ...) creates brain plots with optional arguments:

'limits'     Two element vector [cmin cmax]. cmin and cmax are assigned
             to the first and last color in the colormap.
             - default: [min(values) max(values)]
'viewer'     A logical indicating whether the created figure will be opened 
             in web viewer.
             - default: true
'savePath'   A char array with location and first part of the output file name.
             File name will be: ['savePath'_ATLASNAME.svg]
             - default: temporary dir, deleted afterwards.
'scaling'    A scalar specifying scaling of image. Original scaling is very 
             large, but smaller scalings show small white lines
             - default: '0.1' (10%)
'atlas'      Chose which atlas to use
             'aparc'            - Desikan-Killiany atlas
             'aparc_aseg'       - Desikan-Killiany atlas + subcortical (partial ASEG)
                                  segmentation
             'lausanne120'      - 120 regions Cammoun sub-parcellation of
                                  the Desikan-Killiany atlas
             'lausanne120_aseg' - 120 regions Cammoun sub-parcellation +
                                  subcortical (partial ASEG) segmentation
             'lausanne250'      - 250 regions Cammoun sub-parcellation of
                                  the Desikan-Killiany atlas
             'wbb47'            - 39 regions combined Walker-von Bonin and Bailey
                                  parcellation atlas of the macaque
             - default: 'lausanne120'

Examples

Preparation

First create the colormap you would like to use (one can also use the standard MATLAB colormap). Here we show an example based on the cbrewer YlGnBu-colormap.

cm = [0.8431    0.1882    0.1529; ...
    0.9569    0.4275    0.2627; ...
    0.9922    0.6824    0.3804; ...
    0.9961    0.8784    0.5451; ...
    1.0000    1.0000    0.7490; ...
    0.8510    0.9373    0.5451; ...
    0.6510    0.8510    0.4157; ...
    0.4000    0.7412    0.3882; ...
    0.1020    0.5961    0.3137];
cm = interp1(cm, 1:0.01:size(cm,1));

Make a folder called "figures" in which the generated figures can be saved.

[~, ~] = mkdir('figures');

Load the names of the brain regions for all atlases.

load('regionDescriptions.mat');

Visualize atlases

In this example, brain plots are colored using random values. Replace the random values function randn(size(regionDescriptions.ATLAS)), with your own variable to plot your specific values in the brain figure.

APARC + aseg atlas
plotBrain(regionDescriptions.aparc_aseg, ...
    randn(size(regionDescriptions.aparc_aseg)), cm, ...
    'atlas', 'aparc_aseg', ...
    'savePath', 'examples/figure');
APARC atlas
plotBrain(regionDescriptions.aparc_aseg, ...
    randn(size(regionDescriptions.aparc_aseg)), cm, ...
    'atlas', 'aparc', ...
    'savePath', 'examples/figure');
Lausanne120 + aseg atlas
plotBrain(regionDescriptions.lausanne120_aseg, ...
    randn(size(regionDescriptions.lausanne120_aseg)), cm, ...
    'atlas', 'lausanne120_aseg', ...
    'savePath', 'examples/figure');
Lausanne120 atlas
plotBrain(regionDescriptions.lausanne120_aseg, ...
    randn(size(regionDescriptions.lausanne120_aseg)), cm, ...
    'atlas', 'lausanne120', ...
    'savePath', 'examples/figure');
Lausanne250 atlas
plotBrain(regionDescriptions.lausanne250, ...
    randn(size(regionDescriptions.lausanne250)), cm, ...
    'atlas', 'lausanne250', ...
    'savePath', 'examples/figure');
WBB47 atlas
plotBrain(regionDescriptions.wbb47, ...
    randn(size(regionDescriptions.wbb47)), cm, ...
    'atlas', 'wbb47', ...
    'savePath', 'examples/figure');

Advanced

Center the color axis around 0 using the limits option:

values = randn(size(regionDescriptions.aparc_aseg));
plotBrain(regionDescriptions.aparc_aseg, ...
    randn(size(regionDescriptions.aparc_aseg)), cm, ...
    'atlas', 'aparc', ...
    'limits', [-max(abs(values)) max(abs(values))]);

Figure with advanced example

References

[1] Rahul S. Desikan, Florent Ségonne, Bruce Fischl, Brian T. Quinn, Bradford C. Dickerson, Deborah Blacker, Randy L. Buckner, Anders M. Dale, R. Paul Maguire, Bradley T. Hyman, Marilyn S. Albert, and Ronald J. Killiany. An automated labeling system for subdividing the human cerebral cortex on mri scans into gyral based regions of interest. NeuroImage, 31(3):968–80, 2006. URL: http://www.sciencedirect.com/science/article/pii/S1053811906000437, doi:10.1016/j.neuroimage.2006.01.021.

[2] Leila Cammoun, Xavier Gigandet, Djalel Meskaldji, Jean Philippe Thiran, Olaf Sporns, Kim Q. Do, Philippe Maeder, Reto Meuli, and Patric Hagmann. Mapping the human connectome at multiple scales with diffusion spectrum mri. Journal of Neuroscience Methods, 203(2):386–397, 2012. doi:10.1016/j.jneumeth.2011.09.031.

[3] Lianne H. Scholtens, Ruben Schmidt, Marcel A. de Reus, Martijn P. van den Heuvel. Linking Macroscale Graph Analytical Organization to Microscale Neuroarchitectonics in the Macaque Connectome. Journal of Neuroscience 3 September 2014, 34 (36) 12192-12205; URL: https://www.jneurosci.org/content/34/36/12192.short DOI: 10.1523/JNEUROSCI.0752-14.2014

[4] Stephan KE, Hilgetag CC, Burns GA, O'Neill MA, Young MP, Kötter R. Computational analysis of functional connectivity between areas of primate cerebral cortex. Philos Trans R Soc Lond B Biol Sci 355:111–126, 2000. URL: https://royalsocietypublishing.org/doi/abs/10.1098/rstb.2000.0552 doi:10.1098/rstb.2000.0552, pmid:10703047

[5] von Bonin G, Bailey P. The neocortex of Macaca mulatta. 1947. University of Illinois, Urbana, IL.

[6] Walker EA. A cytoarchitectural study of the prefrontal area of the macaque monkey. J Comp Neurol 73:59–86, 1940. doi:10.1002/cne.900730106

Attribution

If you find this code useful in your research, please cite as: Scholtens, Lianne H, de Lange, Siemon C, and van den Heuvel, Martijn P. 2021. “Simple Brain Plot”. Zenodo. https://doi.org/10.5281/zenodo.5346593.

simple-brain-plot's People

Contributors

siemondelange avatar lhscholtens avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.