Jump to content

Contributions:CCEPFilter: Difference between revisions

From BCI2000 Wiki
No edit summary
No edit summary
Line 41: Line 41:
==Parameters==
==Parameters==
===<u>''General Configuration''</u>===
===<u>''General Configuration''</u>===
====ChannelThreshold====
Magnitude threshold which defines a CCEP. Specify the units, such as uV or mV. The surpassing of this threshold is calculated with the CCEPEpochLength data (after the specified TriggerLatencyLength) after being subtracted from the average baseline value (the data during the BaselineEpochLength). If the threshold is surpassed, the channel is yellow. A horizontal bar is also displayed to show where the signal surpasses the threshold. If both the high and low thresholds are surpassed, both bars are displayed. If the signal stays below the threshold, it stays white.


====OnsetExpression====
====OnsetExpression====
Expression that defines the stimulus onset. See the [[User Reference:Expression Syntax | Expression syntax page]] for more information. This expression should be true when the stimulation is triggered.
Expression that defines the stimulus onset. See the [[User Reference:Expression Syntax | Expression syntax page]] for more information. This expression should be true when the stimulation is triggered.
====Stimulator====
An optional setting that configures parameters for a certain device. Currently, only the NeuroOmega is implemented. This setting helps fills in other settings that are "auto" (such as TriggerLatencyLength), and configures the visualization to show which channels are stimulating in light blue. Keep it as auto if the device is not listed.


===<u>''Duration settings''</u>===
===<u>''Duration settings''</u>===
Line 56: Line 52:
====BaselineEpochLength====
====BaselineEpochLength====
The duration of desired baseline data. This baseline data is helpful for visualizing the data before the stimulation, and is also used to calculate the average signal value from which the threshold is calculated.
The duration of desired baseline data. This baseline data is helpful for visualizing the data before the stimulation, and is also used to calculate the average signal value from which the threshold is calculated.
====TriggerLatencyLength====
Approximate latency of the hardware stimulation from the OnsetExpression. The timing should surpass the stimulation artifact of the signal, so the CCEP is accurately calculated. If the length is too small, then the scaling of the visualization will be off, and the calculation of detecting CCEPs will also be inaccurate.
====CCEPEpochLength====
====CCEPEpochLength====
Duration of time after the baseline and latency. Essentially the amount of time that is needed to view the CCEP.
Duration of time after the baseline and latency. Essentially the amount of time that is needed to view the CCEP.

Revision as of 20:57, 10 January 2025

An example video showing one channel of the CCEP filter.

Introduction

Cortico-cortical evoked potentials (CCEPs) are generated as a response to stimulation within the cortical zone. To best view this response, the CCEP filter time locks the signal to the stimulation and allows the user to view the CCEPS from every recording electrode. There are many adaptable parameters to include flexibility for a variety of experiments.

Location

http://www.bci2000.org/svn/trunk/src/contrib/SignalProcessing/CCEPFilter

Versioning

Authors

  • Will Engelhardt (engelhardt@neurotechcenter.org)

Version History

  • 05/17/2023 - First working version

Source Code Revisions

  • Initial development: 7199
  • Tested under: 7303
  • Known to compile under: 7364
  • Broken since: --

Installation

See the Installation section on the Python Visualization page to see how to install the necessary packages and how to run demo files! Once that is all set up, you can return to this page to understand the specific parameters for the CCEPs.

Settings

Max Windows

The maximum amount of windows displayed. If you desire all the transmitted channels to be shown, set this max value to the number of channels or greater.

x0

The minimum shown value of the x-axis for all windows, in milliseconds. You can set this to a negative value to show baseline data before the CCEP.

Hold Plots

The number of plots to keep on a window. Set to 0 to hold all plots, until manually cleared with "Clear Figures".

Average CCEPs

Enable to display the average of the plots in addition to the single trials.

Sort Channels

Disable to keep the order of the channels unchanged. If there are more transmitted channels than windows shown, the shown windows will simply be the first in the list.

Save figures on refresh

Enable to make sure the visualizations are never lost, as every time the plots are cleared they would first be saved. This can get cumbersome with many saved files.

Onset Period

This number minus one is the number of plots to skip when visualizing. For example, if a stimulation burst causes the OnsetExpression to be true 10 times during a single burst, set this to 10 (it will skip the 9 pulses after the first pulse).


Parameters

General Configuration

OnsetExpression

Expression that defines the stimulus onset. See the Expression syntax page for more information. This expression should be true when the stimulation is triggered.

Duration settings

These parameters all should have units of time (e.g. milliseconds), or auto.

BaselineEpochLength

The duration of desired baseline data. This baseline data is helpful for visualizing the data before the stimulation, and is also used to calculate the average signal value from which the threshold is calculated.

CCEPEpochLength

Duration of time after the baseline and latency. Essentially the amount of time that is needed to view the CCEP.

Counting settings

These parameters must be integers, they specify a quantity to count.

EpochsToAverage

Number of times the OnsetExpression is met to average together. The resulting average will then be displayed once the number is met. This is helpful if the OnsetExpression is frequently true within a short period of time.

OnsetPeriod

Count every number of times the OnsetExpression is evaluated true. In other words, skip every OnsetPeriod - 1. This is helpful if you want to visualize a time range in which the OnsetExpression is met multiple times. If you are also averaging the plots, it will only average the signals specified by this period.

See also

User Reference:Filters, Contributions:SignalProcessing, Python Visualizations, Contributions:PAC