Data Structures

Minimal Data Specifications

Data need to be in continuous form. We use the default format of EEG.

The minimal required fields (the usual EEGlab-structure) are:

  • EEG.data (chan x time)
  • EEG.times (vector of time points in milliseconds)
  • EEG.srate (samplingrate in Hz)
  • EEG.event (structure of events, same structure as in EEGlab)
    • event.type (e.g. ‘stimulus’ or ‘keypress’)
    • event.latency (in samples)
    • event.customField (customField() = name of your variable, e.g. color(). The content should be in this case a string ‘red’ or, for continuous variables, a number)

Fields of EEG.unfold()

splines
all information on the splines are saved in here (see below). Each spline is added at splines{end+1}
formula
contains all formulas specified in uf_designmat()
X
The designmatrix. This can be used for ‘classical’ mass-univariate linear modeling (uf_epoch() and uf_glmfit_nodc())
variabletypes
Type of each variable/predictor, can be ‘categorical’, ‘interaction’, ‘continuous’ and ‘spline’
variablenames
Name of each variable/predictor without modifiers for level / spline modifier (e.g. factorA, sac_amplitude)
colnames:
The name of each column of X(). This field contains the modifier for level and spline (e.g. factorA_face or sac_amplitude_3.5)
cols2variablenames
A list connecting the columns of X() with the variables.
cols2eventtypes
A list connecting the columns of X() with possibly multiple events.
eventtypes
The names of the events that are modeled. Only interesting if multiple different events were modeled.
Xdc
Timeexpanded designmatrix [nsamples x (npredictors x ntimebasisfunctions)]. Output of uf_timeexpandDesignmat(). If you need to modify this, have a look at uf_designmat_addcol() to see which fields should be modified.
timebasis
The basis-function of the timeexpand for the deconvolution. This matrix could be the identity matrix in case of “stick”/dirac-functions. Used only for splines/fourier time-basis functions
times: [1×20 double]
A vector containing the time in seconds over what range the timeexpand occurred. This encodes the time of the resulting ERP
Xdc_terms2cols
A list connecting the columns of Xdc() with columns of X()
beta_dc
deconvolved betas. Output of uf_glmfit(). This is the main outcome of this toolbox
beta_nodc
non-deconvolved betas. This is a mass univariate fit where each timepoint and each electrode were fitted independently. Output of uf_glmfit_nodc()
channel
for which channel the deconvolved betas have been calculated
effects_mean
In case of effects coding contains the mean of the designmatrix columns

Fields of ufresult()

the ufresult structure is the output of uf_condense(). This function removes the time-splines if used and possibly evaluates splines at (automatically) specific quantiles.

unfold
same as EEG.unfold
times
same as ufresult.unfold.basistime, thus the epoch-time in s
chanlocs
same as EEG.chanlocs
param
a structure defining for each beta-value which event, what predictor, which variable-type and what the corresponding value is.
beta_nodc
the betas without deconvolution [channel x time x predictors]
beta
the betas with deconvolution [channel x time x predictors]

Fields of unfold.splines()

paramValues
the parameter values of each event, e.g. for saccade amplitude: [1.3, 2.3, 6, 1.2 …]
nSplines
the number of splines used for modelling
knots
the knot sequence. This is necessary to evaluate splines at a later point in time
splineFunction
the function used to define the spline, could be a custom function.
removedSplineIdx
The index of the spline which was removed during spline-generation. It is necessary to remove one spline in order to not have any collinearities. Depending on configuration either a middle or the first spline is removed.
X
the entries of X times the spline (i.e. the subset of X)
name
name of the spline
colnames
column names that the spline will get in EEG.unfold.X