Reading BioSemi data with BESA

From BESA® Wiki
Jump to: navigation, search
Module information
Modules BESA Research Basic or higher
Version BESA Research 5.2.2 or higher

This document describes how to handle trigger information in BioSemi data in BESA versions later than June 2005. Some important changes have been made that may lead to changes to trigger coding and thus require modification of your ERP paradigms.


In BioSemi data, trigger event information is stored in the STATUS channel. The values on this channel depend on how stimuli were defined in the experimental setup. The BESA reader looks for changes on this channel in order to define triggers. The difficulty for reading these data with BESA lies in the variety of ways in which triggers can be defined:

  • If all 16 bits of trigger information are normally zero, and an event is defined by a change to a value, and then back to zero, the onset of a change away from zero will define the trigger latency, and the value on the channel will define the trigger code. (positive logic, zero baseline).
  • Some labs don’t use all 16 bits to define values. The unused bits are sometimes switched on by default. If the reader is not able to determine which bits are unused, you may need to specify them (baseline value).
  • Some labs use negative logic (trigger bits change from 1 to 0 to define an event). It is important to get this right! If the reader assumes positive logic, trigger latencies can be wrong, because the reader can interpret the end of a trigger pulse as the intended location of the event.
  • In some recordings, trigger bits overlap in time. How should the overlap be handled? Should the value record the increment in value (i.e. the trigger value is the change that occurs) or should it record the absolute value?

If triggers do not get defined as expected, you can make a file, “TriggerLogic.txt”, that specifies how the BESA reader should interpret the STATUS channel.


To help understand what is going on, display the STATUS channel on its own (create a montage that only displays this channel; alternatively, select polygraphic channels. Turn all filters off, and adjust the amplitude scaling (e.g. to 20 µV) so that jumps on the channel are visible.

  • Has the signal become invisible? Then you may be using negative logic, or you may not be using all 16 data bits. You can make the signal visible by switching on a high-pass filter or by selecting “Filters/Baseline correction over whole trace/segment”. For the following step DO NOT DO THIS, because the displayed voltage values are changed by the settings!
  • Click the right mouse and drag over a time range to display maximum and minimum values on the channel. You can do this even if you can’t see the data signal. In this way you can determine the baseline, and you can see what changes are occurring on the channel give rise to a particular trigger value.

New properties (November 2006)

  1. The trigger channel is now displayed as a data channel. In BESA the channel is the last (lowest) channel in the display. To help diagnose your trigger problems, it can be useful to display just this one channel, and turn off the filters. Then a right click and drag over a time range shows the actual measured values on this channel.
  2. Trigger detection is based on two parameters, the "baseline level" and the "logic", positive or negative.
    • "Baseline level"; defines the resting value on the trigger channel. Events are found if the value on the trigger channel changes, and the value is different from the baseline level. The default baseline level is 0.
    • "Positive logic": The trigger value displayed by BESA is defined as the difference between the value read from the trigger channel and the baseline level. The default is "positive logic".
    • "Negative logic": The trigger value is defined as the value on the trigger channel subtracted from the baseline level.
    • If the very first value on the trigger channel is 65535 (all 16 bits are set), negative logic is assumed.
  3. You can override the defaults by preparing a text file "TriggerLogic" (or "TriggerLogic.txt") that contains the baseline level and logic direction in a single line. Examples:
    • 65535 Negative
      • all bits are set when there are no events
      • bits are set to 0 to define an event.
    • 65280 Positive
      • the left 8 bits are set all the time (65535 - 255 = 65280).
      • bits are set to 1 to define an event.
    • 0 Positive
      • this is usually the default setting.
      • it is only required in the unlikely case that you want to use positive logic, and the first trigger occurs at the first data sample, and has the value 65535.
  4. The file "TriggerLogic" (or "TriggerLogic.txt") can be placed in the data directory if you only want to override the settings for the data in this directory. The file can be placed in the "System\BioSemi" subdirectory of the BESA installation to redefine global defaults. A local version of the file always takes priority over the global version.
  5. Please note: if a database entry exists for the file, and you have already read it with an older version of BESA, the previous trigger values will be unchanged. To reread the trigger values:
    • Open the file.
    • Type Ctrl-L.
    • In the resulting dialog, press the "Clear Events" or "Clear DB" button.
    • The file will be closed.
    • Reopen the file.