Python MNE - чтение данных ЭЭГ из массива

У меня есть данные ЭЭГ, которые поступают в виде трехмерного массива (эпоха * канал * время). timepoint - это массив из 256 элементов, содержащий каждый выбранный момент времени (всего 1 с, при 256 Гц). эпоха - экспериментальное испытание.

Я пытаюсь импортировать массив numpy в форму, которую понимает Python-MNE ( http://martinos.org/mne/stable/mne-python.html), но у меня возникли некоторые проблемы

Во-первых, я не уверен, должен ли я импортировать эти необработанные данные как RawArray или EpochsArray. Я попробовал последнее с этим:

ch_names = list containing my 64 eeg channel names
allData = 3d numpy array as described above

info = mne.create_info(ch_names, 256, ch_types='eeg')

event_id = 1

#I got this from a tutorial but really unsure what it does and I think this may be the problem
events = np.array([200, event_id])  #I got this from a tutorial but really unsure what it does and I think this may be the problem

raw = mne.EpochsArray(allData, info, events=events)

picks = mne.pick_types(info, meg=False, eeg=True, misc=False)

raw.plot(picks=picks, show=True, block=True)

Когда я запускаю это, я получаю ошибку индекса: "слишком много индексов для массива"

В конечном итоге я хочу провести анализ данных на основе STFT и CSP, но сейчас мне нужна помощь с первоначальной реструктуризацией и импортом в MNE.

Какой правильный способ импортировать эти крошечные данные, которые облегчили бы мой предполагаемый анализ?

2 ответа

Можно ли каким-либо образом преобразовать данные, полученные при настройке ЭЭГ, в формат.fif? "Сырой" формат данных, о котором страница MNE рассказывает в своем руководстве, представляет собой файл формата.fif. Если вы можете получить свои данные EEG в формате.fif, вы можете просто следовать инструкциям шаг за шагом...

Функции для преобразования из различных других форматов файлов EEG в.fif: http://martinos.org/mne/stable/manual/convert.html

Если это не вариант, вот несколько мыслей:

  • EpochsArray() выглядит как правильная функция, так как ожидает массив данных с (n_epochs, n_channels, n_times) для фигуры. Просто чтобы убедиться, что форма вашего массива allData совпадает с np.shape(allData),

  • На соответствующей заметке страница справки для EpochsArray() упомянутый mne.read_events() Но главный вопрос - где хранятся данные о ваших событиях, чтобы вы могли их прочитать...

  • Основываясь на уроке, который вы связали, кажется, что способ получить "события", если вы начинаете с файла.fif: events = mne.find_events(raw, stim_channel='STI 014'), Это заставляет меня задаться вопросом, есть ли у вас более 64 каналов в вашем массиве, и один из ваших каналов на самом деле является каналом стимуляции... если это так, вы можете попробовать подать этот канал стимула на mne.read_events() функция. В качестве альтернативы, возможно, ваш канал стим или событий может быть отдельным массивом или, возможно, необработанным?

Надеюсь, что это по крайней мере несколько полезно и удачи!

Если кому-то еще интересно, они добавили в свой документ учебник: Создание структур данных MNE-Python с нуля . Вы должны найти 2 необходимых шага:

Другие вопросы по тегам