Single trial EEG pipeline at the Neurocognitive Psychology Lab, Humboldt-Universität zu Berlin
Project description
hu-neuro-pipeline
Single trial EEG pipeline at the Neurocognitive Psychology lab, Humboldt-Universität zu Berlin
Based on Frömer, R., Maier, M., & Abdel Rahman, R. (2018). Group-level EEG-processing pipeline for flexible single trial-based analyses including linear mixed models. Frontiers in Neuroscience, 12, 48. https://doi.org/10.3389/fnins.2018.00048
1. Installation
1.1 For Python users
Install the pipeline via pip
from the Python Package Index (PyPI):
python3 -m pip install hu-neuro-pipeline
1.2 For R users
First install reticulate and Miniconda for being able to import Python packages into R:
install.packages("reticulate")
reticulate::install_miniconda()
Then install the pipeline via pip
from the Python Package Index (PyPI):
reticulate::py_install("hu-neuro-pipeline", pip = TRUE, python_version = "3.8")
2. Usage
3. Examples
3.1 For Python users
Here is a fairly minimal example for a (fictional) N400/P600 experiment with two experimental factors: semantics
(e.g., related versus unrelated words) and emotional context
(e.g., emotionally negative versus neutral).
from pipeline import group_pipeline
trials, evokeds, config = group_pipeline(
vhdr_files='Results/EEG/raw',
log_files='Results/RT',
output_dir='Results/EEG/export',
ocular_correction='Results/EEG/cali',
triggers=[201, 202, 211, 212],
skip_log_conditions={'semantics': 'filler'},
components={'name': ['N400', 'P600'],
'tmin': [0.3, 0.5],
'tmax': [0.5, 0.9],
'roi': [['C1', 'Cz', 'C2', 'CP1', 'CPz', 'CP2'],
['Fz', 'FC1', 'FC2', 'C1', 'Cz', 'C2']]},
average_by=['semantics', 'context', 'semantics/context'])
In this example we have specified:
-
The paths to the raw EEG data, to the behavioral log files, to the desired output directory, and to the BESA files for ocular correction
-
Four different EEG
triggers
corresponding to each of the four cells in the 2 × 2 design -
The fact that log files contain additional trials from a semantic
'filler'
condition (which we want to skip because they don't have corresponding EEG triggers) -
The a priori defined time windows and regions of interest for the N400 and P600
components
-
The log file columns (
average_by
) for which we want to obtain by-participant averaged waveforms (i.e., for all main and interaction effects)
3.2 For R users
Here is the same example as above but for using the pipeline from R:
# Import Python module
pipeline <- reticulate::import("pipeline")
# Run the group level pipeline
res <- pipeline$group_pipeline(
vhdr_files = "Results/EEG/raw",
log_files = "Results/RT",
output_dir = "Results/EEG/export",
ocular_correction = "Results/EEG/cali",
triggers = c(201, 202, 211, 212),
skip_log_conditions = list("semantics" = "filler"),
components = list(
"name" = list("N400", "P600"),
"tmin" = list(0.3, 0.5),
"tmax" = list(0.5, 0.9),
"roi" = list(
c("C1", "Cz", "C2", "CP1", "CPz", "CP2"),
c("Fz", "FC1", "FC2", "C1", "Cz", "C2")
)
),
average_by = c("semantics", "context", "semantics/context")
)
# Extract results
trials <- res[[1]]
evokeds <- res[[2]]
config <- res[[3]]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for hu_neuro_pipeline-0.4.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 22d526a3451978cf802f40a92e0bbd872290bc6f2d71da671093525977804efe |
|
MD5 | 3271397abba62e884407eefad190f885 |
|
BLAKE2b-256 | 88b6a9796b0e3b61dc3e4c926345cf319d76f3cde2a5f8dfb65d75862e964917 |