LocalGlobal Details
Contents
Experiment Settings
Not that the followings are default settings, and the actual details are in the each paper.
Stimuli: x=800 Hz, Y=1600 Hz, 50 ms duration No raise/fall time
Trial: ISI = 150 ms (thus SOA = 200 ms), ITI = [1.8 2.0] s
Block: 10 types, randomized order
1 block contains 100 trials (20 habituation, 64 standards, and 16 deviants).
Tone Index:
1. xxxxx
2. xxxxY
3. xxxx_
4. YYYYY
5. YYYYx
6. YYYY_
Block Index:
1. xxxxx with deviant xxxxY
2. xxxxx with omission xxxx_
3. xxxxY with deviant xxxxx
4. xxxxY with omission xxxx_
5. pure omission xxxx_
6. YYYYY with deviant YYYYx
7. YYYYY with omission YYYY_
8. YYYYx with deviant YYYYY
9. YYYYx with omission YYYY_
10. pure omission YYYY_
Data format
Data can be download from Brain/MINDS data portal.
One zip file has one date data which consists of a session.
For Monkey Ji and Rc:
‘ECoG_ch**.mat‘ had ECoG data of electrode. ** means number of electrode. Sampling rate was 1 kHz.
‘ECoGTime.mat‘ had time of ECoG data.
‘Event.mat‘ had information of condition.
‘Eye.mat‘ had eye tracking data recorded from right eye.
‘Audio.mat‘ had a audio data.
For Monkey Yo, Ca and Rm:
‘ECoG_ch**.mat‘ had ECoG data of electrode. ** means number of electrode. Sampling rate was 1017.25 Hz.
‘TriG_ch2.mat‘ had information of condition.
‘Aud_ch1.mat‘ had a audio data.
Sample code for Monkey Ji and Rc
clear
addpath(genpath('D:\MATLAB_toolboxes\eeglab14_1_1b'))
cd G:\Local_global_marmoset
Subject='Ji';
% Subject='Rc';
Expt_name=sprintf('%s20*',Subject);
Expt=ls(Expt_name);
Expt_num=size(Expt,1);
FS=1000; %Hz
DS=1;
Channel_num=96;
%%
Data_all=[];
Time=[];
Stim_time=[];
Block_idx=[];
Trial_idx=[];
Expt_idx=[];
Time_offset=0;
for expt=1:Expt_num
cd(Expt(expt,:))
load Event %allBlockIdx allTrialIdx StimOn
fprintf(1,'>> Expt%d/%d: %s (%.1f min)(%d trials)\n',expt, Expt_num,Expt(expt,:),length(EventTime)/1000/60,length(StimOn))
Data=zeros(Channel_num,length([1:DS:length(EventTime)]));
for ch=1:Channel_num
FN=sprintf('ECoG_ch%d',ch);
load(FN)
str=sprintf('Data(ch,:)=ECoGData_ch%d(1:DS:end);',ch);
eval(str)
end
Data_all=[Data_all Data];
Time=[Time EventTime(1:DS:end)/FS+Time_offset];
Stim_time=[Stim_time StimOn/FS+Time_offset];
Block_idx=[Block_idx allBlockIdx];
Trial_idx=[Trial_idx allTrialIdx];
Expt_idx=[Expt_idx ones(1,length(allTrialIdx))*expt];
Time_offset=Time(end)+DS/FS;
clear Data EventTime StimOn
cd ..
end
Sample code for Monkey Yo, Ca and Rm
clear
addpath(genpath('D:\MATLAB_toolboxes\eeglab14_1_1b'))
cd G:\Local_global_marmoset
Subject='Ca';
% Subject='Rm';
% Subject='Yo';
Expt_name=sprintf('%s20*',Subject);
Expt=ls(Expt_name);
Expt_num=size(Expt,1);
FS=1017.25; %Hz
DS=1;
Channel_num=96;
Trial_per_block=100;
%% Block info
Block_type_name{1}='xxxxx with deviant xxxxY';
Block_type_name{2}='xxxxx with omission xxxx_';
Block_type_name{3}='xxxxY with deviant xxxxx';
Block_type_name{4}='xxxxY with omission xxxx_';
Anag_xx=40;
Anag_xY=80;
Anag_xo=120;
%%
Data_all=[];
Block_idx=[];
Trial_idx=[];
Expt_idx=[];
Stim_idx=[];
Idx_offset=0;
for expt=1:Expt_num
cd(Expt(expt,:))
%% Event
load('TriG_ch2.mat')
%trim Trig if longer than wave
load('ECoG_ch1');
if length(Trig)>length(wave)
Trig=Trig(1:length(wave));
end
%downsample
Trig=Trig(1:DS:end);
Onset=find(diff(Trig)>10);
Nope=find(Trig(Onset)>10);
Onset(Nope)=[];
Trial_idx_expt=round(Trig(Onset+10)/40); %1: xxxxx; 2: xxxxY; 3:xxxxo
Block_idx_expt=zeros(1,length(Onset));
%%% Could be only 3 blocks
Block_per_expt=ceil(length(Block_idx_expt)/Trial_per_block);
for block=1:Block_per_expt
if block<Block_per_expt
XX=Trial_idx_expt([1:Trial_per_block]+(block-1)*Trial_per_block);
else % the last block could be short
XX=Trial_idx_expt((1+(block-1)*Trial_per_block):end);
end
Stand=XX(1);
Dev=find(XX~=Stand);
Dev=XX(Dev(1));
if Stand==1 & Dev==2
B_type=1;
elseif Stand==1 & Dev==3
B_type=2;
elseif Stand==2 & Dev==1
B_type=3;
elseif Stand==2 & Dev==3
B_type=4;
else
B_type=-1;
end
if block<Block_per_expt
Block_idx_expt([1:Trial_per_block]+(block-1)*Trial_per_block)=B_type;
else
Block_idx_expt((1+(block-1)*Trial_per_block):end)=B_type;
end
end
Trial_idx=[Trial_idx Trial_idx_expt];
Block_idx=[Block_idx Block_idx_expt];
Expt_idx=[Expt_idx ones(1,length(Onset))*expt];
Stim_idx=[Stim_idx Onset+Idx_offset];
Idx_offset=Idx_offset+length(Trig);
%%
fprintf(1,'>> Expt %d/%d: %s (%d trials)\n',expt, Expt_num,Expt(expt,:),length(Onset))
Data=zeros(Channel_num,length(Trig));
for ch=1:Channel_num
FN=sprintf('ECoG_ch%d',ch);
load(FN)
Data(ch,:)=wave(1:DS:end);
end
Data_all=[Data_all Data];
clear Data wave
cd ..
end
Time=[0:size(Data_all,2)-1]/FS*DS;
Stim_time=Time(Stim_idx);
