This tutorial explains how to run regional multivariate pattern analysis (MVPA) using MVPA_Regional.R. The script performs MVPA on specified brain regions, enabling both classification and regression analyses on fMRI data. Regional analysis can be conducted on volumetric (NIfTI) or surface-based neuroimaging data, and allows for separate training and testing subsets.
The script handles both volumetric NIfTI and surface-based data formats. You can evaluate specific regions by using separate training and testing subsets. All parameters are configurable through YAML or R files.
The analysis produces comprehensive outputs including performance maps, prediction tables, and configuration records. Cross-validation options include blocked, k-fold, and two-fold approaches.
The script works with built-in MVPA models from the MVPAModels registry. Data preprocessing includes optional centering/scaling and flexible feature selection methods.
If you have:
train_data.nii
)train_design.txt
)mask.nii
)You can run the regional analysis from the command line:
Rscript MVPA_Regional.R --train_design=train_design.txt \ --train_data=train_data.nii \ --mask=mask.nii \ --model=sda_notune \ --label_column=condition \ --ncores=4 \ --output=my_regional_output
The script supports two primary data modes:
--data_mode=image
)--data_mode=surface
The script supports various classification and regression models:
corclass
: Correlation-based classifier with template matchingsda_notune
: Shrinkage Discriminant Analysis without tuningsda_boot
: SDA with bootstrap resamplingglmnet_opt
: Elastic net with EPSGO parameter optimizationsparse_sda
: SDA with sparsity constraintssda_ranking
: SDA with automatic feature rankingmgsda
: Multi-Group Sparse Discriminant Analysislda_thomaz
: Modified LDA for high-dimensional datahdrda
: High-Dimensional Regularized Discriminant Analysisregister_mvpa_model()
Multiple cross-validation strategies are available:
--block_column=session
Uses a blocking variable (e.g., session) for splitting the data.
Default when no block column is specified; uses random splits.
Specify in the configuration file:
cross_validation: name: "twofold" nreps: 10
In addition to the standard options above, several advanced cross-validation strategies are available:
Specify the desired method in your configuration file by setting the name
field under cross_validation
. For example, to use bootstrap blocked cross-validation:
cross_validation: name: "bootstrap" # Options: "twofold", "bootstrap", "sequential", "custom", "kfold" nreps: 10
Choose the method that best aligns with your data structure and experimental design.
Enable feature selection with:
feature_selector: method: "anova" # Options: "correlation", "t-test", etc. cutoff_type: "percentile" cutoff_value: 0.1
label_column
The label column specifies the target variable:
Example Design File (train_design.txt
):
trial condition subject session 1 Face S01 1 2 House S01 1 3 Face S01 1 4 House S01 1 5 Face S01 2
Instead of specifying all options on the command line, you can use a configuration file.
Example YAML Config File (regional_config.yaml
):
# Data Sources train_design: "train_design.txt" test_design: "test_design.txt" train_data: "train_data.nii" test_data: "test_data.nii" mask: "mask.nii" # Analysis Parameters model: "rf" # Random Forest classifier data_mode: "image" # or "surface" ncores: 4 label_column: "condition" block_column: "session" # Output Options output: "regional_results" normalize_samples: TRUE class_metrics: TRUE # Advanced Options feature_selector: method: "anova" cutoff_type: "percentile" cutoff_value: 0.1 cross_validation: name: "twofold" nreps: 10 # Optional Subsetting: Define different subsets for training and testing train_subset: "subject == 'S01'" test_subset: "subject == 'S02'"
Running with a Config File:
Rscript MVPA_Regional.R --config=regional_config.yaml
After running the script, the output directory (e.g., regional_results/
) contains:
config.yaml
with complete analysis parameters for reproducibility.Example directory structure:
regional_results/ ├── performance_table.txt # Regional performance metrics ├── prediction_table.txt # Prediction details per region ├── regional_metric1.nii # Regional performance map (e.g., accuracy or AUC) ├── regional_metric2.nii # Additional metric maps (if applicable) └── config.yaml # Analysis configuration
For regression analyses, different metrics (e.g., r2.nii
, rmse.nii
, spearcor.nii
) will be output.
--normalize_samples=TRUE
for improved model performance.--ncores
to leverage multi-core systems.MVPA_Regional.R provides comprehensive regional MVPA analysis capabilities. It handles both volumetric and surface-based data formats with flexible configuration through command line or config files. The tool generates detailed performance maps and prediction tables, while incorporating robust cross-validation and feature selection to ensure reliable results.
Next Steps:
- Experiment with various models (--model=rf
, --model=sda_notune
).
- Test different feature selection methods.
- Evaluate both classification and regression scenarios.
- Optimize processing using parallel computation.
Happy regional analysis!
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.