EEG-fMRI US

Mai 5, 2009

Hello,

First of all I think that I will have to switch to English. My name is Patrick Britz and I work for →Brain Products. So why do I have to switch to English? The plan is that I will be responsible for our customers in the US from the first of July on.

You are possibly already aware that Brain Products is well known for the combined measurement of →EEG and fMRI and for the Brain Vision →Analyzer 2. And because my PhD thesis was about combining EEG and fMRI it was natural that I worked with the Analyzer.

So if you have any questions, please let me know.

But you shouldn’t take that to mean that your questions should be limited to EEG and fMRI or to the Analyzer.You can, of course, ask me about any of the other things Brain Products has to offer.

Did you know we are developing a special →BCI Pack which will be released soon?

Or that we have an Analyzer 2 solution →ICA-BCI with BCI2000?

Or that we have a very advanced system for →EEG and TMS (a Brain Amp DC with a Fast´n Easy Cap TMS)?

Okay, so that is beginning to sound like advertisement.

All I am trying to say is: If you have any questions please let me know and I will be happy to answer them.

You will find my email address here:  →Brain Products Sales Team.

All the best Patrick

Advertisements

Patrick Britz ist jetzt bei Brain Products

Dezember 20, 2008


Hallo zusammen,

Ich bin jetzt bei Brain Products und mache Sales und Support. Bitte habt Nachsicht mit mir, dass ich nicht mehr wirklich zu RQube und E-Prime komme. Tut mir leid. Naja, eventuell lesen wir uns dafür im Support von Brain Products, oder sehen uns auf einem EEG & fMRI oder Analyzer 2 Workshop – würde mich freuen.

Beste Grüße Patrick

Zufalls Reihenfolge bearbeiten (modify random sequence).

Februar 20, 2008

Wenn man viele Listen erzeugt hat und möchte etwas ändern ist es am einfachsten diese Änderung in →RQube vorzunehmen. Also „qini“ Datei laden, an der entsprechenden Stelle im GUI die Änderung eingeben und sich neue Sequenzen ausgeben lassen.

Wenn man aber entweder keine neuen Reihenfolgen erzeugen möchte, weil man z.B. die gleichen Reihenfolgen in einer zweiten Studie einsetzten möchte, oder wenn man eine Änderung vornehmen will, die in RQube nicht realisiert ist, dann gibt es dafür ein sehr komfortables Programm.

Mit dem Programm →Inforapid kann man eine beliebige Anzahl von Textdateien (also auch „.qrnd-Dateien“) auf einmal durchsuchen und dabei Text ersetzen oder ändern.

 

Hier sind ein paar Beispiele:

1.) Aufgabe: In folgender Datei sollen alle Trials die gleiche Prozedur verwenden.

Weight Nested Procedure condicion
1 SubListnumb TrialProc0 number
1 SubListletter TrialProc1 letter
1 SubListletter TrialProc1 letter

Lösung: Zweimal Inforapid über alle Listen laufen lassen und dabei einmal „TrialProc0“ durch „TrialProc“ ersetzen und einmal „TrialProc1“ durch „TrialProc“ ersetzen. Anschließend sehen alle Listen so aus:

Weight Nested Procedure condicion
1 SubListnumb TrialProc number
1 SubListletter TrialProc letter
1 SubListletter TrialProc letter

Ok das wäre einfacher mit RQube zu machen gewesen.

 

2.) Aufgabe: Die richtige Antwort auf condition „number“ soll ein „L“ sein und für condition „letter“ ein „S“ (oder welche Taste auch immer).

Weight Nested Procedure condicion
1 SubListnumb TrialProc number
1 SubListletter TrialProc letter
1 SubListletter TrialProc letter

Lösung: Hier dreimal Inforapid über alle Listen laufen lassen und dabei:
„condicion“ durch „condicion correctResp“ ersetzen (Achtung Tab nicht vergessen)
„number“ durch „number L“ ersetzen
„letter“ durch „letter S“ ersetzen

Das Ergebnis sieht so aus:

Weight Nested Procedure condicion correctResp
1 SubListnumb TrialProc number L
1 SubListletter TrialProc letter S
1 SubListletter TrialProc letter S

Dieses Format wäre in RQube schon nicht mehr zu machen gewesen. Natürlich hätte man diese Aufgabe noch in E-Prime durch ein Inline lösen können.

 

3.) Aufgabe: Für die Hälfte aller Listen soll die Tastenbelegung für die Antworten umgekehrt sein.

Weight Nested Procedure condicion correctResp
1 SubListnumb TrialProc number L
1 SubListletter TrialProc letter S
1 SubListletter TrialProc letter S

