CorrMVPA
CorrMVPA
is a multi-voxel pattern analysis (MVPA) tool for fMRI data. It's adapted from the method described in Haxby et al., 2001, except searchlight spheres are analyzed instead of anatomical ROIs.
This tool allows users to identify areas of the brain containing multivariate representations, from which a pair of conditions can be decoded. CorrMVPA
is similar to the searchlight tool provided by nilearn, but it's based on voxel-by-voxel correlations rather than SVM classifications. Such correlations are notably much faster to compute, and results for a full brain can be generated within 10 minutes on a commercial laptop, unlike the day(s) needed for the SVM searchlight.
Fig. 3 from Haxby et al. (2001)
Installation
CorrMVPA
can be installed from PyPi:
$ pip install mvpa
Usage Example
Load the Haxby dataset
import pandas as pd
from nilearn.datasets import fetch_haxby
# We fetch 2nd subject from haxby datasets (which is default)
haxby_dataset = fetch_haxby()
fmri_filename = haxby_dataset.func[0]
labels = pd.read_csv(haxby_dataset.session_target[0], sep=" ")
y, session = labels["labels"], labels["chunks"]
Restrict to faces and houses
from nilearn.image import index_img
face_mask = y.isin(["face"]) # Condition A
house_mask = y.isin(["house"]) # Condition B
face_niimg = index_img(fmri_filename, face_mask)
house_niimg = index_img(fmri_filename, house_mask)
Prepare input data
from nilearn.image import load_img
from mvpa import even_odd_split
face_niimg_even, face_niimg_odd = even_odd_split(face_niimg)
house_niimg_even, house_niimg_odd = even_odd_split(house_niimg)
A = [(face_niimg_even, face_niimg_odd)]
B = [(house_niimg_even, house_niimg_odd)]
mask_img = load_img(haxby_dataset.mask)
Run correlation searchlight
from mvpa import correlation_searchlight, significance_map
score_maps = correlation_searchlight(A, B, mask_img, radius=3)
# t_map, p_map = significance_map(score_maps, mask_img) # Only used for datasets
# with multiple subjects
score_maps
is a list of paths to NIfTI files, each representing the significance scores for each voxel in a subject's scan.
Visualize results
from nilearn.image import mean_img
from nilearn.plotting import plot_stat_map
score_map = load_img(score_maps[0])
plot_stat_map(score_map, bg_img=mean_img(fmri_filename), colorbar=True,
display_mode="z")
Authors
CorrMVPA
was created by Jonathan Shobrook and Paul C. Bogdan as part of our research in the Dolcos Lab at the Beckman Institute for Advanced Science and Technology.