# FieldTrip Tutorial
## Содержание
* Введение
* Создание скриптов для анализа
* Анализ на уровне сенсоров (Sensor-level analyses)
### Введение
* Необходимость понимания задачи и структуры данных + наша структура
* Составные части тулбокса
* Виды анализа (блок-схемы)
### Создание скриптов для анализа
* Почему это важно?
* M-files
* Создание собственных функций для анализа
* Пакетирование и параллелизм (создание пайплайнов)
* Создание скриптов, эффективно использующих ресурсы
*
###
...
## Введение
### Протокол анализа ЭЭГ/ЭМГ данных и цель его проведения
Цель проведения экспериметов с ЭЭГ/ЭМГ сигналами состоит в получение информации о функционировании мозга во время выполнения определенных действий. При анализе ЭЭГ/ЭМГ данных перед нами стоит задача обнаружить закономерности, относящиеся к вопросу, которым мы задаемся при проведение эксперимента. То есть нам необходимо свести изначально полученные данные к интерпретируемым концепциям, имеющих отношение к нашей гипотизе. Для успешного анализа ЭЭГ/ЭМГ данных необходим не только от данных хорошего качества, собранных во время эксперимента, но и от использования сторонних (как написать лучше??) знаний и предположений исследователя, включенных в протокол анализа.
Протокол анализа состоит из инструментов и алгоритмов используемых исследователем. Примерами сторонних (??) знаний и гипотез внедренных в протокол могут быть:
- В определенное время после осуществления стимула мозг обработает стимул
- Мозг будет обрабатывать повторяющиеся стимулы аналогично
- Распределение сигналов ЭЭГ / МЭГ по коже головы зависит от локализации нижлежащей (внутренней) активности мозга
Пример инструментов и алгоритмов, объеденных в последовательный протокол анализа:

В нашем туториале для анализа ЭЭГ/ЭМГ сигналов будет использован набор инструментов FieldTrip, разработанный Дондерс Центром когнитивной нейровизуализации (Donders Centre for Cognitive Neuroimaging (DCCN)). FieldTrip состоит из функций языка программирования MATLAB, реализующие различные методы этого тулбокса. Каждая функция в FieldTrip реализует в себе отдельный инструмент анализа данных, поэтому объеденяя эти функции в последовательно выполняющуся программу, вы можете реализовать полный протокол анализа ваших данных.
### Составные части FieldTrip тулбокса
Функции, реализованы в FieldTrip, могут быть разделены на несколько категорий:
- **ft_preprocessing** - функции предварительной обработки, чтения и преобразования данных
- **ft_timelockanalysis** - функции анализа связанных с событием полей или потенциалов (ERF/ERP)
- **ft_freqanalysis** - функции частотного и частотно-временного анализа
- **ft_sourceanalysis** - функции для анализа источников
- **ft_timelockstatistics** - функции для статистического анализа
- **ft_multiplotER** - функции для построения и отображения данных
- **ft_realtime_average** - функции сбора и анализа в реальном времени
Ознакомиься с полным списком доступных функций можно в [официальной документации](https://www.fieldtriptoolbox.org/reference/).
Функции FieldTrip принимают в качестве входных данных выход других функций. Таким образом, проводя изначальные сигналы, полученные в результате эксперимента через последовательность функций, становится возможным построить пайплайн обработки данных, соответствующим протоколу анализа.
### Датасет, с которым нам предстоит работать
Еще до приступления к этапу анализа полученных данных, необходимо понять суть эксперимента. Это важно для построения траектории анализа и интерпретации результата.
*??beta В нашем эксперименте приняло участие 32 человека, каждому из которых было предложено два задания - произвести движение рукой, затем произвести воображаемое движение руки (т. e. попытаться почуствовать сжатие руки, не задействуя при этом саму руку). Каждый тип движения для каждого испытуемого проводился обеими руками последовательно. Физическое движение совершалось каждым испытуемым один раз для каждой руки, воображаемое дважды для каждой руки. Всего для всех типов дивжения было предпринято по 20 попыток каждым испытуемым. Во время эксперимента так же обнаружились так называемые квази движения - промежуточные между реальными и воображамыми движениями.*
---
Таким образом, наш датасет состоит из 8 видов движений:
* реальных движений (1*2 на испытуемого)
* воображаемыж движений (2*2 на испытуемого)
* *квази* движений (1*2 на испытуемого)

Ячейки (или папки, как назвать??) для каждого из вида движений имеют следующую структуру:
* hdr - заголовок со служебной информацией
* label - наименования каналов с ЭЭГ датчиков (??)
* time - массив временных промежутков для каждого из 20 трайалов (попыток) для этого вида движения
*

## Создание скриптов, эффективно использующих ресурсы
* Советы для эффективного использования памяти
* Сохранение данных на диск
* Загружайте столько данных, сколько вы используете
* Избегайте создания больших временных массивов
* Использование вложенных функций
* Использование соотвествующих девайсов для хранения данных
* Предварительное выделение памяти для массивов
* Очищайте память от неиспользуемых переменных
## Анализ на уровне сенсоров (Sensor-level analysis)
### Усреднение, связанное с событием, и планарный градиент