forked from KuperbergLab/MEG_scripts
-
Notifications
You must be signed in to change notification settings - Fork 0
/
sensor_erpWin2R.m
110 lines (89 loc) · 3.22 KB
/
sensor_erpWin2R.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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
function sensor_erpWin2R(exp,subjGroup,listPrefix,t1,t2,condList,proj,chanGroupFileName)
%ex sensor_erpWin2R('MaskedMM_All','sc','sc.meg.all',350,450,{'Unrelated','Direct'},'projon','quad48Mid')
%This script assumes a channel grouping file has been created with
%setupEEGChanGroups.m
%This script baselines the data with a hard-coded 60 sample baseline window
sample1 = round(t1/1.6666 + 61);
sample2 = round(t2/1.6666 + 61);
dataPath = '/autofs/cluster/kuperberg/SemPrMM/MEG/';
subjList = (dlmread(strcat(dataPath,'scripts/function_inputs/',listPrefix, '.txt')))';
numSubj = size(subjList,2);
baselineV = 1:60;
numChan = 70;
chan = [307:366 370:379]; %Not including the STI channels and RMAST 1/11/13
dataV = [];
%load chanGroupArray
load(strcat('/autofs/cluster/kuperberg/SemPrMM/MEG/scripts/function_inputs/EEG_Chan_Names/',chanGroupFileName,'.mat'))
%add chanNum info
chanNumV = cell(1,numChan);
for x = 1:numChan
chanNumV{x} = x;
end
chanGroupArray{end+1} = chanNumV;
%add subjGroup info
sGroupV = cell(1,numChan);
sGroupV(:) = {subjGroup};
chanGroupArray{end+1} = sGroupV;
%Now make the big data array
flag = 0;
%load allSubjData cell array
load(strcat(dataPath, 'results/sensor_level/ave_mat/', listPrefix, '_', exp, '_',proj,'.mat'));
numCond= size(condList,2);
totalCond = size(allSubjData{1}.evoked,2);
%find condition indices
condCodeList = zeros(numCond,1);
for c = 1:numCond
condLabel = condList{c};
for y=1:totalCond
if strcmp(condLabel,allSubjData{1}.evoked(y).comment)
condCodeList(c) = y;
end
end
end
%fill in data
for c = 1:numCond
condLabel = condList{c};
condCode = condCodeList(c);
for s = 1:numSubj
subjStr = allSubjData{s};
numSample = size(subjStr.evoked(1).epochs,2);
%%For each condition, get the evoked data out
epData = subjStr.evoked(condCode).epochs(:,:);
baseline = mean(epData(:,baselineV),2);
baseline = repmat(baseline,1,numSample);
epData = epData - baseline;
epDataM = squeeze(mean(epData(chan,sample1:sample2),2));
dataV = [dataV;epDataM*1e6];
%%Get trial info
tempSubj = cell(1,numChan);
tempSubj(:) = {strcat(subjGroup,int2str(subjList(s)))};
tempExp = cell(1,numChan);
tempExp(:) = {exp};
tempCond = cell(1,numChan);
tempCond(:) = {condLabel};
tempArray = chanGroupArray;
tempArray{end+1} = tempSubj;
tempArray{end+1} = tempExp;
tempArray{end+1} = tempCond;
%%append copy to all array
%%on the first run, need to just assign (flag)
if flag == 1
for z = 1:(size(tempArray,2))
allArray{z} = [allArray{z} tempArray{z}];
end
else
allArray = tempArray;
%size(allArray,2)
flag = 1;
end
end %%subject loop
end %% condition loop
newArray = {};
for t = 1:size(dataV)
for g = 1:size(allArray,2)
newArray{t,g} =allArray{g}{t};
end
newArray{t,g+1} = dataV(t);
end
outFile = strcat('/cluster/kuperberg/SemPrMM/MEG/results/sensor_level/R/', listPrefix, '.',exp,'.',chanGroupFileName,'.',int2str(t1),'-',int2str(t2),'.txt');
dlmcell(outFile,newArray,' ');