Skip to main content

Brain Surrogate Maps with Autocorrelated Spatial Heterogeneity.

Project description


BrainSMASH (Brain Surrogate Maps with Autocorrelated Spatial Heterogeneity) is a Python-based computational platform for statistical testing of spatially autocorrelated brain maps. At the heart of BrainSMASH is the ability to simulate surrogate brain maps with spatial autocorrelation that is matched to spatial autocorrelation in a target brain map. Additional utilities are provided for users using Connectome Workbench style surface-based neuroimaging files.

Exhaustive documentation can be found here.


Installing BrainSMASH requires:

If you wish to use the additional utilities provided for Connectome Workbench users, you must have Connectome Workbench installed with the wb_command executable locatable in your system PATH environment variable.


BrainSMASH is most easily installed using pip:

pip install brainsmash

You may also clone and install the source files manually:

git clone
cd brainsmash
python install


The BrainSMASH source code is available under the GNU General Public License v3.0.


Please cite the following paper if you use BrainSMASH in your research:

Burt, J.B., Helmer, M., Shinn, M.W., Anticevic, A., Murray, J.D. Generative modeling of brain maps with spatial autocorrelation. Neuroimage, 220 (2020).

Core development team

  • Joshua B Burt, Murray Lab - Yale University
  • John D Murray, Murray Lab - Yale University


  • Ross Markello - Montreal Neurological Institute

Change Log

  • 0.11.0 Added return_data keyword argument to both variogram-plotting functions in the eval module, such that users can easily customize variogram plots to their liking and/or compute numerical goodness-of-fit metrics.
  • 0.10.0 Added batch processing to mapgen.Base thanks to contributions from Ross Markello. Note that generating surrogate maps before vs. after this update with the same random seed will yield different results due to a minor implementational change.
  • 0.9.0 Added multi-dimensional Spearman rank correlation to mapgen.stats module.
  • 0.8.0 Parallelization of surrogate map generation is now supported thanks to new contributions from Ross Markello!
  • 0.7.0 Added geo.volume method to compute 3D Euclidean distance matrix from an arbitrary set of voxel coordinates, per several requests.
  • 0.6.1 Surrogates maps are now de-meaned prior to returning (as the mean carries no information).
  • 0.6.0 Added unassigned_value kwarg to cortex and subcortex.
  • 0.5.2 Introduced a bug during the last bug fix.
  • 0.5.1 Fixed bug which caused distances to be written to file one-dimensionally.
  • 0.5.0 Updated geo.subcortex to have parallel structure with cortex.
  • 0.4.0 Replaced geo.cortex function with Ross' new implementation, in a backwards-compatible fashion.
  • 0.3.0 Added ability to set seed/random state in Base and Sampled classes.
  • 0.2.0 Added Ross Markello's implementation of Dijkstra's algorithm for efficiently computing surface-based distances.
  • 0.1.1 Fixed bug in NaN handling.
  • 0.1.0 Added goodness-of-fit metrics to stats module.
  • 0.0.9 Fixed bug in Sampled.sampled.permute_map().
  • 0.0.8 Relaxed nibabel version dependency.
  • 0.0.7 Removed console print statements.
  • 0.0.6 Fixed masked dense array handling.
  • 0.0.1 Initial beta release.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

brainsmash-0.11.0.tar.gz (265.1 kB view hashes)

Uploaded source

Built Distribution

brainsmash-0.11.0-py3-none-any.whl (268.2 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page