0001 function [chpair_coh] =coherence_scatter_2cond(freqs,obs,array,coh_crit,coherencefname);
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 if nargin < 5
0018 [fid] = get_fid('rb');
0019 else
0020 fid = fopen(coherencefname,'rb');
0021 end;
0022 version = fread(fid,1,'int16');
0023 if version ~= -2
0024 error('this is not a coherence file');
0025 end;
0026 [nfiles,obs_labels,Epoch,Window_Length,NEpoch,Nbad_chan,bad_chan,ref_flag,reference,NChan,NFreq] = rd_anal_hdr(fid);
0027 if nargin == 0
0028 freqs = [0:40];
0029 obs = [1:nfiles];
0030 array = 'all';
0031 coh_crit = 0.1;
0032 end;
0033 if nargin == 1
0034 obs = [1:nfiles];
0035 array = 'all';
0036 coh_crit = 0.1;
0037 end;
0038 if nargin == 2
0039 array = 'all';
0040 coh_crit = 0.1;
0041 end;
0042 if nargin == 3
0043 coh_crit = 0.1;
0044 end;
0045 if isempty(coh_crit)
0046 coh_crit = 0.1;
0047 end
0048 if isempty(array)
0049 array = 'all';
0050 end
0051 if isempty(obs)
0052 obs = [1:nfiles];
0053 end;
0054 if isempty(freqs)
0055 freqs = [0:40];
0056 end;
0057 if size(obs,2) > 2
0058 fclose('all')
0059 error('too many observations > 3 to be plotted in a single plot')
0060 end;
0061 if size(obs,2) == 1
0062 if size(freqs,2) > 2
0063 error('too many frequencies for a single plot')
0064 end;
0065 end;
0066 lines = 'color';
0067 ch_pair_indices;
0068 if strcmp(lines,'black')
0069 line_type = ['k- ';'k--';'k-.'];
0070 scat_type = ['ko';'k.';'ko'];
0071 else
0072 line_type = ['k-';'r-';'b-'];
0073 scat_type = ['ko';'r.';'bo'];
0074 end;
0075 coherencemax = 1;
0076 iline = 1;
0077 [xelec,yelec,zelec] = electrodes(129);
0078 twod_dist = twod_pos(xelec,yelec,zelec,9.2);
0079 coherence_array = real(get_eeg_coherence(fid,freqs,obs,nfiles,NChan,NFreq,Epoch));
0080 [dist,bcohpotential,bcohlaplacian] = baseline_coherence(0.2,80,8,8.2,8.7,9.2,7.8);
0081 if isstr(array)
0082 [arrayg,gnames] = arrays(array,[]);
0083 else
0084 arrayg = array;
0085 end
0086 if size(obs,2) > 1
0087 for g = 1:size(arrayg,1)
0088 for i= 1:size(freqs,2)
0089 figure
0090 hold on
0091 for io = 1:size(obs,2)
0092 if ~(ref_flag(obs(io)) == 5|ref_flag(obs(io)) == 7)
0093 hold on,bar(dist,bcohpotential,'w-');
0094 elseif ref_flag(obs(io)) == 5
0095 hold on,bar(dist,bcohlaplacian,'w-');
0096 end;
0097 end
0098 iline = 1;
0099
0100 for j = 1:size(obs,2)
0101
0102 if isstr(array)
0103 [arrayh,hnames] = arrays(array,bad_chan(obs(j),find(bad_chan(obs(j),:))));
0104 else
0105 arrayh = array;
0106 end
0107 pairels = arrayh(g,find(arrayh(g,:)));
0108 npairs = size(pairels,2)*(size(pairels,2)+1)/2;
0109 pairs = zeros(1,npairs);
0110 ipairs = 1;
0111 for ip = 1:size(pairels,2)
0112 for jp=ip:size(pairels,2)
0113 pairs(ipairs) = chpair(pairels(ip),pairels(jp));
0114 ipairs = ipairs + 1;
0115 end;
0116 end;
0117 pairnames = hnames(g,:);
0118
0119
0120
0121 if j == 2
0122 hold on, plot(real(twod_dist(pairs)),coherence_array((j-1)*size(freqs,2)+i,pairs),scat_type(iline,:))
0123 diff_pairs = find(abs(coherence_array(size(freqs,2)+i,:) - coherence_array(i,:)) > coh_crit);
0124 mask = zeros(1,size(coherence_array,2));
0125 mask(pairs) = ones(1,size(pairs,2));
0126 mask_diff = zeros(1,size(coherence_array,2));
0127 mask_diff(diff_pairs) = ones(1,size(diff_pairs,2));
0128 new_mask = mask_diff.*mask;
0129 pairs_diff = find(new_mask);
0130 hold on, plot(real(twod_dist(pairs_diff)),coherence_array((j-1)*size(freqs,2)+i,pairs_diff),scat_type(3,:))
0131 end
0132
0133
0134
0135 hold on, axis([0 max(twod_dist(pairs))+1 0 1])
0136 title(['Coherence versus Distance: @' int2str(freqs(i)) ' Hz ' hnames(g,:)]);
0137 text([max(twod_dist(pairs))-2.5],[1-0.1*j],[scat_type(iline+1,2) ' ' deblank(setstr(obs_labels(obs(j),:)))])
0138 xlabel('Interelectrode Distance (cm)')
0139 ylabel('Coherence')
0140 iline = iline+ 1;
0141 end
0142 chpair_list = chpairindex_2chpair(pairs_diff);
0143 chpair_coh((g-1)*size(chpair_list,1)+1:g*size(chpair_list,1),:) = [g*ones(size(chpair_list,1),1) freqs(i)*ones(size(chpair_list,1),1) obs(1)*ones(size(chpair_list,1),1) obs(2)*ones(size(chpair_list,1),1) chpair_list twod_dist(pairs_diff)' coherence_array(i,pairs_diff)' coherence_array(i+size(freqs,2),pairs_diff)'];
0144
0145 end
0146 end
0147 else
0148 if isstr(array)
0149 [arrayh,hnames] = arrays(array,bad_chan(obs,find(bad_chan(obs,:))));
0150 else
0151 arrayh = array;
0152 end
0153 for g = 1:size(arrayh,1)
0154 iline = 1;
0155 figure
0156 hold on
0157 for io = 1:size(obs,2)
0158 if ~(ref_flag(obs(io)) == 5|ref_flag(obs(io)) == 7)
0159 hold on,bar(dist,bcohpotential,'w-');
0160 elseif ref_flag(obs(io)) == 5
0161 hold on,bar(dist,bcohlaplacian,'w-');
0162 end;
0163 end
0164 for j = 1:size(freqs,2)
0165 pairels = arrayh(g,find(arrayh(g,:)));
0166 npairs = size(pairels,2)*(size(pairels,2)+1)/2;
0167 pairs = zeros(1,npairs);
0168 ipairs = 1;
0169 for ip = 1:size(pairels,2)
0170 for jp=ip:size(pairels,2)
0171 pairs(ipairs) = chpair(pairels(ip),pairels(jp));
0172 ipairs = ipairs + 1;
0173 end;
0174 end;
0175
0176 pairnames = hnames(g,:);
0177
0178
0179
0180 if j == 2
0181 hold on, plot(real(twod_dist(pairs)),coherence_array(j,pairs),scat_type(2,:))
0182 diff_pairs = find(abs(coherence_array(2,:) - coherence_array(1,:)) > coh_crit);
0183 mask = zeros(1,size(coherence_array,2));
0184 mask(pairs) = ones(1,size(pairs,2));
0185 mask_diff = zeros(1,size(coherence_array,2));
0186 mask_diff(diff_pairs) = ones(1,size(diff_pairs,2));
0187 new_mask = mask_diff.*mask;
0188 pairs_diff = find(new_mask);
0189 hold on, plot(real(twod_dist(pairs_diff)),coherence_array(j,pairs_diff),scat_type(3,:))
0190 end
0191
0192
0193
0194 hold on, axis([0 max(twod_dist(pairs))+1 0 1])
0195 title(['Coherence versus Distance: ' deblank(setstr(obs_labels(obs(1),:))) ' ' hnames(g,:)]);
0196 text([max(twod_dist(pairs))-2.5],[1-0.1*j],[scat_type(iline+1,2) ' ' int2str(freqs(j)) ' Hz'])
0197 xlabel('Interelectrode Distance (cm)')
0198 ylabel('Coherence')
0199 iline = iline+ 1;
0200 end
0201 chpair_list = chpairindex_2chpair(pairs_diff);
0202 chpair_coh((g-1)*size(chpair_list,1)+1:g*size(chpair_list,1),:) = [g*ones(size(chpair_list,1),1) obs(1)*ones(size(chpair_list,1),1) freqs(1)*ones(size(chpair_list,1),1) freqs(2)*ones(size(chpair_list,1),1) chpair_list twod_dist(pairs_diff)' coherence_array(1,pairs_diff)' coherence_array(2,pairs_diff)'];
0203
0204 end
0205 end
0206 status = 1;
0207
0208
0209
0210
0211
0212
0213
0214
0215
0216
0217
0218
0219
0220
0221
0222
0223
0224
0225
0226
0227
0228
0229
0230
0231
0232
0233
0234
0235