Lösung: Die hälfte aller Dateien in Inforapid markieren und dann zweimal bearbeiten:
„number L“ durch „number S“ ersetzen
„letter S“ durch „letter L“ ersetzen

Wichtig ist dabei nicht nur „L“ und „S“ zu ersetzen sonst würde es so aussehen:
(Weight Nelted Procedure condicion correctRelp)
(1 LubSiltnumb TriasProc number S)
(1 LubSiltsetter TriasProc setter L)

Und das wäre ein sicherer Absturz!

Der Richtige Output sieht so aus:
Weight Nested Procedure condicion correctResp
1 SubListnumb TrialProc number S
1 SubListletter TrialProc letter L
1 SubListletter TrialProc letter L

Das hier wäre in RQube nicht und in E-Prime nur mit Skript möglich.

Ich hoffe, Ihr kommt selbst noch auf Ideen was man damit sonst noch machen kann.

Das Programm Inforapid findet Ihr unter → http://www.inforapid.de. Es ist für Privatanwender kostenlos und für Firmen kostet es 25 Euro.

 

Rqube Manual beschädigt?

November 3, 2007

Eine älteres Build von RQube hatte ein Handbuch, welches mit einem anderen PDF-Maker erstellt wurde – die neusten Versionen des Adobe Reader sehen diese Datei als „beschädigt“ an und öffnen sie nicht. Die jetzige Version des Handbuches funktioniert mit allen gebräuchlichen PDF-Viewern. Sollte man von dem Problem betroffen sein, ist es am einfachsten die Datei „QManual.pdf“ im RQube Ordner auszutauschen. Das PDF-File ist hier QManual.pdf. Eine Deinstallation und anschließende Neuinstallation behebt das Problem natürlich auch (geht fast genauso schnell) und man hat die neuste Version von RQube. Eigentlich kann man die zweite Vorgehensweise empfehlen, da seit der Version mit dem inkompatiblen Handbuch einige wesentlichen Verbesserungen vorgenommen wurden.

Speicherüberlauf beim Laden einer qini

Oktober 8, 2007

RQube Fehler

Leider hat es bei der Version 1.00.5 von RQube einen Bug gegeben. Die Version 1.00.5 kann im Gegensatz zu der Version 1.00.4 beliebig große Zahlen (1E300) als „tryout“ verwenden. Die Version 1.00.4 konnte maximal 32.767 Versuche für einen Liste machen, was für einige komplexere Anwendungen nicht ausgereicht hat. Leider hatte ich versäumt die Einleseprozedur an die großen Zahlen anzupassen. Somit ist die Version 1.00.5 nicht in der Lage die mit ihr erzeugten qini Dateien einzulesen. Dieser Fehler ist in der Version 1.00.6 behoben. Wer also beim laden einer Datei das Problem „Fehler 6. Speicherüberlauf“ hat, kann folgendes tun: Entweder die neue Version installieren (einfach über die alte Version), oder die qini im Editor aufrufen und dort per Hand „tryout“ von 60.000 in 30.000 umwandeln. Ich bitte um Entschuldigung – und hoffe, es hat sich niemand mit dem Fehler zu lange aufgehalten.

E-Prime Liste (Zufallsreihenfolge), eine „nested List“ für jede Bedingungskombination erstellen

August 10, 2007

Wenn man den E-Prime Output bei RQube wählt, wird man u.a. nach der Option „nested List“ gefragt. Hier kann man entweder eine Standartprozedur (immer gleich) auswählen, oder einen Faktor (die nested List trägt den Namen der jeweiligen Stufe des Faktors). Leider ist es nicht möglich, den Namen der nested List aus mehreren Faktoren (also deren Stufen) zusammen zu setzten. Ich habe, weil es gerade benötigt wurde, ein VB Skript geschrieben, welches diese Aufgabe auf einem (sehr) primitiven Weg löst. Mit ein wenig VB kann man sich das Skript anpassen. Wenn diese Fragestellung öfter kommen sollte, werde ich a) es ordentlich machen, b) dem Ding ein GUI verpassen und c) auch ein bissle was in Usability tun.

(Hier ist das Skript: e_dat_leser.txt)
(Die Endung muss in „.frm“ umbenannt werde [Wordpress erlaubt leider keine .exe .frm etc])

RQube: Wie kann man einer Person mehrere Listen (= Zufallsreihenfolge) zuweisen? (von Patrick Britz)

August 9, 2007

RQube: Wie kann man einer Person mehrere Listen zuweisen? (von Patrick Britz)

