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 https://github.com/murraylab/brainsmash.git cd brainsmash python setup.py 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
- 0.11.0 Added
return_datakeyword argument to both variogram-plotting functions in the
evalmodule, 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.Basethanks 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
- 0.8.0 Parallelization of surrogate map generation is now supported thanks to new contributions from Ross Markello!
- 0.7.0 Added
geo.volumemethod 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
- 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.subcortexto have parallel structure with
- 0.4.0 Replaced
geo.cortexfunction 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.