Skip to main content

Multi-voxel pattern analysis (MVPA) tool for fMRI data

Project description

mvpa

mvpa is a multi-voxel pattern analysis tool for fMRI data. Given a subject's fMRI scans for two conditions (e.g. exposure to two different stimuli), this tool can identify distinct patterns of responses for each condition. It's adapted from the method described in Distributed and Overlapping Representations of Faces and Objects in Ventral Temporal Cortex, except searchlight spheres are analyzed instead of anatomical ROIs.

Notably, this tool is less computationally expensive than a SVM-based searchlight.

Installation

mvpa 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")

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

mvpa-1.0.0.tar.gz (5.8 kB view details)

Uploaded Source

File details

Details for the file mvpa-1.0.0.tar.gz.

File metadata

  • Download URL: mvpa-1.0.0.tar.gz
  • Upload date:
  • Size: 5.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.55.1 CPython/3.9.1

File hashes

Hashes for mvpa-1.0.0.tar.gz
Algorithm Hash digest
SHA256 41c9df85e3ff8624e7b81ba337ce3c7fe4084245f9bb1ba233abbe91f2632d86
MD5 c779362d71ccb79b5962a67d42c095a4
BLAKE2b-256 84ac442b6180f595fcb62b40f897c44e8e2019fe7214b04929d54386624c7d04

See more details on using hashes here.

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