Desktop-App-Studie mit EEG-Integration
Inhalte:
Übersicht
Ziel dieser Anleitung ist es, zu demonstrieren, wie man eine einfache Studie mit EEG-Integration in der Desktop-App einrichtet.
Hinweis: Für weitere Informationen zur Desktop-App, einschließlich eines Installationshandbuchs und eines Überblicks über die Funktionen der App, siehe diese Seite.
Hinweis: Für weitere Informationen zur Desktop-App, einschließlich eines Installationshandbuchs und eines Überblicks über die Funktionen der App, siehe diese Seite.
Studieneinstellungen
Im Reiter „Studieneinstellungen“ scrollen Sie im Bereich „Experimentfunktionen“ 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 Ausgabestream 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 markieren, 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 mit dem Labvanced-Ereignissystem ganz einfach ist.
Einfache Studien Einrichtung
Für die Zwecke dieser Anleitung werden wir schnell eine Studie zum Bouba-Kiki-Effekt einrichten, um eine Diskussionsgrundlage zu schaffen und eine Basis für die Einrichtung der EEG-bezogenen Ereignisse zu haben, um Marker basierend auf Folgendem zu senden:
- Welche Stimulus-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), beachten Sie die Zeitmarke 04:19
in diesem Video:
Kurze Beschreibung des Stimuli-Upload-Prozesses (basierend auf dem obigen Video):
- Im Trialsystem erstellen wir die Ebene und benennen sie „Bouba“, die für die Stimulusbilder runder Formen gedacht ist, und erstellen dann eine weitere Ebene und benennen sie „Kiki“ für die Stimulusbilder spitzer Formen.
- Nun klicken wir unter der Bouba-Bedingung, die im Trialsystem angezeigt wird, darauf und wählen das Objekt aus, laden unsere relevanten Bilddateien hoch und wählen die Optionen, um: i.) so viele Trials zu erstellen, wie es Stimuli gibt, und ii.) sie automatisch zuzuweisen.
- Dann machen wir das Gleiche 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. Nachdem wir die Ereignisse eingerichtet haben (nächster Abschnitt), wird die finale Aufgabe so aussehen, dass ein Klick auf das Bild die Studie zum nächsten Trial vorantreibt, während EEG-Markierungen gesendet werden.
Ereignisse einrichten
Jetzt zu den Ereignissen: Die Hauptidee ist, dass wir einen EEG-Marker senden wollen, basierend darauf, welche Art / Kategorie von Bild der Teilnehmer sieht, sowie einen Marker dafür, wann das Bild angeklickt wurde.
Ereignis 1: Marker (Frame/Stimulus-Onset) an EEG senden
Für dieses erste Ereignis möchten wir, dass das EEG weiß: a) wann das Frame mit dem Stimulus begonnen hat, aber b.) auch aus welcher Bildkategorie der Stimulus stammt (d.h. Bouba oder Kiki).
AUSLÖSER
Trial and Frame Trigger
→On Frame Start
Auswählen von Frame Start als Auslöser dafür, wann der erste EEG-Marker erstellt 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 festzulegen, rufen wir die entsprechende Faktorvariable auf und setzen sie gleich 'bouba'. Dies geschieht durch die Anwendung der folgenden Schritte im Editor:
- 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 Studiendesigns sollten Sie Ihren Faktoren eindeutige und beschreibende Namen geben. Im obigen Beispiel haben wir den Standardnamen factor1_tg1_task0 verwendet, aber für strukturell sinnvolle Designs sollten Sie Ihren Faktoren genauere Namen geben, die der Kategorie entsprechen (z.B. „Form“).
Sobald diese WENN
-Bedingung erfüllt ist, wollen wir, dass Folgendes geschieht:
Add Action
API Actions
→Send LabStreamingLayer Marker
- Wählen Sie den Stream aus, der zuvor für diesen Zweck unter den „Studieneinstellungen“ erstellt wurde (d.h. der labvanced_stream_1)
- Wert zu senden:
Constant Value
→String
→ geben Sie das Wort bouba ein
Festlegung des LSL-Markers basierend auf dem Bildstimulus-Bedingungstyp.
Wir wiederholen den Prozess 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 Duplikat-Symbol oben neben dem Wort `IF`) und ändern Sie einfach die Zeichenfolgen, 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 Stimulusform-Typ) sendet, sobald das Frame startet, d.h. sobald der Stimulus präsentiert wird.
Ereignis 2: Teilnehmerreaktion
Jetzt wollen 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 zum nächsten Trial übergehen (alles basierend auf dem Mausklick auf das Bild).
Wir können ein weiteres Ereignis erstellen, wenn das Bild angeklickt wird, und das EEG den Marker „Klick“ erhalten.
AUSLÖSER
User Input
→Mouse Trigger
+ Add Target
→ wählen Sie das Bildobjekt (image_1)
Auswählen eines Mausklicks auf das Bild als Auslöser dafür, wann der zweite Marker erstellt werden sollte.
AKTION 1 (Senden des „Klick“-Markeres 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 aufzeichnen)
Verwenden Sie die Set / Record Variable
und erstellen Sie eine Variable, die skalarnum und numerisch ist und die Mausauslösedauer vom Frame-Onset aufzeichnen:
+ Action
Variable Actions
→Set / Record Variable
Select
(grüner Knopf) →+New Variable
(oben rechts)- Name: RT
- Format: Skalare
- Datentyp: Numerisch
- → ‚OK‘
- Bleistiftsymbol →
Trigger (Mouse)
→Trigger Time (From Frame Onset)
AKTION 3 (Zum nächsten Trial springen)
+ Action
Jump Actions
→Jump To
→Next Trial
Wenn Sie dieses Verfahren befolgen, sollte Ihr Ereignis so aussehen:
Drei Aktionen sind festgelegt, die beim Mausklick auf das Zielbild auftreten: i.) Senden des Markers an das EEG, Quantifizierung der Reaktionszeit und Wechsel zum nächsten Trial.
ZUSAMMENFASSUNG
Das obige Ereignis mit dem Auslöser, auf ein bestimmtes Bild zu klicken, hat die folgenden 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 wird zum nächsten Trial fortgesetzt.
An diesem Punkt ist eine sehr einfache Studie mit einer Struktur und den Möglichkeiten eingerichtet, Marker an ein EEG zu senden!
- Zwei verschiedene Stimuli-Typen
- EEG erhält Marker basierend auf:
- angezeigtem Stimuli-Typ
- wann der „Klick“ stattfand
- Die Studie zeichnet die Reaktionszeit auf und hat das Navigationssystem eingerichtet
LOKALMODUS
In der Desktop-App zeigt das Umschalten in den „lokalen“ Modus, dass eine Synchronisation stattfindet.
Die Studie wird lokal auf der Desktop-App geladen und aktualisiert.
Nach ein paar Sekunden wurde die aktualisierte Studie heruntergeladen, sodass alle Änderungen, die online vorgenommen wurden, in der lokalen Version angezeigt werden.
Kommen wir nun zu einer EEG-Aufzeichnungssitzung.
EEG-Datenaufzeichnungssitzung
Um mit einer EEG-Datenaufnahme-Sitzung zu beginnen, benötigen wir natürlich die oben erstellte Labvanced-Studie (mit ihrer Struktur und den Ereignissen zum Senden der Marker). Aber wir werden auch einige zusätzliche Programme (kostenlos) benötigen, um das EEG mit Markern zu versehen sowie die Werkzeuge zur Visualisierung und möglicherweise Analyse der Daten.
EEG-Ausrüstung (Muse 2 EEG)
In dieser Demo verwenden wir ein tragbares Muse 2 EEG-Headset. Mit dem BlueMuse (kostenlos) Programm geöffnet (für das Muse 2 EEG-Headset), klicken wir auf die Option „Streaming starten“. Ein zweites Fenster wird angezeigt, das 4 verschiedene Streams zeigt: den EEG-Kanal, Beschleunigungsmesser, 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), welcher die LSL-Aufzeichnungssoftware ist, die Sie verwenden können, um den LSL-Datenstream aufzuzeichnen, den Sie gerade verbunden haben, sowie ihn in einer .XDF-Datei zu speichern.
Wenn Sie Ihr EEG-System gestartet und den LSL-Stream gestartet haben, sehen Sie sie hier. Zu diesem Zeitpunkt wurde der Labvanced-Stream noch nicht gestartet, da die Studie noch nicht gestartet wurde. Die Studie muss also gestartet werden, damit auch dieser Stream gestartet wird.
Der obere Stream (in Rot) wurde nicht gestartet, da die Studie noch nicht gestartet wurde. Das Starten der Studie macht diesen Stream grün. Rechts können Sie angeben, wo die Daten gespeichert werden sollen.
Sobald die Studie gestartet wird (d.h. die Studie in Labvanced öffnen und auf Record
drücken). Sobald die Studie gestartet ist und im Wartebereich 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 der kombinierten Daten aus dem Labvanced-Stream und EEG und möglicherweise anderen Zeitreihenquellen lokal auf Ihrem Computer gespeichert werden soll.
Klicken Sie nun 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 weiteres Werkzeug wie den Brain Vision Analyzer (kostenlos) von Brain Products starten, das wir hier verwenden, um eine schöne Visualisierung dessen zu zeigen, was aufgezeichnet wird.
Beim Klicken auf Connect
sollten alle Streams hier angezeigt werden. Sie können auch den Labvanced-Stream auswählen 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 einen Klick oder eine Reaktion in der Studie gibt, sehen Sie die Marker auch im EEG-Stream unten im Brain Vision-Programm erscheinen.
Der „Klick“-Marker und der Bedingungen-Marker sind auf dieser Skala nicht so deutlich. Das liegt daran, dass Millisekunden nach dem Klicken auf das Bild der Bedingungen-Marker für den neuen Trial 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!
Beenden der Aufnahme
Jetzt ist die Studie beendet. Wir können die Datenaufnahme stoppen, indem wir im Lab Recorder-Programm auf Stop
klicken. Es dauert ein paar Sekunden, bis die Datei erstellt und gespeichert ist.
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, zum Beispiel in Python oder in R oder MatLab zu verwenden.
Wir werden das EEGLAB Standalone (kostenlos) von der University of California - San Diego (UCSD) verwenden, das keine MatLab-Lizenz benötigt, sondern nur eine Laufzeitumgebung, sodass Sie die Datenaufzeichnungen direkt inspizieren können.
Mit den EEGLAB Standalone-Optionen können alle Plugins wie die zum Laden der .XDF-Dateien (die das Ausgabeformat von Lab Recorder sind) direkt geladen werden.
Wählen Sie im Menü Datei
die Option Daten importieren
→ Mit EEGLAB-Funktionen und -Plugins
→ von .XDF nach .XDFZ-Datei
aus und finden Sie die Datei vom Lab Recorder im vorher festgelegten lokalen Ordner zum Speichern. Laden Sie dann die Datei. Dialogfelder erscheinen, um den Import und den Datensatz zu benennen.
Sobald die Datei geöffnet ist, erscheinen Informationen zu den Frames pro Epoch sowie die Anzahl der Ereignisse usw.
Vorschau des Datensatzes [test_1] aus EEGLAB Standalone.
Wir können zu Plot
→ Kanal-Daten (scrollen)
gehen, was eine schöne Übersicht der aufgezeichneten Daten bietet, und durch die Daten blättern.
Öffnen der Kanal-Daten und Durchblättern der Aufzeichnungssitzung. Marker sind oben in Rosa und Grün aufgeführt.
Wir werden jetzt keine Analyse durchführen, aber von hier aus können Sie interessante Operationen unter Verwendung von Zeitstempeln und Epoch-Datenbanken durchführen. Es gibt schöne Materialien und Tutorials von EEGLAB, die eine breite Palette von Themen abdecken.
Zum Beispiel können Sie im Menüelement Plot
viele Optionen sehen. Dies ist eine Art Spektrogramm der Aufzeichnung.
Ein Beispiel für eine Abbildung, die mit EEGLAB Standalone basierend auf den in dieser Demo aufgezeichneten Daten erstellt wurde.
Wir hoffen, dass dies nützlich war und demonstrierte, wie schnell eine EEG-Studie mit der Labvanced-Desktop-App eingerichtet werden kann. Vielen Dank!