RSA Module
Representational Similarity Analysis (RSA) for DRIADA.
This module provides tools for computing and comparing representational dissimilarity matrices (RDMs) from neural population data.
Representational Similarity Analysis (RSA) for comparing neural representations across conditions, time points, or brain regions.
Module Components
Quick Links
- Core RDM Computation
compute_rdm()- Basic RDM computationcompute_rdm_unified()- Unified API for RDM computationrsa_compare()- Simplified comparison APICore RSA Functions - All core RSA functions
- RDM Comparison
compare_rdms()- Compare two RDMsbootstrap_rdm_comparison()- Statistical comparisonCore RSA Functions - Comparison methods
- Integration with DRIADA
compute_experiment_rdm()- RDM from Experiment objectsrsa_between_experiments()- Cross-experiment comparisonRSA Integration Functions - Integration functions
- Visualization
plot_rdm()- Plot single RDMplot_rdm_comparison()- Plot RDM comparisonsRSA Visualization - Plotting utilities
Usage Example
from driada.rsa import compute_rdm, compare_rdms, plot_rdm
import numpy as np
# Generate example neural data
# Shape: (n_neurons, n_conditions, n_timepoints)
n_neurons, n_conditions, n_timepoints = 50, 10, 100
neural_data = np.random.randn(n_neurons, n_conditions, n_timepoints)
# Prepare neural patterns: average activity per condition
# If you have 3D data (n_neurons, n_conditions, n_timepoints), average over time
# patterns shape: (n_conditions, n_neurons)
patterns = np.mean(neural_data, axis=2) # Average over time
# Compute RDM from neural patterns
rdm = compute_rdm(patterns, metric='correlation')
# Compare with model RDM (must be same size)
model_rdm = np.random.rand(patterns.shape[0], patterns.shape[0])
np.fill_diagonal(model_rdm, 0) # Diagonal should be 0
similarity = compare_rdms(rdm, model_rdm, method='spearman')
# Visualize
plot_rdm(rdm, title="Neural RDM")
# For experiments
from driada.rsa import compute_experiment_rdm
from driada.experiment import load_demo_experiment
# Load sample experiment
exp = load_demo_experiment()
# Method 1: Use behavioral variable as conditions
# Use trial_type which has discrete values
rdm, item_names = compute_experiment_rdm(
exp,
items='trial_type', # Use behavioral variable name
data_type='calcium',
metric='correlation'
)