Как вставить триггеры ЭЭГ из одного скрипта PsychoPy в другой? - PullRequest
0 голосов
/ 08 января 2019

Я работаю над добавлением триггеров ЭЭГ к этому сценарию в PsychoPy. Я написал через режим построителя в PsychoPy, так как я новичок в кодировании. Эксперимент представляет собой серию аудиозаписей основ предложения и визуальных окончаний слов - записи и слова вызываются через электронную таблицу. Мы заинтересованы в ответах участников при просмотре окончаний слов.

Ниже приведен мой текущий скрипт без триггеров ЭЭГ, а под ним - скрипт от кого-то другого с той же системой, которую он использовал для вставки триггеров ЭЭГ. Я ищу запись, начинающуюся в конце стимула «Предложения», в том числе во время «цели» и «ответа», и заканчивающуюся после того, как они ответят.

Большое спасибо за любую помощь!

Вот скрипт, который у меня уже есть:

------Prepare to start Routine “trial1”-------

t = 0

trial1Clock.reset()  # clock

frameN = -1

continueRoutine = True

**# update component parameters for each repeat**

target.setColor([1.000,1.000,1.000], colorSpace='rgb')

target.setText(word)

response = event.BuilderKeyResponse()

Sentences.setSound(sounds, secs=6)

**# keep track of which components have finished**

trial1Components = [target, response, Sentences, text_2]

for thisComponent in trial1Components:

if hasattr(thisComponent, 'status'):

    thisComponent.status = NOT_STARTED

А вот код для вставки триггеров ЭЭГ, которые я пытаюсь интегрировать:

# Send event marker to NetStation
if mode=='eeg' and stage=='expt':
    code = 'item'
    ns.sync()
    ns.send_event(code, label='item', timestamp=egi.ms_localtime(), table = { 'item' : curr_item })

1 Ответ

0 голосов
/ 08 января 2019

Вы говорите, что «написали код, используя Builder». Изменили ли вы код после Builder? Если нет, то всегда лучше работать из самого Builder, чтобы позволить вам изменять другие аспекты эксперимента, сохраняя при этом триггеры. Предполагая, что вы можете работать в Builder:

Если вы отправляете триггеры через параллельный порт, для этого есть компонент под I / O -> Parallel port.

В противном случае вы можете вставить компонент кода для запуска кода в нужное время:

  1. На вкладке «начать эксперимент» добавьте import xxxx as ns или как бы вы ни создали объект ns.
  2. На вкладке «Начало процедуры» добавьте код триггера, чтобы отметить начало стимула.
  3. Чтобы отметить смещение стимула, перейдите на вкладку «каждый кадр» и либо (а) прослушайте состояние стимула, например if stim.status == FINISHED:, либо (b) отправьте триггер с настройкой прогнозируемого смещения trigger_sent = False в «начало», а затем if t > 2 and not trigger_sent: (если ваш стимул длится 2 секунды)
...