Da RQube automatisch jeder Liste eine Nummer mit dem Inkrement von Eins gibt, hat normalerweise jede Versuchsperson eine eigene Liste, die ihr über ihre Versuchspersonennummer zugeordnet ist. Wenn man in einem Experiment mehrere Listen realisieren möchte, gibt es dafür verschiedene Möglichkeiten. Ich habe hier mal drei Möglichkeiten etwas ausführlicher beschrieben. Der Beispielcode ist für ein E-Prime InLine.

Erste Möglichkeit
Ich greife für jede Liste in einen eigenen Ordner (der Pfad wird pro Block/Durchgang zugewiesen). In jedem Ordner sind so viele Listen, wie es Teilnehmer geben wird (besser ein paar mehr). Dies ist auch die beste Lösung, wenn in einem Experiment verschiedene Listen gebraucht werden. („ListenOrdner“ ist der Name des Verzeichnisses in dem sich die Listen befinden -> anpassen).

Erster Block:
Liste1 = „ListenOrdner1\\“ & „Experimentname“ & c.GetAttrib(„Subject“) & „.qrnd“
Zweiter Block:
Liste2 = „ListenOrdner2\\“ & „Experimentname“ & c.GetAttrib(„Subject“) & „.qrnd“
Dritter Block:
Liste3 = „ListenOrdner3\\“ & „Experimentname“ & c.GetAttrib(„Subject“) & „.qrnd“

Zweite Möglichkeit
In einem Ordner werden Listen erstellt, und zwar in der Anzahl: Blöcke mal Versuchspersonen. Die richtige Liste ermittele ich bei jedem Block, indem ich die Subjektnummer mit der Anzahl der gewünschten Listen multipliziere (Konstant) und den „Block“ dazu addiere.

Für drei Blöcke sieht das aus wie folgt:
Erster Block:
VpNr = c.GetAttrib(„Subject“)
ListenNr = (((VpNr – 1) * 3) +1)
Liste1 = „ListenOrdner\\“ & „Experimentname“ & ListenNr & „.qrnd“
Zweiter Block:
VpNr = c.GetAttrib(„Subject“)
ListenNr = (((VpNr – 1) * 3) +2)
Liste1 = „ListenOrdner\\“ & „Experimentname“ & ListenNr & „.qrnd“
Dritter Block:
VpNr = c.GetAttrib(„Subject“)
ListenNr = (((VpNr – 1) * 3) +3)
Liste1 = „ListenOrdner\\“ & „Experimentname“ & ListenNr & „.qrnd“

 

Dritte, einfache aber unelegante Lösung
Wenn ich z.B. weniger als 100 Versuchspersonen habe, dann kann ich für den ersten Durchgang eine „1“ davor schreiben, für die zweite Liste eine „2“ usw. Danach muss man in E-Prime die Listen wie folgt aufgerufen (ich brauche bei 3 Durchgängen und 60 Personen 360 Listen):

Erster Block:
Liste1 = „ListenOrdner\\“ & „Experimentname“ & „1“ & c.GetAttrib(„Subject“) & „.qrnd“
Zweiter Block:
Liste2 = „ListenOrdner\\“ & „Experimentname“ & „2“ & c.GetAttrib(„Subject“) & „.qrnd“
Dritter Block:
Liste3 = „ListenOrdner\\“ & „Experimentname“ & „3“ & c.GetAttrib(„Subject“) & „.qrnd“

 

 

 

 

Nur der Vollständigkeit halber hier der restliche Code für das InLine (E-Prime)
‚ Liste laden
‚ Es werden für jede Vp drei Listen geladen
Dim Liste1 as String
Dim Liste2 as String
Dim Liste3 as String
Dim VpNr as Integer ‚ Variable braucht man nur bei der oben genannte „zweite Möglichkeit“

ListenNr as Integer ‚ ‚Variable braucht man ebenfalls nur bei der o.g. „zweiten Möglichkeit“

‚ Hier den angepassten Beispielcode einfügen…
‚ Wenn man im Programm 3 separate Trial Listen hat, dann kann man diese laden wie folgt (sonst immer die aktuelle Liste überschreiben [gleicher Code]):

triallist1.LoadMethod = ebLoadMethodFile
triallist1.Filename = liste1
triallist1.Load
triallist1.Reset
triallist2.LoadMethod = ebLoadMethodFile
triallist2.Filename = liste2
triallist2.Load
triallist2.Reset
triallist3.LoadMethod = ebLoadMethodFile
triallist3.Filename = liste2
triallist3.Load
triallist3.Reset