Desktop-App-Studie mit EEG-Integration
Inhalte:
Übersicht
Das Ziel dieses Leitfadens ist es, zu demonstrieren, wie man eine einfache Studie mit EEG-Integration in der Desktop-App einrichtet.
Hinweis: Weitere Informationen zur Desktop-App, einschließlich einer Installationsanleitung und einem Überblick über die Funktionen der App, finden Sie auf dieser Seite.
Hinweis: Weitere Informationen zur Desktop-App, einschließlich einer Installationsanleitung und einem Überblick über die Funktionen der App, finden Sie auf dieser Seite.
Studieneinstellungen
Im Tab Studieneinstellungen öffnen Sie die Spalte Experimentfeatures
, scrollen Sie nach unten zur Option Lab-Streaming-Layer
und aktivieren Sie sie. Für weitere Informationen zu diesen Einstellungen, besuchen Sie diese Seite.
Dann erscheint dieses Textfeld, in dem Sie den Ausgabestrom benennen können. Hier haben wir einen einzelnen Stream erstellt und den Standardnamen und die Optionen beibehalten.
Erstellen eines Ausgabestreams in den Studieneinstellungen zur Herstellung einer Verbindung mit dem EEG.
Typischerweise möchten Sie einen Ausgabestream für die in Labvanced generierten Ereignisse einrichten und ihn als Markerstream an Ihre EEG-Aufzeichnungen senden, um Ereignisse zu kennzeichnen, damit Sie eine ereignisbezogene Analyse der EEG-Daten durchführen können. Nachdem dies eingerichtet ist, können Sie einzelne Marker auf diesem Stream senden, was mithilfe des Labvanced-Ereignissystems ganz einfach ist.
Einfache Studie einrichten
Für die Zwecke dieses Leitfadens werden wir schnell eine Studie für den Bouba-Kiki-Effekt einrichten, um eine Diskussionsgrundlage und eine Basis für die Einrichtung der EEG-bezogenen Ereignisse für das Senden von Markern basierend auf:
- Welche Stimuli-Kategorie angezeigt wird (d. h. Bouba-Kategorie = runde Formen; Kiki-Kategorie = spitze / scharfe Formen)
- Wann das Bild angeklickt wurde
Um zu sehen, wie wir die Stimuli eingerichtet haben (zum Kontext), beziehen Sie sich auf das 04:19
Minutenmarke in diesem Video:
Kurze Beschreibung des Stimuli-Upload-Prozesses (basierend auf dem obigen Video):
- Aus dem Versuchssystem erstellen wir die Ebene und benennen sie „Bouba“, die für die Stimuli-Bilder runder Formen vorgesehen ist, und erstellen dann eine weitere Ebene und benennen sie „Kiki“ für die Stimuli-Bilder mit spitzen Formen.
- Jetzt klicken wir unter der Bouba-Bedingung, die im Versuchssystem angezeigt wird, darauf und wählen das Objekt aus und laden unsere entsprechenden Bilddateien hoch, wobei wir die Optionen auswählen: i.) so viele Versuche zu erstellen, wie es Stimuli gibt, und ii.) diese automatisch zuzuweisen.
- Dann machen wir dasselbe für die andere Bedingung, indem wir das Objekt unter der Bedingung auswählen und den Vorgang wiederholen.
An diesem Punkt haben wir eine einfache Studie mit zwei Arten von Stimuli eingerichtet. Nachdem wir die Ereignisse eingerichtet haben (nächster Abschnitt), wird die letzte Aufgabe wie folgt aussehen: Ein Klick auf das Bild bewegt die Studie zur nächsten Versuch, während EEG-Marker gesendet werden.
Ereignisse einrichten
Jetzt wollen wir für die Ereignisse, dass das Hauptkonzept darin besteht, dass wir einen EEG-Marker basierend auf der Art / Kategorie des Bildes, das der Teilnehmer sieht, sowie einen Marker für den Zeitpunkt, an dem das Bild angeklickt wurde, senden.
Ereignis 1: Marker (Frame/Stimulus-Onset) an EEG senden
Für dieses erste Ereignis möchten wir, dass das EEG Folgendes weiß: a) wann der Frame mit den Stimuli beginnt, aber b.) auch aus welcher Bildkategorie der Stimulus stammt (d. h. Bouba oder Kiki).
AUSLÖSER
Trial and Frame Trigger
→On Frame Start
Auswahl von Frame Start als Auslöser dafür, wann der erste EEG-Markierung gesetzt werden sollte.
AKTION
Da wir zwischen Bedingungen wechseln möchten, benötigen wir eine Wenn-Dann-Aktion im Editor:
Control Action
→Requirement Action (If…Then)
Um die erste Bedingung zu spezifizieren, rufen wir die entsprechende Faktorvariable auf und setzen sie gleich 'Bouba.' Dies geschieht, indem wir folgende Schritte im Editor durchführen:
- Klicken Sie auf
+ Requirement
- Im linken Bleistiftsymbol:
Variable
→Select Variable
und wählen Siefactor1_tg1_task0
- Im rechten Bleistiftsymbol:
Constant Value
→String
→ geben Sie die Zeichenfolge bouba ein
Hinweis: Im Prozess des Experimentdesigns sollten Sie Ihren Faktoren einzigartige und beschreibende Namen geben. Im obigen Beispiel haben wir den Standardnamen factor1_tg1_task0 verwendet, aber für strukturell einwandfreie Designs sollten Sie Ihren Faktoren genauere Namen geben, die die Kategorie (wie 'Form') widerspiegeln.
Sobald diese WENN
-Bedingung erfüllt ist, möchten wir DANN
, dass Folgendes passiert:
Add Action
API Actions
→Send LabStreamingLayer Marker
- Wählen Sie den vorher unter den 'Studieneinstellungen' dafür erstellten Stream aus (d. h. den labvanced_stream_1)
- Zu sendender Wert:
Constant Value
→String
→ geben Sie das Wort bouba ein
Festlegen des LSL-Markierung basierend auf der Bildstimuli-Bedingung.
Wir wiederholen den Vorgang für die kiki-Bedingung, indem wir die Option + Add Else If Case
auswählen.
Workflow-Tipp: Anstatt ein zweites Ereignis für die 'kiki'-Bedingung zu erstellen. Kopieren Sie einfach das obige Ereignis (verwenden Sie das Duplizieren-Symbol oben, neben dem Wort `IF`) und ändern Sie die Zeichenfolgen einfach, um mit dem anderen Faktor oder Stimulus-Typ übereinzustimmen, z. B. 'kiki'.
ZUSAMMENFASSUNG
Bis zu diesem Punkt haben wir Labvanced so eingerichtet, dass es einen EEG-Marker (basierend auf dem Stimulusformtyp) sendet, sobald der Frame beginnt, d. h. sobald der Stimulus präsentiert wird.
Ereignis 2: Teilnehmerantwort
Jetzt möchten wir einen Marker senden und etwas messen, das dynamischer ist, d. h. wann das Bild angeklickt wurde. Hier können wir auch die Reaktionszeit quantifizieren und zur nächsten Versuch weitergehen (alles basierend auf dem Mausklick auf das Bild).
Wir können ein weiteres Ereignis erstellen, sodass, wenn das Bild angeklickt wird, das EEG den Marker „Klick“ erhält.
AUSLÖSER
User Input
→Mouse Trigger
+ Add Target
→ wählen Sie das Bildobjekt (image_1)
Auswahl eines Bildalklicks als Auslöser dafür, wann der zweite Marker erstellt werden soll.
AKTION 1 (Senden des "Klick"-Markers an EEG)
Erstellen Sie einen neuen Marker durch:
API Actions
→Send LabStreamingLayer Marker
- LSL Stream: wählen Sie
labvanced_stream_1
- Wert zu senden:
Constant Value
→String
→ geben Sie das Wort Klick ein
AKTION 2 (Reaktionszeit erfassen)
Verwenden Sie die Set / Record Variable
und erstellen Sie eine Variable, die skalar und numerisch ist, um die Mausauslösezeit ab dem Frame-Onset aufzuzeichnen, indem Sie:
+ Action
Variable Actions
→Set / Record Variable
Select
(grüne Schaltfläche) →+New Variable
(oben rechts)- Name: RT
- Format: Skalar
- Datentyp: Numerisch
- → ‚OK‘
- Bleistiftsymbol →
Trigger (Mouse)
→Trigger Time (From Frame Onset)
AKTION 3 (Zur nächsten Versuch springen)
+ Action
Jump Actions
→Jump To
→Next Trial
Wenn Sie dieses Verfahren befolgen, wird Ihr Ereignis so aussehen:
Drei Aktionen sind so eingestellt, dass sie beim Mausklick auf das Zielbild erfolgen: i.) den Marker an das EEG senden, die Reaktionszeit quantifizieren und zur nächsten Versuch wechseln.
ZUSAMMENFASSUNG
Das obenstehende Ereignis, mit dem Auslöser des Klickens auf ein bestimmtes Bild, hat folgende Aktionen zur Folge: ein Marker „Klick“ wird direkt an das EEG gesendet, eine Reaktionszeit (vom Frame-Onset) wird in Millisekunden aufgezeichnet und in der Variable „RT“ gespeichert, und das Experiment wechselt zur nächsten Versuch.
An diesem Punkt ist eine sehr einfache Studie mit einer Struktur und den Möglichkeiten, Marker an ein EEG zu senden, eingerichtet!
- Zwei verschiedene Stimuli-Typen
- EEG erhält Marker basierend auf:
- angezeigtem Stimuli-Typ
- wann der 'Klick' erfolgt ist
- Die Studie zeichnet die Reaktionszeit auf und hat die Navigation eingerichtet
LOKALER MODUS
In der Desktop-App zeigt das Umschalten in den „lokalen“ Modus, dass eine Synchronisierung stattfindet.
Die Studie wird lokal in der Desktop-App geladen und aktualisiert.
Nach ein paar Sekunden wurde die aktualisierte Studie heruntergeladen, sodass alle online vorgenommenen Änderungen in der lokalen Version reflektiert werden.
Lassen Sie uns zu einer EEG-Aufnahmesitzung übergehen.
EEG-Datenaufnahmesitzung
Um mit einer EEG-Datenaufnahmesitzung zu beginnen, benötigen wir natürlich die oben erstellte Labvanced-Studie (mit ihrer Struktur und Ereignissen zum Senden der Marker). Außerdem benötigen wir einige ergänzende Programme (kostenlos), um das EEG mit Markern zu versorgen, sowie die Werkzeuge, um die Daten zu visualisieren und möglicherweise zu analysieren.
EEG-Ausrüstung (Muse 2 EEG)
In dieser Demo verwenden wir ein Muse 2 EEG tragbares Headset. Mit dem Programm BlueMuse (kostenlos), das für das Muse 2 EEG-Headset geöffnet wird, klicken wir auf die Option „Start Streaming“. Ein zweites Fenster wird angezeigt, das 4 verschiedene Streams zeigt: den EEG-Kanal, den Beschleunigungssensor, das Gyroskop usw. sowie deren jeweilige Abtastraten.
Streaming in BlueMuse starten (rechtes Fenster) und die Streams erscheinen (linkes Fenster).
Diese beiden Fenster können jetzt minimiert werden.
Lab-Recorder
Das nächste Werkzeug, das wir verwenden werden, ist der Lab-Recorder (kostenlos), der die LSL-Aufzeichnungssoftware ist, die Sie verwenden können, um den LSL-Datenstream aufzuzeichnen, den Sie gerade verbunden haben, sowie um ihn in einer .XDF-Datei zu speichern.
Wenn Sie Ihr EEG-System gestartet und den LSL-Stream gestartet haben, werden Sie diese hier sehen. An diesem Punkt hat der Labvanced-Stream noch nicht gestartet, da die Studie noch nicht begonnen hat. Daher muss die Studie gestartet werden, damit dieser Stream ebenfalls startet.
Der oberste Stream (rot) ist nicht gestartet, weil die Studie noch nicht gestartet wurde. Das Starten der Studie macht diesen Stream grün. Auf der rechten Seite können Sie angeben, wo die Daten gespeichert werden sollen.
Sobald die Studie gestartet ist (d. h. öffnen Sie die Studie in Labvanced und drücken Sie Record
). Sobald die Studie gestartet ist und in der Wartelobby ist, können Sie auf die Schaltfläche „Aktualisieren“ im Lab-Recorder klicken, und Sie können sehen, dass der Labvanced-Stream jetzt bereit ist.
Hinweis: Auf der rechten Seite des Lab-Recorder-Programms können Sie den Dateipfad angeben und wählen, wo die Datenstream-Datei aus den kombinierten Daten des Labvanced-Streams und EEG und möglicherweise anderen Zeitreihenquellen lokal auf Ihrem Computer gespeichert werden soll.
Klicken Sie jetzt auf Start
im Lab-Recorder-Programm (oben links), um die Aufnahme zu starten.
Brain Vision
Um etwas zu sehen, d. h. den Live-Feed des LSL-Streams, müssen Sie ein anderes Tool wie den Brain Vision Analyzer (kostenlos) von Brain Products starten, das wir hier verwenden, um eine schöne Visualisierung dessen anzubieten, was aufgezeichnet wird.
Nachdem Sie auf Connect
geklickt haben, sollten alle Streams hier angezeigt werden. Sie können auch auf den Labvanced-Stream klicken und auf OK
klicken.
Jetzt können wir das Experiment starten und mit der Aufnahme und Visualisierung der EEG-Daten beginnen!
Vorschau des EEG-Livestreams in Brain Vision.
Wenn es im Studium zu einem Klick oder einer Antwort kommt, sehen Sie die Marker auch im EEG-Stream unten im Brain Vision-Programm erscheinen.
Der „Klick“-Marker und der Bedingungenmarker sind auf dieser Skala nicht so deutlich. Das liegt daran, dass der Marker der Bedingungen für den neuen Versuch wenige Millisekunden nach dem Klicken auf das Bild gesetzt wird, sodass sie hier zusammen erscheinen und visuell überlappen.
In Labvanced erstellte Marker erscheinen unten, basierend auf der Bedingungenart und dem Klick.
Insgesamt funktioniert es ziemlich gut!
Aufnahme beenden
Jetzt ist die Studie beendet. Wir können die Datenaufzeichnung stoppen, indem wir auf Stop
im Lab-Recorder-Programm klicken. Es dauert ein paar Sekunden, bis die Datei erstellt und gespeichert wird.
EEG-Datenanalyse
EEGLAB Standalone
Das Letzte, was wir zeigen möchten, ist, wie man EEG-Daten analysiert. Natürlich gibt es viele Möglichkeiten, EEG-Daten zu analysieren, sei es in Python oder in R oder mit MatLab.
Wir werden EEGLAB Standalone (kostenlos) von der University of California - San Diego (UCSD) verwenden, die kein MatLab oder Lizenz benötigt, sondern lediglich eine Laufzeitumgebung, sodass Sie die Datenaufzeichnungen direkt inspizieren können.
Mit den Optionen von EEGLAB Standalone können alle Plugins, wie die zum Laden der .XDF-Dateien (die das Ausgabeformat von Lab Recorder sind), direkt geladen werden.
Gehen Sie zu Datei
→ Daten importieren
→ unter Verwendung von EEGLAB-Funktionen und Plugins
→ von .XDF zu . XDFZ-Datei
-Option, und suchen Sie die Datei von Lab Recorder im lokalen Ordner, der zuvor angegeben wurde, um gespeichert zu werden. Laden Sie sie dann hoch. Dialogfelder erscheinen, um den Import und den Datensatz zu benennen.
Sobald die Datei geöffnet ist, werden Informationen zu den Frames pro Epoch sowie zur Anzahl der Ereignisse usw. angezeigt.
Vorschau des Datensatzes [test_1] aus EEGLAB Standalone.
Wir können zu Plot
→ Channel data (scroll)
gehen, was einen schönen Überblick über die aufgezeichneten Daten bietet und durch die Daten navigiert werden kann.
Öffnung der Kanaldaten und Durchlaufen der Aufzeichnungssitzung. Marker sind oben in Pink und Grün aufgelistet.
Wir werden jetzt keine Analysen durchführen, aber von hier aus können Sie interessante Operationen mit Zeitstempeln und Epoch-Datensätzen durchführen. Es gibt großartige Materialien und Tutorials von EEGLAB, die eine breite Palette von Themen abdecken.
Beispielsweise sehen Sie unter dem Menüpunkt Plot
viele Optionen. Dies ist eine Art Spektrogramm der Aufzeichnung.
Ein Beispiel für eine Figur, die mit EEGLAB Standalone basierend auf den in dieser Demo aufgezeichneten Daten erstellt wurde.
Wir hoffen, dies war nützlich und hat gezeigt, wie schnell eine EEG-Studie mit der Labvanced-Desktop-App eingerichtet werden kann. Danke!