[Eeglablist] Question about importing brain vision recorder files, reference issues
Thomas, Robin
thomasrd at miamioh.edu
Fri Nov 12 05:52:51 PST 2021
Hello all,
My collaborator has an actichamp 32 channel system that records EEG using
Brain Vision Recorder. For … reasons …, the reference channel during
recording is set to CP2 (# 23 on their electrode map). When I import the
data into EEGLAB, the data set has 31 channels in it (which does not
include the CP2 channel that was used as a reference). I want to add back
the reference channel as CP2 with all 0’s in it so that I can re-reference
to the average and get data back into that location offline. There doesn’t
seem to be a way to do that using the gui edit channel locations, or by
using the re-reference option in tools. I have knowledge of the channel
locations in spherical coordinates (theta, phi, radius) that I could
manually input as well (the locations file from the manufacturer has to
many channels in it - it is an xml file - and if I try to read it in using
the edit locations gui, errors abound). I am willing to edit variables
directly using the command line to achieve what I need.
For example, suppose there are 503990 time points (i.e., columns) in the
EEG.data matrix when there are only 31 channels imported. I am thinking
that I could do this:
EEG.data(32,:) = zeros(1,503990);
EEG.nbchan = 32;
Now the EEG structure looks like this:
EEG =
struct with fields:
setname: 'TestHPFilt'
filename: ''
filepath: ''
subject: ''
group: ''
condition: ''
session: []
comments: 'Original file: test9-3-2021.eeg'
nbchan: 32
trials: 1
pnts: 503990
srate: 500
xmin: 0
xmax: 1.0080e+03
times: [1×503990 double]
data: [32×503990 single]
icaact: []
icawinv: []
icasphere: []
icaweights: []
icachansind: []
chanlocs: []
urchanlocs: []
chaninfo: [1×1 struct]
ref: 'common'
event: [1×243 struct]
urevent: [1×243 struct]
eventdescription: {'' '' '' '' '' '' '' '' ''}
epoch: []
epochdescription: {}
reject: [1×1 struct]
stats: [1×1 struct]
specdata: []
specicaact: []
splinefile: ''
icasplinefile: ''
dipfit: []
history: '↵EEG.etc.eeglabvers = '2021.1'; % this tracks which
version of EEGLAB is being used, you may ignore it↵EEG = pop_loadbv(‘path
name deleted for privacy’, 'test9-3-2021.vhdr', [1 503990], [1 2 3 4 5 6 7
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31]);↵
EEG.setname='Test';↵EEG = eeg_checkset( EEG );↵EEG = pop_eegfiltnew(EEG,
'locutoff',0.5,'plotfreqz',1);↵EEG.setname='TestHPFilt';↵EEG =
eeg_checkset( EEG );↵pop_eegplot( EEG, 1, 1, 1);↵EEG = eeg_checkset( EEG );↵EEG
= eeg_checkset( EEG );'
saved: 'no'
etc: [1×1 struct]
run: []
datfile: ''
But then,I can’t seem to use edit channel locations anymore, when I select
that function from the tools menu and accept the default (channels have
known labels), I get one channel (E1) and everything seems missing. Is
there a good way to add the recording reference channel data (all 0’s) into
the data array and re-reference to the average to get data back into CP2
location? I am not opposed to doing all of this ‘by hand’ as in directly
editing using a script, e.g., these fields in the EEG struct.
thank you in advance,
Robin
--
Robin D. Thomas, Ph.D.
Full Professor and Director
Center for Human Psychophysiology
Program in Brain and Cognitive Science
Miami University, Oxford, OH 45056
More information about the eeglablist
mailing list