Experimental design - ManuJackPel/Brain-Powered-2022-2023 GitHub Wiki
Motor Imagery paradigm
The experimental design was based on Blankertz et al, 2007. The participant was instructed to clench either the right or left fist while resting their arms on the tabel in front of them. The following visual cues determined whether a right or left clench was to be performed: The appearance of either an 'L' or an 'R', or a randomly moving rhomboid with either its left or right corner filled, as can be seen in fig 1. The latter was to make the algorithm more robust against artifacts such as eye-movements and blinking.
A total of 70 trials per condition ('L', 'R' or rhomboid) were given per task. Each trial had a duration of 3 seconds. After each trial, a pause was given with a duration between 0.75 and 2.5 seconds. This was to prevent the habituation of when the trials would appear. The entire task has a duration of 20 minutes. It was found that if one participant performed the task 4 times, a accuracy of 87% between left and right hand movement could be achieved with the KNN algorithm.
Fig 1: These are the visual stimuli presented to the participant. The rhomboids are depicted in the top of the image, the letters are depicted on the bottom.
EventIDE settings for the task program
In order to program the above task, we used EventIDE by OkazoLab. In our case it was a sensible decision to make, as the data acquisition of electrophysiological data was also performed using EventIDE. The software is able to handle both tasks well simultaneously and provides many useful tools to design a task, including an extensive but oganized graphical logger of all the viewing- and loading times during the task (in miliseconds) so you can make sure the task performs exactly how you want it to.
Every screen of the task is created as what is called an event in the software. An event can contain graphical elements like a white background and some sort of stimuli, but also elements that help the program run like you want it to. For example, you may want it to randomly select a condition at the onset of loading the event. This can be done by adding the condition list element in the respective event.
PsychoPy
To make a training GUI, we first resorted to PsychoPy, which is a well designed piece of software meant to create a psychological task program without doing any major programming. It is based on Python, and compiling the task will result in a Python script you can run without running the PsychoPy software itself. Every part of the task can be designed in the PsychoPy API. This makes it easy to create a task without having extensive knowledge of programming. However, we did end up having some trouble with the sound engine. Using EventIDE is preferred above PsychoPy if possible.