Welcome to searchlights

Welcome to searchlights

Searchlight analysis [Kriegeskorte et al., 2006, Oosterhof et al., 2011, Chen et al., 2011] is one of the most popular methods in neuroimaging data analysis. It has been widely used in multivariate pattern analysis (MVPA) [Haxby et al., 2014], including searchlight-based hyperalignment algorithms [Guntupalli et al., 2016, Guntupalli et al., 2018, Feilong et al., 2018]. Essentially, searchlight analysis loops through all brain regions (usually defined as spheres in volume and disks on surface) like a searchlight. It is often used to find brain regions containing certain information (e.g., regions with highest decoding accuracy).

searchlights is a lightweight Python package that provides precomputed searchlights for surface-based analysis of fMRI data. It supports multiple standard surfaces provided by FreeSurfer (e.g., fsaverage, fsaverage5) and different spatial resolutions (e.g., icoorder5, icoorder3). It only depends on NumPy.

Installation

searchlights can be easily installed with pip

python -m pip install searchlights

Example

The surface-based fMRI data we usually use (e.g., Feilong et al. [2018]) are in fsaverage space, downsampled to a lower resolution (icoorder5, approximately 3 mm vertex spacing). The surface has 9372 vertices for the left hemisphere, and 9370 vertices for the right hemisphere. The code below shows how to get the searchlights for the left hemisphere with a 20 mm radius.

import numpy as np
from searchlights import get_searchlights
sls = get_searchlights('l', 20, 'fsaverage')

There are 9372 searchlights, one for each vertex as the center.

print(len(sls))
9372

Each entry in sls is a NumPy array comprising the indices of vertices in the searchlight. In this case the indices ranging from 0 to 9371 (0-based indexing).

cat = np.concatenate(sls)
print(cat.min(), cat.max())
0 9371

If you have a data matrix ds that is in the same space and has the same resolution as the searchlights, you can easily get the data in a searchlight using

sl = sls[0]  # the first searchlight
sub_ds = ds[:, sl]  # data in the first searchlight

References

1

Nikolaus Kriegeskorte, Rainer Goebel, and Peter Bandettini. Information-based functional brain mapping. Proceedings of the National Academy of Sciences of the United States of America, 103(10):3863–3868, 2006. doi:10.1073/pnas.0600244103.

2

Nikolaas N. Oosterhof, Tobias Wiestler, Paul E. Downing, and Jörn Diedrichsen. A comparison of volume-based and surface-based multi-voxel pattern analysis. NeuroImage, 56(2):593–600, 2011. Publisher: Elsevier Inc. doi:10.1016/j.neuroimage.2010.04.270.

3

Yi Chen, Praneeth Namburi, Lloyd T. Elliott, Jakob Heinzle, Chun Siong Soon, Michael W. L. Chee, and John-Dylan Haynes. Cortical surface-based searchlight decoding. NeuroImage, 56(2):582–592, May 2011. doi:10.1016/j.neuroimage.2010.07.035.

4

James V. Haxby, Andrew C. Connolly, and J. Swaroop Guntupalli. Decoding neural representational spaces using multivariate pattern analysis. Annual Review of Neuroscience, 37(1):435–456, 2014. doi:10.1146/annurev-neuro-062012-170325.

5

J. Swaroop Guntupalli, Michael Hanke, Yaroslav O. Halchenko, Andrew C. Connolly, Peter J. Ramadge, and James V. Haxby. A model of representational spaces in human cortex. Cerebral Cortex, 26(6):2919–2934, 2016. doi:10.1093/cercor/bhw068.

6

J. Swaroop Guntupalli, Ma Feilong, and James V. Haxby. A computational model of shared fine-scale structure in the human connectome. PLOS Computational Biology, 14(4):e1006120, April 2018. doi:10.1371/journal.pcbi.1006120.

7

Ma Feilong, Samuel A. Nastase, J. Swaroop Guntupalli, and James V. Haxby. Reliable individual differences in fine-grained cortical functional architecture. NeuroImage, 183:375–386, December 2018. doi:10.1016/j.neuroimage.2018.08.029.