Skip to content

Latest commit

 

History

History
170 lines (143 loc) · 8.76 KB

README.md

File metadata and controls

170 lines (143 loc) · 8.76 KB

EEGlab

Библиотека для исследований в области электроэнцефалографии

Библиотека работает с данными организованными в виде эксперимента содержащего отдельные испытания с данными тренировки и тестовыми наборами.

  • Структура каталогов:

    • Произвольное имя каталога с экспериментом exp1, эксперимент
    • Имена каталогов с испытаниями маска: ггггммдд_AAA_111 => 20161105_OLT_001
    • Имена каталогов с тестами (вложены в каждое испытание) ггггммдд_ччммсс =>20161105_135703
    • пример:
      • exp1
        • 20161105_OLT_001
          • 20161105_135703
            • states.pkl - метки активностей
            • data.pkl - данные теста
          • 20161105_140216
          • 20161105_140715
          • states_full.pkl - метки активностей
          • data.pkl - данные тренировки
          • exp_info.dat (генерируемый программой)
        • 20161129_DBS_001
          • 20161129_173025
          • 20161129_173919
          • ...
        • series_info.dat (генерируемый программой)

Порядок работы

Формирование данных эксперимента

На этом этапе происходит сканирование директории с экспериментом для верификции эксперимента для соответствия требованиям библиотеки а так же производится сбор статистики.

  • Испытание - Генерация или загрузка метаданных испытания первым шагом является создание метафалов по каждому испытанию в эксперименте, можно встроить скрипт в процесс обучения модели, можно сгенерировать уже на готовом наборе данных.

    from EEG.info import info_exp
    
    root = "C:\\eeg\\01exp\\"
    name = "20161210_GSH_001"
    
    test = info_exp(root + name)
    test.resp_name = 'Иван Иванов'
    test.description = 'Эксперимент с обратной связью'
    test.labels_names = [u'шум', u'левое', u'правое', u'отдых']
    test.getinfo()
    
    ==============================================================
     Experiment status:  True ; Num tests:  13
     Respondent name:  Иван Иванов
     Description: Эксперимент с обратной связью
     Labels_names: [ шум, левое, правое, отдых ]
     Frequency: 1000
     ------------------------------------------------------------------
     Chanels_names:
     ------------------------------------------------------------------
     FC5        FT7        FC3        FCz        FC4        FT8
     T3         C3         Cz         T4         C4
     TP7        CP3        CPz        CP4        TP8
     FC1        FC2        FC6        P4         C5
     C1         C2         C6         P3         CP5
     CP1        CP2        CP6        POz
     ------------------------------------------------------------------
     List tests
     ------------------------------------------------------------------
     20161210_130306 20161210_130647 20161210_131416
     20161210_131726 20161210_132104
     20161210_132457 20161210_132836
     20161210_133156 20161210_133555
     20161210_133911 20161210_134231
     20161210_134600 20161210_164142
    
     =============================================================
    
     test.save()
    
    
  • Эксперимент - Генерация метаданных эксперимента вместо того, чтобы генерировать метафайлы испытаний по отдельности, можно сгенерировать метафайл всего эсперимента, который на лету просканирует библиотеки и создаст метафайлы испытаний (пока не рализован функционал, заполнения уникальными данными для каждого эксперимента)

    from EEG.info import info_exp, info_series
    
    path = "C:\\eeg\\01exp\\"
    
    test = info_series(path)
    test.exp_name = "Первая серия экспериментов"
    test.getinfo()
    
    =================================================================
    Name series of experiments:  Первая серия экспериментов
    Description: description
    Count experiments: 4 Successed: 3
    Num test 37 Num tests among sucessed 37
    Labels_names: [ шум, левое, правое, отдых ]
    Frequency: 1000
    -----------------------------------------------------------------
    Chanels_names:
    ------------------------------------------------------------------
    FC5        FT7        FC3        FCz        FC4        FT8
    T3         C3         Cz         T4         C4
    TP7        CP3        CPz        CP4        TP8
    FC1        FC2        FC6        P4         C5
    C1         C2         C6         P3         CP5
    CP1        CP2        CP6        POz
    -------------------------------------------------------------------
    Unique respondents
    -------------------------------------------------------------------
    Иван Иванов
    ------------------------------------------------------------------
    List experiments
    ------------------------------------------------------------------
    20161105_OLT_001 20161129_DBS_001 20161209_KPS_001
    20161210_GSH_001
    ==================================================================
    
    

Предобработка данных

на этом этапе производится первоначальная "механическая" предобработка данных, выравнивается продолжительность активностей, отсеиваются граничные данные сменяющие активности, генерируется standalone файл содержаший в себе все необходимые данные трейнов и тестов для использования в последующей обработке.

from EEG.info import info_exp
from EEG.preprocessing import aligner_exp

root = "C:\\eeg\\01exp\\"
name = "20161129_DBS_001"

test = aligner_exp(root + name)
test.align(250,250)

test.getinfo()
test.save(mode = 'data')
test.save()

  =================================================================
Experiment status:  True ; Num tests:  12
Respondent name:  Иван Иванов
Description: Эксперимент с обратной связью
Labels_names: [ удалено, левое, правое, отдых ]
Frequency: 1000
Count train activities:  45
Count tests activities: [ 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30 ]
Time of activity: 4500
------------------------------------------------------------------
Chanels_names:
------------------------------------------------------------------
FC5        FT7        FC3        FCz        FC4        FT8
T3         C3         Cz         T4         C4
TP7        CP3        CPz        CP4        TP8
FC1        FC2        FC6        P4         C5
C1         C2         C6         P3         CP5
CP1        CP2        CP6        POz
------------------------------------------------------------------
List tests
------------------------------------------------------------------
20161129_173025 20161129_173919 20161129_174505
20161129_175011 20161129_175517
20161129_180043 20161129_180632
20161129_181557 20161129_182114
20161129_182715 20161129_183224
20161129_183740
==================================================================

Фильтрация данных

  • частотная фильтрация, алгоритмический отсев артефактов

Трансформация данных