Skip to main content

Code for performing Representational Similarity Analysis on MNE-Python data structures.

Project description

Representational Similarity Analysis


unit_tests build_docs

This is a Python package for performing representational similarity

analysis (RSA) using

MNE-Python data

structures. The RSA is computed using a “searchlight” approach.

Read more on RSA in the paper that introduced the technique:

Nikolaus Kriegeskorte, Marieke Mur and Peter Bandettini (2008).

Representational similarity analysis - connecting the branches of

systems neuroscience. Frontiers in Systems Neuroscience, 2(4).

https://doi.org/10.3389/neuro.06.004.2008

https://raw.githubusercontent.com/wmvanvliet/mne-rsa/master/doc/rsa.png

Installation


Here is how to install the package as a user:

pip install mne-rsa

Use cases


This is what the package can do for you:

  • Compute DSMs on arbitrary data

  • Compute DSMs in a searchlight across:

    • vertices/voxels and samples (source level)

    • sensors and samples (sensor level)

    • vertices/voxels only (source level)

    • sensors only (sensor level)

    • samples only (source and sensor level)

  • Use cross-validated distance metrics when computing DSMs

  • And of course: compute RSA between DSMs

Supported metrics for comparing DSMs:

  • Spearman correlation (the default)

  • Pearson correlation

  • Kendall’s Tau-A

  • Linear regression (when comparing multiple DSMs at once)

  • Partial correlation (when comparing multiple DSMs at once)

Juicy bits of the API


def compute_dsm(data, metric='correlation', **kwargs)



def rsa_stcs(stcs, dsm_model, src, spatial_radius=0.04, temporal_radius=0.1,

             stc_dsm_metric='correlation', stc_dsm_params=dict(),

             rsa_metric='spearman', y=None, n_folds=1, sel_vertices=None,

             tmin=None, tmax=None, n_jobs=1, verbose=False):



def rsa_evokeds(evokeds, dsm_model, noise_cov=None, spatial_radius=0.04,

                temporal_radius=0.1, evoked_dsm_metric='correlation',

                evoked_dsm_params=dict(), rsa_metric='spearman', y=None,

                n_folds=1, picks=None, tmin=None, tmax=None, n_jobs=1,

                verbose=False):



def rsa_epochs(epochs, dsm_model, noise_cov=None, spatial_radius=0.04,

               temporal_radius=0.1, epochs_dsm_metric='correlation',

               epochs_dsm_params=dict(), rsa_metric='spearman', y=None,

               n_folds=1, picks=None, tmin=None, tmax=None, n_jobs=1,

               verbose=False):



def rsa_nifti(image, dsm_model, spatial_radius=0.01,

              image_dsm_metric='correlation', image_dsm_params=dict(),

              rsa_metric='spearman', y=None, n_folds=1, roi_mask=None,

              brain_mask=None, n_jobs=1, verbose=False):

Example usage


Basic example on the EEG “kiloword” data:

import mne

import rsa

data_path = mne.datasets.kiloword.data_path(verbose=True)

epochs = mne.read_epochs(data_path + '/kword_metadata-epo.fif')

# Compute the model DSM using all word properties

dsm_model = rsa.compute_dsm(epochs.metadata.iloc[:, 1:].values)

evoked_rsa = rsa.rsa_epochs(epochs, dsm_model,

                            spatial_radius=0.04, temporal_radius=0.01,

                            verbose=True)

Documentation


For quick guides on how to do specific things, see the

examples.

Finally, there is the

API reference

documentation.

Integration with other packages


I mainly wrote this package to perform RSA analysis on MEG data. Hence,

integration functions with MNE-Python are

provided. There is also some integration with nipy for

fMRI.

Performance


This package aims to be fast and memory efficient. An important design

feature is that under the hood, everything operates on generators. The

searchlight routines produce a generator of DSMs which are consumed by a

generator of RSA values. Parallel processing is also supported, so you

can use all of your CPU cores.

Development


Here is how to set up the package as a developer:

git clone git@github.com:wmvanvliet/mne-rsa.git

cd mne-rsa

python setup.py develop --user

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

mne-rsa-0.6.tar.gz (25.9 kB view details)

Uploaded Source

Built Distribution

mne_rsa-0.6-py3-none-any.whl (29.6 kB view details)

Uploaded Python 3

File details

Details for the file mne-rsa-0.6.tar.gz.

File metadata

  • Download URL: mne-rsa-0.6.tar.gz
  • Upload date:
  • Size: 25.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.2.0 keyring/23.4.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for mne-rsa-0.6.tar.gz
Algorithm Hash digest
SHA256 fbc6d2f4f34593384f4b45c3a172f4b694e25dc41e4dc023c26cdd018cab75ef
MD5 d4876a96bee07ba017ba26466f24f8f6
BLAKE2b-256 382aa26bf65a1fd339d55a75149996082371ea2b548f4d8addf78f9dc2fc69e1

See more details on using hashes here.

File details

Details for the file mne_rsa-0.6-py3-none-any.whl.

File metadata

  • Download URL: mne_rsa-0.6-py3-none-any.whl
  • Upload date:
  • Size: 29.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.2.0 keyring/23.4.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for mne_rsa-0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 aa72d86098a59465b240180b73574adaf3b13c88f518f39d272d21c301b786c4
MD5 00f7cf6f5bdc5bf1d59cf38ed0c674eb
BLAKE2b-256 db03d71ef8e3bd973f8cf8968efea4fe02f7cfd79c41cd02ea0d7bc1d7e0840d

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