Changes

Jump to navigation Jump to search
no edit summary
Line 3: Line 3:  
__TOC__
 
__TOC__
   −
An experiment in BrainStream consists of [.DocsSectionsBuildingExperiments#SecExpDef experiment definition tables], [.DocsSectionsBuildingExperiments#SecBlock block files and common block files]. The experiment may also need [.DocsSectionsBuildingExperiments#SecUserFun user defined functions]. The entire experiment is summarized in the [.DocsSectionsBuildingExperiments#SecProjectFile BrainStream Project file]. In the following, each of these components will be discussed.
+
An experiment in BrainStream consists of [[#SecExpDef|experiment definition tables]], [[#SecBlock|block files and common block files]]. The experiment may also need [[#SecUserFun|user defined functions]]. The entire experiment is summarized in the [#SecProjectFile|BrainStream Project file]]. In the following, each of these components will be discussed.
    
<div id="SecExpDef"></div>
 
<div id="SecExpDef"></div>
 
== Experiment definition tables ==
 
== Experiment definition tables ==
   −
The experiment definition tables (.edt) form the core of your BCI [.DocsSectionsGlossary#SecE experiment]. In these tables is specified which actions need to be executed at what time. For each experiment, four different tables are needed: the [.DocsSectionsBuildingExperiments#SecActions Actions table], the [.DocsSectionsBuildingExperiments#SecDataSel DataSelection table], the [.DocsSectionsBuildingExperiments#SecDict Dictionary table], and [.DocsSectionsBuildingExperiments#SecTrigger Trigger table]. Together, the [.DocsSectionsBuildingExperiments#SecExpDef experiment definition tables] are called the [.DocsSectionsGlossary#SecE experiment definition file]. !Brainstream has its own [.DocsSectionsBrainStreamEditor internal editor] for creating the tables, however, for backwards compatibility reasons it also supports excel files where each table is put in a different sheet. In the following, the experiment definition tables will be discussed in more detail.
+
The experiment definition tables (.edt) form the core of your BCI [.DocsSectionsGlossary#SecE experiment]. In these tables is specified which actions need to be executed at what time. For each experiment, four different tables are needed: the [[#SecActions|Actions table]], the [[#SecDataSel|DataSelection table]], the [[#SecDict|Dictionary table]], and [[#SecTrigger|Trigger table]]. Together, the [[#SecExpDef|experiment definition tables]] are called the [.DocsSectionsGlossary#SecE experiment definition file]. !Brainstream has its own [.DocsSectionsBrainStreamEditor internal editor] for creating the tables, however, for backwards compatibility reasons it also supports excel files where each table is put in a different sheet. In the following, the experiment definition tables will be discussed in more detail.
    
<div id="SecActions"></div>
 
<div id="SecActions"></div>
Line 35: Line 35:  
<em>Table 2: Specifying time of action execution<br /></em>
 
<em>Table 2: Specifying time of action execution<br /></em>
   −
The third column (function) can contain one or more functions that will be executed in the order in which they appear in the table. So, in table 1, at the onset of marker mrk1, first function fnc1 and then function fnc2 will be executed. One second after the onset of marker mrk1, fnc3 will be executed. A number of [.DocsSectionsProgrmmersGuide BrainStream functions] can be used in the function column. Alternatively, you can write your own user defined functions, which will be discussed in detail [.DocsSectionsBuildingExperiments#SecUserFun below].
+
The third column (function) can contain one or more functions that will be executed in the order in which they appear in the table. So, in table 1, at the onset of marker mrk1, first function fnc1 and then function fnc2 will be executed. One second after the onset of marker mrk1, fnc3 will be executed. A number of [.DocsSectionsProgrmmersGuide BrainStream functions] can be used in the function column. Alternatively, you can write your own user defined functions, which will be discussed in detail [[#SecUserFun|below]].
   −
The next three columns are optional. The [.DocsSectionsBuildingExperiments#SecFeval feval] column allows for specification of any functions that do not process any of the [[DocsSectionsImportantConcepts#SecVariables|global variables]]. The [.DocsSectionsBuildingExperiments#SecLooptick looptick] column can contain special functions that will be put into a loop by BrainStream. The ''client'' column can be used to direct execution of functions to another remote Matlab session (see [.DocsSectionsParallelMode Parallel Mode]).
+
The next three columns are optional. The [[#SecFeval|feval]] column allows for specification of any functions that do not process any of the [[DocsSectionsImportantConcepts#SecVariables|global variables]]. The [[#SecLooptick|looptick]] column can contain special functions that will be put into a loop by BrainStream. The ''client'' column can be used to direct execution of functions to another remote Matlab session (see [.DocsSectionsParallelMode Parallel Mode]).
   −
Although the order of these first columns in the table is arbitrary, it is best to keep it as described here. All subsequent columns are free to use for an arbitrary number of [.DocsSectionsBuildingExperiments#SecUserFun user defined variables] (more on this later).
+
Although the order of these first columns in the table is arbitrary, it is best to keep it as described here. All subsequent columns are free to use for an arbitrary number of [[#SecUserFun|user defined variables]] (more on this later).
    
<div id="SecTrigger"></div>
 
<div id="SecTrigger"></div>
Line 67: Line 67:  
=== DataSelection table ===
 
=== DataSelection table ===
   −
Sometimes a marker signals a time point around which data should be collected. For example, if you are building an ERP-based BCI, you might want to collect a certain amount of data after each stimulus. For that purpose, each marker can specify a segment of data that should come along with the [[DocsSectionsImportantConcepts#SecEvents|event]]. In the [.DocsSectionsBuildingExperiments#SecActions Actions table], markers calling for [.DocsSectionsGlossary#SecD data selection] have a DATA statement in the time column. The DataSelection table lists the markers that call for data selection and specifies the time period of data selection relative to marker onset.
+
Sometimes a marker signals a time point around which data should be collected. For example, if you are building an ERP-based BCI, you might want to collect a certain amount of data after each stimulus. For that purpose, each marker can specify a segment of data that should come along with the [[DocsSectionsImportantConcepts#SecEvents|event]]. In the [[#SecActions|Actions table]], markers calling for [.DocsSectionsGlossary#SecD data selection] have a DATA statement in the time column. The DataSelection table lists the markers that call for data selection and specifies the time period of data selection relative to marker onset.
    
The DataSelection table consists of a marker column, a begindata column, and an enddata column. Data selection may start before or after onset of the marker, indicated by negative and positive numbers respectively. The end of data selection can be before or after the onset of the marker specified in the marker column, when a new marker arrives (with or without extra timing), or when nothing happens for a specified period of time (timeout). If multiple endtimes, seperated by a comma, are specified, the one that happens first will end the data selection.
 
The DataSelection table consists of a marker column, a begindata column, and an enddata column. Data selection may start before or after onset of the marker, indicated by negative and positive numbers respectively. The end of data selection can be before or after the onset of the marker specified in the marker column, when a new marker arrives (with or without extra timing), or when nothing happens for a specified period of time (timeout). If multiple endtimes, seperated by a comma, are specified, the one that happens first will end the data selection.
Line 219: Line 219:  
Additional possible topics with their keys are listed [.DocsSectionsBlockFile here].
 
Additional possible topics with their keys are listed [.DocsSectionsBlockFile here].
   −
In addition to the listed topics and keys you can add your own topics and keys, as long as they are not used by BrainStream itself. The advantage is that these items are readily accessible for your own written [.DocsSectionsBuildingExperiments#SecUserFun user defined functions] throughout the whole experiment. Information in the block files can be accessed using the [.DocsSectionsProgrmmersGuide#GetBlockVal bs_get_blockvalue] function.
+
In addition to the listed topics and keys you can add your own topics and keys, as long as they are not used by BrainStream itself. The advantage is that these items are readily accessible for your own written [[#SecUserFun|user defined functions]] throughout the whole experiment. Information in the block files can be accessed using the [.DocsSectionsProgrmmersGuide#GetBlockVal bs_get_blockvalue] function.
    
<div id="BlockFileFieldtrip"></div>
 
<div id="BlockFileFieldtrip"></div>

Navigation menu