Skip to content
Kevin Tan edited this page Dec 7, 2023 · 174 revisions

⚠️   Code not yet validated or peer-reviewed for general use
⚠️   Wiki is under construction

ElectroCUDA – preprocessing & analysis for electrophysiology. Core features include noise-resistant signal processing, robust statistics & extensive hardware acceleration (GPU/x86).

ElectroCUDA is intended for any multichannel field potential recordings (LFP/EEG/MEG), but development has focused on intracranial EEG (ECoG/sEEG) thus far.

Code was developed using data from 100+ neurosurgical patients (ECoG/sEEG) & 25+ scalp EEG subjects. See Tan et al., 2022 for peer-reviewed ECoG results using a very early version of electroCUDA

Design principles

Open science compliance guarantees transparent & replicable workflows

Noise-resistant signal processing improves data quality & SNR

Robust statistics & machine learning improve analytic inference

Highly automated routines mitigate human error & bias

Modular programming facilitates easy interoperability with other software

Layered hardware acceleration dramatically improves compute performance & involves some combination of: GPU vectorization, CPU vectorization, CPU thread parallelization & CPU process parallelization

Setup and usage

Code is Matlab-based with calls to compiled CUDA, C/C++ & Fortran binaries. User-friendly wrappers abstract away all non-Matlab operations.

Code is compute-intensive & designed for workstations or HPC nodes (gaming PCs might suffice). GPU acceleration can be disabled in most functions as it requires an Nvidia CUDA GPU.

Preprocessing pipelines

Single-subject analyses

Group analyses

Visualization

Currently documented are functions for plotting cortical meshes, electrodes, and summary statistics. More to come.

Acknowledgements

Algorithms

ElectroCUDA uses code and algorithmic concepts from the following colleagues. I owe them many thanks:

Data

ElectroCUDA was developed using data from:

Funding

We are grateful for public financial support from the United States government. This work is supported by National Science Foundation Graduate Research Fellowship DGE-1650604 and Department of Defense Grant 13RSA281.

Legal

electroCUDA is free and open-source under GNU GPL 3.0

This code is for research purposes only and is not intended for clinical or medical use.

Use this code at your own risk. Users assume full responsibility for any eventuality related to this content.

USE AND DISTRIBUTION OF THIS SOFTWARE MAY BE SUBJECT TO UNIVERSITY OF CALIFORNIA INTELLECTUAL PROPERTY RIGHTS AND UNITED STATES MANDATES FOR FEDERALLY-FUNDED RESEARCH.

THE CONTENT HEREIN IS PROVIDED "AS IS" WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. IN NO EVENT SHALL THE AUTHORS AND CONTRIBUTORS OF CONTENT HEREIN BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES AND/OR ADVERSE OUTCOMES RELATED IN ANY WAY TO THE USE OF THIS CONTENT. ANY USE OF THIS CONTENT IMPLIES ACCEPTANCE OF THESE TERMS.