R Package: BCIFeatR

Published:

Package: BCIFeatR (Brain-Computer Interface Feature Engineering in R) Title: Feature Extraction Toolkit for EEG-based BCI Version: 0.1.0 Author: Yiming Shen License: MIT

Overview

BCIFeatR provides a unified train/test interface for extracting features from multi-channel EEG trial data. It is designed for offline BCI decoding pipelines where a consistent API across diverse feature families simplifies cross-session and cross-subject experimentation.

Supported Feature Methods

MethodDescription
logvarLog-variance of each channel
logvar_pcaLog-variance after PCA projection
CSPCommon Spatial Patterns
FBCSPFilter-Bank CSP
FBCSSPFilter-Bank CSSP (with time-delay embedding)
TSTangent-space projection from covariance matrices
ACM_TSAugmented Covariance Matrix + tangent space
RiemannianRiemannian mean + log-map with optional geodesic/FGDA filtering
ATMAvalanche Transition Matrix

Additional Utilities

  • Covariance estimation — Ledoit–Wolf and OAS shrinkage estimators
  • Riemannian geometry — SPD manifold operations (Riemannian mean, log/exp maps, geodesic filtering, FGDA)
  • Bandpass filtering — Butterworth filter bank and data-driven frequency-band selection
  • Feature selection — Fisher score, PCA, and MIBIF
  • Classifiers — Fisher LDA and elastic-net multiclass classifier

Installation & Usage

# Install dependencies
install.packages(c("geigen", "gsignal"))

# Install from GitHub
remotes::install_github("Yiming-S/BCIFeatR", dependencies = TRUE)

Quick Start

library(BCIFeatR)

# Train — returns extracted features + fitted object
fit <- featEx4Train(x_train, y_train, feature = "CSP",
                    params = list(ncomps = 4L))
X_train <- fit$features

# Test — deterministic transform using the fitted object
X_test <- featEx4Test(x_test, fit$object, feature = "CSP")

View on GitHub