Defines the underlying pipeline structure for reproducible
neuroscience, adopted by 'RAVE' (reproducible analysis and visualization
of intracranial electroencephalography); provides high-level class
definition to build, compile, set, execute, and share analysis pipelines.
Both R and 'Python' are supported, with 'Markdown' and 'shiny' dashboard
templates for extending and building customized pipelines. See the full
documentations at < https://rave.wiki>; to cite us,
check out our paper by Magnotti, Wang, and Beauchamp (2020,
The goal of ravepipeline is to provide pipeline infrastructure for Reproducible Analysis and Visualization of Intracranial Electroencephalography (RAVE). The package defines high-level class to build, compile, set, execute, and share neuroscience pipelines. Both R and Python are supported with Markdown and shiny dashboard templates for extending and building customized pipelines.
We offers several built-in pipelines, see repository rave-ieeg/rave-pipelines for details.
More documentation is available at rave.wiki
Please check out our full installation guide on how to install 'RAVE'
For full features, please install additional packages:
# install.packages(c("remotes", "visNetwork", "rpymat"))
# Install development version
remotes::install_github("dipterix/ravepipeline")
# Download built-in pipelines
ravepipeline::ravepipeline_finalize_installation()
# Configure Python environment if needed
rpymat::configure_conda()
This example requires you to download RAVE demo data, which comes with the full installations.
The built-in pipelines include Power Explorer, a powerful tool to group stimuli for time-frequency analysis and visualization. Here's an example of how to use it on our demo data set:
https://github.com/user-attachments/assets/75fe0f88-58ca-46ee-a831-f22abbaa5343
library(ravepipeline)
# list all the pipelines
pipeline_list()
# Run power explorer
power_explorer <- pipeline("power_explorer")
# List all runnable pipeline targets
power_explorer$target_table
# set inputs for analysis
power_explorer$set_settings(
project_name = "demo",
subject_code = "DemoSubject",
loaded_electrodes = "13-16,24",
epoch_choice = "auditory_onset",
epoch_choice__trial_starts = -1L,
epoch_choice__trial_ends = 2L,
reference_name = "default",
baseline_settings = list(
window = list(c(-1, -0.5)),
scope = "Per frequency, trial, and electrode",
unit_of_analysis = "decibel"),
analysis_electrodes = "14",
first_condition_groupings = list(
list(label = "audio_visual", conditions = c("known_av", "meant_av", "last_av", "drive_av")),
list(label = "auditory_only", conditions = c("last_a", "drive_a", "known_a", "meant_a")),
list(label = "visual_only", conditions = c("last_v", "drive_v", "known_v", "meant_v"))),
condition_variable = "Condition",
analysis_settings = list(
list(label = "AudStart", event = "Trial Onset",
time = 0:1, frequency = c(70L, 150L))),
enable_second_condition_groupings = FALSE,
enable_custom_ROI = FALSE,
omnibus_includes_all_electrodes = TRUE
)
# Run pipeline to obtain the power of frequency over time
time_freq_data <- power_explorer$run("by_frequency_over_time_data")
# Load up custom pipeline functions
pipeline_functions <- power_explorer$shared_env()
# plot the result
pipeline_functions$plot_by_frequency_over_time(time_freq_data)
# visualize the results
power_explorer$visualize(glimpse = TRUE, aspect_ratio = 10)