-
Notifications
You must be signed in to change notification settings - Fork 2
/
erfosc_analysis_control_latency.m
68 lines (56 loc) · 1.69 KB
/
erfosc_analysis_control_latency.m
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
%% do everything independently per subject, do permutation statistics
clear
erf_osc_datainfo;
% dum=[];
for k=1:32
s = hanning(100)';
% load gammaPow and reaction times
load(sprintf('/project/3011085.02/analysis/behavior/sub-%03d/sub-%03d_rt.mat', allsubs(k), allsubs(k)), 'rt');
load(sprintf('/project/3011085.02/analysis/freq/sub-%03d/gamma_virtual_channel.mat', allsubs(k), allsubs(k)), 'gammaPow');
g=gammaPow';
% model the signal
fs = 1200;
dt = 1/fs;
%determine the amount of delay in samples for each response.
delay = round(rt/dt);
maxlength = 1264; %max delay over all subjects
for n=1:numel(rt)
dsignal(n,:) = [zeros(1,delay(n)), s, zeros(1, maxlength-delay(n))];
end
design = [g, ones(size(g))];
x = dsignal-repmat(mean(dsignal,1), [numel(rt),1]);
cfg=[];
cfg.glm.statistic = 'beta';
cfg.glm.standardise = false;
tmp = statfun_glm(cfg, x', design');
dum{k} = dsignal;
% dum = [dum; dsignal];
beta{k} = tmp.stat(:,1);
clear dsignal
end
betas=[];
betas.trial(1,:,:) = cat(2, beta{:})';
betas.trial = permute(betas.trial, [2,1,3]);
betas.label{1} = 'chan1';
betas.time = dt:dt:size(betas.trial,3)*dt;
betas.dimord = 'rpt_chan_time';
ref = betas;
ref.trial = ref.trial*0;
%%
cfgs=[];
cfgs.statistic = 'ft_statfun_depsamplesT';
cfgs.design(1,1:64) = [ones(1,32) 2*ones(1,32)];
cfgs.design(2,1:64) = [1:32 1:32];
cfgs.ivar=1;
cfgs.uvar=2;
cfgs.alpha = 0.05;
cfgs.method = 'montecarlo';
cfgs.clusterstatistic = 'maxsum';
cfgs.correctm = 'cluster';
cfgs.numrandomization = 10000;
cfgs.correcttail = 'prob';
cfgs.neighbours = [];
cfgs.parameter = 'trial';
cfgs.clusteralpha = 0.05;
stat=ft_timelockstatistics(cfgs, betas, ref);
save('/project/3011085.02/analysis/stat_control_simulation.mat', 'stat')