In order to perform measurements for feature extraction, it is needed to localize the channels from the data-set recordings to, which contain the raw brain waves with some technical specification of each signal. CHB-MIT Scalp EEG Database is one of the most cited resources used in prediction detection experiments. It is also one of the few publicly available invasive EEG data-sets.
The database contains 24 hour-long continuous pre-surgical invasive EEG recordings of 22 patients suffering from epilepsy. The patients are from a wide range of varying age, sex, seizure type and seizure locality, but they all suffer from focal medically intractable epilepsy and were admitted for pre-surgical evaluation at the Boston Children’s Hospital . Most files contain 23 EEG signals (24 or 26 in a few cases) from surface electrodes that were placed on the patient’s head following the International 10-20 system of electrodes position which give good coverage of cortical potentials generated by superficial cortex.
In our case this database is a cell array each cell which contain any type of data. Cell arrays commonly contain pieces of text, combinations of text and numbers from spreadsheets or text files, or numeric arrays of different sizes. Consequently, we have the main cell with number of patients [1×22] inside of this we have another arrays [[1×26] and [1×1]] x22 with each patient’s channel records [1×2]x22 and the according metadata such as (record duration, seizures, time, sex, age etc.). In bellow block of code, we demonstrate how to load sampling rate the signal of data-set, and how to separate the different regions of the brain according to the International 10-20 system of electrodes position.
% Load Data
read_data('256Hz');
% Converting the sample rate of a signal from one sampling rate 32Hz and 128Hz
Subject01 = sampling_converter('256Hz',{'chb01'},'32Hz');
Subject01 = sampling_converter('256Hz',{'chb01'},'128Hz');
% Initialize Interest Channel
trial = Subject01{1,1}{1,3}{1,2};
% Initialize Data And Separate The Regions Of [LeftTemporalLobe, LeftParasagittalLobe, RightParasagittalLobe, RightTemporalLobe, Midle,PenetratingLine ]
LeftTemporalLobe = trial(:,1:4);
LeftParasagittalLobe = trial(:,5:8);
RightParasagittalLobe = trial(:,9:12);
RightTemporalLobe = trial(:,13:16);
Midle = trial(:,17:18);
PenetratingLine = trial(:,19:23);
% Converter Samples To Sec
Fs = 32;
t=[1/Fs:1/Fs:length(trial(:,1))/Fs];
% DISPLAY REGIONS AND CHANNELS
for i = 1 : size(trial,2)
figure,
plot(t, trial(:,i));
title(Subject01{1,1}{1,1}{1,1}.label(1,i));
%take the epoch with seizure xlim([2996 3036])
%xlim([2451 2476]);
ylabel('Amplitude (ìV)')
xlabel('time (sec)')
break;
end
figure,
subplot(2,1,1),plot(t,LeftTemporalLobe);
title('LeftTemporalLobe by 4 channels FP1F7,F7T7,T7P7,P7O1');
%take the epoch with seizure xlim([2996 3036])
%xlim([2996 3036]);
ylabel('Amplitude (ìV)')
xlabel('time (sec)')
subplot(2,1,2),plot(t,RightTemporalLobe);
title('RightTemporalLobe by 4 channels FP2F8,F8T8,T8P8,P8O2');
%take the epoch with seizure xlim([2996 3036])
%xlim([2996 3036]);
ylabel('Amplitude (ìV)')
xlabel('time (sec)')
figure, subplot(3,1,1),plot(t,LeftParasagittalLobe);
title('LeftParasagittalLobe by 4 channels FP1F3,F3C3,C3P3,P3O1');
%take the epoch with seizure xlim([2996 3036])
%xlim([2996 3036]);
ylabel('Amplitude (ìV)')
xlabel('time (sec)')
subplot(3,1,2),plot(t,Midle);
title('Midle by 2 channels FZCZ, CZPZ');
%take the epoch with seizure xlim([2996 3036])
%xlim([2996 3036]);
ylabel('Amplitude (ìV)')
xlabel('time (sec)')
subplot(3,1,3),plot(t,RightParasagittalLobe);
title('RightParasagittalLobe by 4 channels FP2F4,F4C4,C4P4,P4O2');
%take the epoch with seizure xlim([2996 3036])
%xlim([2996 3036]);
ylabel('Amplitude (ìV)')
xlabel('time (sec)')
figure,plot(t,PenetratingLine);
title('sagittal by 4 channels P7T7, T7FT9, FT9FT10,FT10T8,T8P8');
%take the epoch with seizure xlim([2996 3036])
%xlim([2996 3036]);
ylabel('Amplitude (ìV)')
xlabel('time (sec)')