[FieldTrip] help
Yee Wong
ywong252 at uwo.ca
Fri Mar 26 21:01:05 CET 2021
Hello,
I am running into an error with the connectivity script, where the output values are NaN. See below for the code section.
%% Compute coherence
if computecoh == 1
if strcmp(reference,'car')
load([restdir 'rest_preproc_car_matched.mat'])
elseif strcmp(reference,'csd')
load([restdir 'rest_preproc_csd_matched.mat'])
end
% 1. Create TFRs by condition - frequency over time
cfg = [];
cfg.channel = [lfchans rfchans lpchans rpchans];
cfg.output = 'fourier';
cfg.method = 'mtmconvol';
cfg.taper = 'hanning';
cfg.foi = 2:1:50;
cfg.toi = -1:0.05:3;
cfg.t_ftimwin = 3./cfg.foi; % [lf hf].*cfg.foi; % length of time window; number of cycles per time window
cfg.keeptrials = 'yes';
cfg.pad = 10;
[tfa_rest] = ft_freqanalysis(cfg,rest_preproc);
save([conndir 'tfa_forconn_rest_' reference '.mat'],'tfa_rest');
% COMPUTE CONNECTIVITY METRICS
% ~~ select relevant time period
cfg = [];
cfg.latency = [0.001 2];
[tfa_rest] = ft_selectdata(cfg, tfa_rest);
% Coherence
cfg = [];
cfg.method = 'coh';
cfg.complex = 'imag'; %'abs'
cfg.channelcmb = ft_channelcombination('all',tfa_rest.label);
rest_cohconn = ft_connectivityanalysis(cfg,tfa_rest);
save([conndir 'rest_cohconn_',reference,'.mat'],'rest_cohconn');
clear *_coh tfa* rest_preproc
end
% to visualize each pair's coherence values
% figure;imagesc(squeeze(rest_cohconn.cohspctrm(1,6,:,:))); colorbar
%% Extract coherence values
if extract == 1
load([conndir 'rest_cohconn_',reference,'.mat']);
% Extract channel index
lfchanidx=[]; rfchanidx=[]; lpchanidx=[]; rpchanidx=[];
for c=1:numel(lfchans)
lfchanidx(c) = find(strcmp(lfchans{c},rest_cohconn.label));
end
for c=1:numel(rfchans)
rfchanidx(c) = find(strcmp(rfchans{c},rest_cohconn.label));
end
for c=1:numel(lpchans)
lpchanidx(c) = find(strcmp(lpchans{c},rest_cohconn.label));
end
for c=1:numel(rpchans)
rpchanidx(c) = find(strcmp(rpchans{c},rest_cohconn.label));
end
% identify frequency range of interest
lowf = find(lf == rest_cohconn.freq);
highf = find(hf == rest_cohconn.freq);
freq = [lowf:highf];
clear lowf highf
% average over frequency range of interest, outputs chan x chan matrix
cohdata = abs(mean(mean(rest_cohconn.cohspctrm(:,:,freq,:),3),4));
% left - frontal vs parietal
cnt = 1;
for c = 1:numel(lfchanidx)
for d = 1:numel(lpchanidx)
cohtmp(cnt,1) = cohdata(lfchanidx(c),lpchanidx(d));
cnt = cnt + 1;
end
end
% ~ average across electrode pairs
left_fvsp_coh = mean(cohtmp); clear cohtmp
% right - frontal vs parietal
cnt = 1;
for c = 1:numel(rfchanidx)
for d = 1:numel(rpchanidx)
cohtmp(cnt,1) = cohdata(rfchanidx(c),rpchanidx(d));
cnt = cnt + 1;
end
end
% ~ average across electrode pairs
right_fvsp_coh = mean(cohtmp); clear cohtmp
% frontal - right vs left
cnt = 1;
for c = 1:numel(lfchanidx)
for d = 1:numel(rfchanidx)
cohtmp(cnt,1) = cohdata(lfchanidx(c),rfchanidx(d));
cnt = cnt + 1;
end
end
% ~ average across electrode pairs
frontal_lvsr_coh = mean(cohtmp); clear cohtmp
% parietal - right vs left
cnt = 1;
for c = 1:numel(lpchanidx)
for d = 1:numel(rpchanidx)
cohtmp(cnt,1) = cohdata(lpchanidx(c),rpchanidx(d),:);
cnt = cnt + 1;
end
end
% ~ average across electrode pairs
parietal_lvsr_coh = mean(cohtmp); clear cohtmp
% left frontal vs right parietal
cnt = 1;
for c = 1:numel(lfchanidx)
for d = 1:numel(rpchanidx)
cohtmp(cnt,1) = cohdata(lfchanidx(c),rpchanidx(d),:);
cnt = cnt + 1;
end
end
% ~ average across electrode pairs
lfrpcoh = mean(cohtmp); clear cohtmp
% right frontal vs left parietal
cnt = 1;
for c = 1:numel(rfchanidx)
for d = 1:numel(lpchanidx)
cohtmp(cnt,1) = cohdata(rfchanidx(c),lpchanidx(d),:);
cnt = cnt + 1;
end
end
% ~ average across electrode pairs
rflpcoh = mean(cohtmp); clear cohtmp
% right frontal and parietal vs left frontal and parietal
cnt = 1;
for c = 1:numel(lfchanidx)+numel(lpchanidx)
for d = 1:numel(rfchanidx)+numel(rpchanidx)
if c <= numel(lfchanidx) % left frontal
if d <= numel(rfchanidx)
cohtmp(cnt,1) = cohdata(lfchanidx(c),rfchanidx(d),:);
else
cohtmp(cnt,1) = cohdata(lfchanidx(c),rpchanidx(d-numel(rfchanidx)),:);
end
else % left parietal
if d <= numel(rfchanidx)
cohtmp(cnt,1) = cohdata(lpchanidx(c-numel(lfchanidx)),rfchanidx(d),:);
else
cohtmp(cnt,1) = cohdata(lpchanidx(c-numel(lfchanidx)),rpchanidx(d-numel(rfchanidx)),:);
end
end
cnt = cnt + 1;
end
end
% ~ average across electrode pairs
leftvsright_coh = mean(cohtmp); clear cohtmp
% frontal vs parietal (left and right)
cnt = 1;
for c = 1:numel(lfchanidx)+numel(rfchanidx)
for d = 1:numel(lpchanidx)+numel(rpchanidx)
if c <= numel(lfchanidx) % left
if d <= numel(lpchanidx)
cohtmp(cnt,1) = cohdata(lfchanidx(c),lpchanidx(d),:);
else
cohtmp(cnt,1) = cohdata(lfchanidx(c),rpchanidx(d-numel(lpchanidx)),:);
end
else % right
if d <= numel(rfchanidx)
cohtmp(cnt,1) = cohdata(rfchanidx(c-numel(lfchanidx)),lpchanidx(d),:);
else
cohtmp(cnt,1) = cohdata(rfchanidx(c-numel(lfchanidx)),rpchanidx(d-numel(lpchanidx)),:);
end
end
cnt = cnt + 1;
end
end
% ~ average across electrode pairs
frontalvsparietal_coh = mean(cohtmp); clear cohtmp
end
% Save File
filename = strcat('rest_cohconn_roi_',num2str(lf),'_',num2str(hf),'_',reference,'.mat');
save([conndir filename], '*_coh','*chans');
Thank you for your time and help.
Sincerely,
Michelle (Yee Suet) Wong
BHK, MSc, PhD Candidate
Western University
School of Kinesiology
Faculty of Health Sciences
Exercise, Mobility, and Brain Health Lab
London, Ontario, Canada
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20210326/4f1722e9/attachment.htm>
More information about the fieldtrip
mailing list