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:
- Python 3+
- numpy
- scipy
- pandas
- nibabel
- matplotlib
- scikit-learn
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).
- Joshua B Burt, Murray Lab - Yale University
- John D Murray, Murray Lab - Yale University
- Ross Markello - Montreal Neurological Institute
- 0.11.0 Added
return_data
keyword argument to both variogram-plotting functions in theeval
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 tocortex
andsubcortex
. - 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 withcortex
. - 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.