Millisecond Forums

Dot Probe Experiment Wanted Please!

https://forums.millisecond.com/Topic4664.aspx

By Lucy and Shiv - 6/21/2010

Hi, We currently have our dot probe experiement on eprime but we want to switch to inquisit.


Does anyone have a sample experiement we could use please? Our study involves presenting two photos (one critical face and one compassionate face) on the screen for 500 milliseconds and then replacing one of the photos with either a : or ..


The particpant is required to click on on the dots as quickly as possible. And hopefully reaction times will show us where the attentional biases were.


Thank you!


Lucy and Shiv.

By Dave - 6/21/2010

Hi Lucy and Shiv,


the Inquisit helpfile contains a Dot Probe Tutorial (also available online: http://www.millisecond.com/support/docs/v2/html/tutorials/dot%20probe/dottutorial.htm). You might want to work through this to (a) get familiar with the Inquisit basics and (b) get hints for programming your own Dot Probe paradigm. Try this and if you get stuck, I'll be here to help.


Best wishes from a fellow Inquisit user,


~Dave

By Lucy and Shiv - 6/21/2010

Hi Dave,


Thanks for your quick reply!


We have followed that tutorial and ran the experiment with the words. However we are unsure about how to get our photos up instead of the words. (We've been trying for a few hours now and are getting quite frustrated!)


Also in the example they use an input of voicekey, we would like to use two keys on the keyboard instead, say A and L. How would we go about doing this?


Thanks for your help!


Lucy and Shiv.

By Dave - 6/21/2010

However we are unsure about how to get our photos up instead of the words. (We've been trying for a few hours now and are getting quite frustrated!)


You need to use <picture> elements instead of <text> elements.


Also in the example they use an input of voicekey, we would like to use two keys on the keyboard instead, say A and L. How would we go about doing this?


Here you need to change the '/ inputdevice' setting to keyboard. You also need to modify the the '/ validresponse' and '/ correctresponse' settings to reflect this change, e.g.


<trial mytrial>
/ inputdevice = keyboard
/ validresponse = ("a", "l")
/ correctresponse = ("a")
[...]
</trial>


Hope this helps,


~Dave

By Lucy and Shiv - 6/21/2010

Thanks Dave,


You're very helpful!


We are going to have one female and one male (2 photos each - critical and compassionate). We need the critical face of each to at first be on the left hand side and then the right hand side, to control for hemispheric lateralisation. Therefore there will be four sets of faces/dots in each section.


We would like our faces to be replaced with either a : or .. - half the time over the compassionate face and half the time over the critical face, and at the same half the time with a : and the other with ..


Is this possible?


We have amended the script to this, can you spot any problems?:


<picture>


/ items = FCritical.bmp


/ items = FCompassionate.bmp


/ position = (50%, 40%)


</picture>


 


 


<text targetleft> 


/ items = ("          :          ")


/ position = (50%, 40%)


</text>


 


<text targetright> 


/ items = ("          ..          ")


/ position = (50%, 60%)


</text>


 


<text focuspoint> 


/ items = ("          +          ")


</text>


 


<page intro>


^^^Dot Probe Task


^^Welcome and thank you for participating in this task.


^^Welcome to the experiment.


</page>


 


<page task>


Dot Probe Task Instructions:^^


^^The trials in the following task will go as follows:


 


^1. Look at the fixation point " + "


^2. Then two pictures will flash on the screen.


^3. Then you will see either  :  or  .. 


 


^Your task is to indicate as quickly as possible if you saw  :  or  .. 


 


^Press the spacebar to START THE TRIAL


</page>


 


<page taskreminder>


Reminder: ^Your task is to indicate as quickly as possible if you saw  :  or  .. 


</page>


 


<page end>


The Dot Probe Task is now concluded.


^^This task illustrates the effect of attention on processing visual stimuli.


</page>


 


<instruct>


/ nextkey = (" ")


/ lastlabel = ("Press the spacebar to continue")


/ nextlabel = ("Press the spacebar to continue")


/ fontstyle = ("Arial", 16pt)


</instruct>


 


<trial mytrial> 


/ stimulustimes = [1=focuspoint; 500=targetleft, targetright]


/ inputdevice = keyboard


/valid response = ("a", "l")


/correct response = ("a)


</trial>


 


<expt>


/ preinstructions = (intro, task, taskreminder)


/ postinstructions = (end)


/ blocks = [mytrial]


</expt>


 


<defaults>


/ fontstyle = ("Courier New", 16pt)


/ posttrialpause = 500


</defaults>


 


 


 






By Dave - 6/22/2010


We are going to have one female and one male (2 photos each - critical and compassionate). We need the critical face of each to at first be on the left hand side and then the right hand side, to control for hemispheric lateralisation. Therefore there will be four sets of faces/dots in each section.


We would like our faces to be replaced with either a : or .. - half the time over the compassionate face and half the time over the critical face, and at the same half the time with a : and the other with ..


Is this possible?



Yes, it is possible. However, things may be a little awkward to implement with Inquisit 2 (i.e. Inquisit 3 has some features which one could use to handle this more elegantly). Anyway, the strategy applicable to Inquisit 2 basically comes down to setting up a separate <trial> element for each unique combination of your within-subjects factors. Based on your description, I think you need the following


male-critical(left)-compassionate(right)-:(left)-..(right)
male-critical(left)-compassionate(right)-:(right)-..(left)
male-critical(right)-compassionate(left)-:(left)-..(right)
male-critical(right)-compassionate(left)-:(right)-..(left)

female-critical(left)-compassionate(right)-:(left)-..(right)
female-critical(left)-compassionate(right)-:(right)-..(left)
female-critical(right)-compassionate(left)-:(left)-..(right)
female-critical(right)-compassionate(left)-:(right)-..(left)


resulting in eight different <trial> elements each with their particular set of stimulus elements (<picture> and <text>) to draw from. Additionally, you'll want to take a closer look at how exactly the balancing / sequencing is done in the original experiment (i.e. the E-Prime version).


~Dave

By Lucy and Shiv - 6/22/2010

Hi again Dave,


Where do we need to save the pictures? We used the template you gave us above. And name the photos fcritical, mcritical etc. But when we ran the experiment it said 'cannot locate item fcritical.bmp'


With the 8 elements above do we need to split them into 8 trials, <trial 1>, <trial 2> etc or can they go in a list together?


Thanks,


Lucy and Shiv

By Lucy and Shiv - 6/22/2010

Hi,


Ignore that message - we have worked on the script some more and arre now getting just one error message


"name of element is missing"


Please could you advise


Here is the script so far:





<text targetleft> 
/ items = ("          :          ")
/ position = (50%, 40%)
</text>


<text targetright> 
/ items = ("          ..          ")
/ position = (50%, 60%)
</text>


<text focuspoint> 
/ items = ("          +          ")
</text>


<page intro>
^^^Dot Probe Task
^^Welcome and thank you for participating in this task.
^^Welcome to the experiment.
</page>


<page task>
Dot Probe Task Instructions:^^
^^The trials in the following task will go as follows:


^1. Look at the fixation point " + "
^2. Then two pictures will flash on the screen.
^3. Then you will see either  :  or  .. 


^Your task is to indicate as quickly as possible if you saw  :  or  .. 


^Press the spacebar to START THE TRIAL
</page>


<page /taskreminder>
Reminder: ^Your task is to indicate as quickly as possible if you saw  :  or  .. 
</page>


<page end>
The Dot Probe Task is now concluded.
^^This task illustrates the effect of attention on processing visual stimuli.
</page>


<instruct>
/ nextkey = (" ")
/ lastlabel = ("Press the spacebar to continue")
/ nextlabel = ("Press the spacebar to continue")
/ fontstyle = ("Arial", 16pt)
</instruct>


<trial criticalleft> 
/ stimulustimes = [1=focuspoint; 500=targetleft, targetright]
/ inputdevice = keyboard
/ validresponse =("a", "l")
/ correctresponse = ("a")
/ timeout = 10000
</trial>


<trial criticalright> 
/ stimulustimes = [1=focuspoint; 500=targetleft, targetright]
/ inputdevice = keyboard
/ validresponse =("a", "l")
/ correctresponse = ("l")
/ timeout = 10000
</trial>


<trial compassionleft> 
/ stimulustimes = [1=focuspoint; 500=targetleft, targetright]
/ inputdevice = keyboard
/ validresponse =("a", "l")
/ correctresponse = ("a")
/ timeout = 10000
</trial>


<trial compassionright> 
/ stimulustimes = [1=focuspoint; 500=targetleft, targetright]
/ inputdevice = keyboard
/ validresponse =("a", "l")
/ correctresponse = ("l")
/ timeout = 10000
</trial>



<block critical>
/ trials = [1-2=noreplace(criticalleft, criticalright)]
</block>


<block compassion>
/ trials = [1-2=noreplace(compassionleft, compassionright)]
</block>


<expt>
/ preinstructions = (intro, task)
/ postinstructions = (end)
/ blocks = [1=critical; 2=compassion]
</expt>


<defaults>
/ fontstyle = ("Courier New", 16pt)
/ posttrialpause = 500
</defaults>



By Dave - 6/22/2010

You have an illegal character in


<page /taskreminder>
Reminder: ^Your task is to indicate as quickly as possible if you saw  :  or  ..
</page>


~Dave

By Lucy and Shiv - 6/22/2010

Thank you so much for all your help.


We have just ran the experiment, however our photos have not come up - only the : and ..


Also we would like these on the left and right, not above one another....


Thanks again, you're a [*]


Lucy and Shiv

By Dave - 6/22/2010

For the pictures to show up, you need to define <picture> elements and include them in the '/ stimulustimes' of your <trial> elements. E.g.


<picture fcriticalleft>
/ items = ("fcritical.jpg")
/ position = (30%, 50%)
</picture>

<picture fcompassionateright>
/ items = ("fcompassionate.jpg")
/ position = (70%, 50%)
</picture>

<trial criticalleft>
/ stimulustimes = [0=focuspoint; 500=fcriticalleft, fcompassionateright ; 1000=targetleft, targetright]
/ inputdevice = keyboard
/ validresponse =("a", "l")
/ correctresponse = ("a")
/ timeout = 10000
</trial>


Also make sure your picture files are located in the same folder as the script. To change the position of the dots (left and right), adjust the settings in the '/ position' attribute, e.g.


<text targetleft> 
/ items = ("          :          ")
/
position = (30%, 50%)

</text>


<text targetright> 
/ items = ("          ..          ")
/
position = (70%, 50%)

</text>


~Dave

By Lucy and Shiv - 6/22/2010

Hi Dave,


We're so close, but the dots come over the faces so we tried to amend the timeout of the faces and the dots but errors are still coming up:


"stimulus sequence already defined" and "could not located element 1000"


Can you point us in the right direction again please :-)


 <text targetleft> 
/ items = ("          :          ")
/ position = (30%, 50%)
</text>


<text targetright> 
/ items = ("          ..          ")
/ position = (70%, 50%)
</text>


<text focuspoint> 
/ items = ("          +          ")
</text>


<picture fcriticalleft>
/ items = ("fcritical.jpg")
/ position = (30%, 50%)
</picture>


<picture fcriticalright>
/ items = ("fcritical.jpg")
/ position = (30%, 50%)
</picture>


<picture fcompassionright>
/ items = ("fcompassion.jpg")
/ position = (70%, 50%)
</picture>


<picture fcompassionleft>
/ items = ("fcompassion.jpg")
/ position = (70%, 50%)
</picture>


<page intro>
^^^Dot Probe Task
^^Welcome and thank you for participating in this task.
^^Welcome to the experiment.
</page>


<page task>
Dot Probe Task Instructions:^^
^^The trials in the following task will go as follows:


^1. Look at the fixation point " + "
^2. Then two pictures will flash on the screen.
^3. Then you will see either  :  or  .. 


^Your task is to indicate as quickly as possible if you saw  :  or  .. 


^Press the spacebar to START THE TRIAL
</page>


<page taskreminder>
Reminder: ^Your task is to indicate as quickly as possible if you saw  :  or  .. 
</page>


<page end>
The Dot Probe Task is now concluded.
^^This task illustrates the effect of attention on processing visual stimuli.
</page>


<instruct>
/ nextkey = (" ")
/ lastlabel = ("Press the spacebar to continue")
/ nextlabel = ("Press the spacebar to continue")
/ fontstyle = ("Arial", 16pt)
</instruct>


<trial criticalleft> 
/ stimulustimes = [1=focuspoint; 500=fcriticalleft, fcompassionright]
/ timeout = 1000
/ stimulustimes = [1000=targetleft, targetright]
/ inputdevice = keyboard
/ validresponse =("a", "l")
/ correctresponse = ("a")
</trial>


<trial criticalright> 
/ stimulustimes = [1=focuspoint; 500=fcompassionleft, fcriticalright]
/ timeout = 1000
/ stimulustimes = [1000=targetleft, targetright]
/ inputdevice = keyboard
/ validresponse =("a", "l")
/ correctresponse = ("l")
</trial>


<trial compassionleft> 
/ stimulustimes = [1=focuspoint; 500=fcompassionleft, fcriticalright]
/ timeout = 1000
/ stimulustimes = [1000=targetleft, targetright]
/ inputdevice = keyboard
/ validresponse =("a", "l")
/ correctresponse = ("a")
</trial>


<trial compassionright> 
/ stimulustimes = [1=focuspoint; 500=fcriticalleft, fcompassionright]
/ timeout = 1000
/ stimulustimes = [1000=targetleft, targetright]
/ inputdevice = keyboard
/ validresponse =("a", "l")
/ correctresponse = ("l")
</trial>


<block critical>
/ trials = [1-2=noreplace(criticalleft, criticalright)]
</block>


<block compassion>
/ trials = [1-2=noreplace(compassionleft, compassionright)]
</block>


<expt>
/ preinstructions = (intro, task)
/ postinstructions = (end)
/ blocks = [1=critical; 2=compassion]
</expt>


<defaults>
/ fontstyle = ("Courier New", 16pt)
/ posttrialpause = 500
</defaults>

By Dave - 6/22/2010

<trial criticalleft> 
/ stimulustimes = [1=focuspoint;
500=fcriticalleft, fcompassionright]

/ timeout = 1000
/
stimulustimes = [1000=targetleft, targetright]

/ inputdevice =
keyboard
/ validresponse =("a", "l")
/ correctresponse = ("a")
</trial>


Collapse the two stimulustimes attributes into one (in all your trials). You'll also want to review the '/ timeout' settings.

By Lucy and Shiv - 6/22/2010

We tried putting the stimilustimes in one line. However this lead to the dots coming over the faces. We need the faces to flash up for 500 and then disappear, to be replaced by just one of the following:


: or ..


In half the trials we need the : or .. to be over the compassion face, the other half over the neutral


and at the same time we need half the time to have the : being the item that replaces the face, and the other half we need it to be ..


Does that make sense?!


So sorry to keep bugging you, but its nice to find someone who knows that they're talking about!


[Y]


Lucy and Shiv

By Dave - 6/22/2010


We tried putting the stimilustimes in one line. However this lead to the dots coming over the faces. We need the faces to flash up for 500 and then disappear, to be replaced by just one of the following:


: or ..



For that read http://www.millisecond.com/support/docs/v2/html/howto/howtoerase.htm.



In half the trials we need the : or .. to be over the compassion face, the other half over the neutral


and at the same time we need half the time to have the : being the item that replaces the face, and the other half we need it to be ..



Already covered here http://www.millisecond.com/forums/Topic4675.aspx#4675. You need additional <trial> elements.


~Dave

By Dave - 7/11/2010

Just following up here since you haven't reported back in a while: So, did you get things up and running or are you still experiencing issues or have aditional questions?


Best wishes,


~Dave

By Lucy and Shiv - 7/11/2010

Hi Dave,


No we do still have difficulties. Is there any training we can go on to learn how to use Inquisit (not online based)? Our experiment is quite complicated and I think the only way we are going to get it is to have someone talk us through each stage. We have already had a meeting with a colleague who has helped but as her experiment is quite different to ours we still are stuck with certain aspects.


Lucy.

By Dave - 7/11/2010

Hi Lucy,


sorry to hear that. As for getting up to speed with Inquisit (by self-study), I'd recommend:


(1) Spend time with the tutorials contained in the manual. Make sure you actually do them, instead of just reading through them.


(2) Ron Dotsch also has a great little tutorial available here: http://web.me.com/rdotsch/tutorials/inquisit/index.html.


(3) Download some of the less complicated scripts from the Inquisit Task Library and "reverse-engineer" them, i.e. follow through each segment of the code and try to figure out exactly what it does. Experiment a bit by altering the script and seeing the effect of your changes in action.


(4) Try to program your first task from scratch. The important thing here is to keep things simple untill you've got the basic concepts down.


Other, more general recommendations:


- Map out a *very* detailed description of the procedure you want to implement before doing any actual coding (flow charts can be helpful, too).


- Break down the general problem (your procedure) into smaller sub-problems. Solve each of the smaller problems by itself, then combine them.


-Related to the above:  Start small, scale up later.


I don't know if there's any face-to-face training available in your area. You might want to ask around in the circle of researchers you know, if there's anyone with some Inquisit experience available, who'd be able / willing to help you out.


If not, all I can do is try to walk you through the process via email or via the forum.


~Dave

By Lucy and Shiv - 7/19/2010

Hi Dave,


Sean replied to a message where I requested Inquisit tutition. Since then I've had another go at the script and have kind of got it. I just have one more query. I have sent it to Sean but here it is, maybe you could help?


Thanks! :)





on 07-20-2010 10:08 AM


Hi Sean,


I've kind of figured out how to do this now. Just have one query:


I need the : or .. to appear randomly over either the left face or the right face. Sometimes I need it to be a : and sometimes ..


I've written this but the .. goes over the left face everytime! Please could you check?


MAIN EXPERIMENT DOCUMENT


// Defaults:


// =============================================================================


<defaults>


/ screencolor = (255, 255, 255)


/ fontstyle = ("Verdana", 18, true)


/ displaymode = (1600, 900, 60, 32)


/ inputdevice = keyboard


</defaults>


// Files Included:


// =============================================================================


<include>


/ file = "Includes/Picture_Stimuli.exp"


/ file = "Includes/Trials.exp"


</include>


 


//Instructions


// =============================================================================


<page intro>


^^ Dot Probe Task


^^ Welcome and thank you for participating in this task.


</page>


<page task>


^^ Dot Probe Task Instructions:


^^ On each trial, two photos will be displayed followed by two dots replacing one of the photos.


^^ Your task is to choose which dots appeared


^^ either : or ..


</page>


<page end>


The Dot Probe Task is now concluded.


^^ Thank you for taking part.


</page>


 


//Blocks


// =============================================================================


<block practice>


/bgstim = (focuspoint)


/trials = [1-28 = noreplace(f1complneutralr, f1complcriticalr, f1neutrallcompr, f1criticallcompr,f2complneutralr, f2complcriticalr, f2neutrallcompr, f2criticallcompr,


f3complneutralr, f3complcriticalr, f3neutrallcompr, f3criticallcompr, f4complneutralr, f4complcriticalr, f4neutrallcompr, f4criticallcompr,


f5complneutralr, f5complcriticalr, f5neutrallcompr, f5criticallcompr, f6complneutralr, f6complcriticalr, f6neutrallcompr, f6criticallcompr,


f7complneutralr, f7complcriticalr, f7neutrallcompr, f7criticallcompr)]


</block>


 


//Experiment


// =============================================================================


Experiment


<expt>


/preinstructions = (intro, task)


/postinstructions = (end)


/blocks = [1=practice]


</expt>



TRIALS DOCUMENT (ONLY PASTED 1 PERSON THOUGH)





// =============================================================================


// Single Target Trials for Control Experiment.


// =============================================================================


//


// 56 trials - 4 for each of the 14 people (different combinations of compassionate, neutral and critical faces).


//


// For each person = compassionate left, neutral right


// compassionate left, critical right


// neutral left, compassionate right


// critical left, compassionate right


// =============================================================================


 


//Dots


// =============================================================================


<trial target1left>


/stimulustimes = [1=target1left]


/inputdevice = keyboard


/correctresponse = ("a")


</trial>


<trial target2left>


/stimulustimes = [1=target2left]


/inputdevice = keyboard


/correctresponse = ("a")


</trial>


<trial target1right>


/stimulustimes = [1=target1right]


/inputdevice = keyboard


/correctresponse = ("l")


</trial>


<trial target2right>


/stimulustimes = [1=target2right]


/inputdevice = keyboard


/correctresponse = ("l")


</trial>


// ==========================


// Female 1


// ==========================


<trial f1complneutralr>


/ pretrialpause = 500


/ stimulustimes = [1= focuspoint; 500 = rectangle_pic; 1000=f1compassionleft_pic,f1neutralright_pic; 1500 = rectangleright_pic, rectangleleft_pic; 2000 = target1left; target1right; target2left; target2right]


/ inputdevice = keyboard


/ validresponse = ("a", "l")


/ posttrialpause = 180


</trial>


<trial f1complcriticalr>


/ pretrialpause = 500


/ stimulustimes = [1= focuspoint; 500 = rectangle_pic; 1000=f1compassionleft_pic,f1criticalright_pic; 1500 = rectangleright_pic, rectangleleft_pic; 2000 =target1left; target1right; target2left; target2right]


/ inputdevice = keyboard


/ validresponse = ("a", "l")


/ posttrialpause = 180


</trial>


<trial f1neutrallcompr>


/ pretrialpause = 500


/ stimulustimes = [1= focuspoint; 500 = rectangle_pic; 1000=f1neutralleft_pic,f1compassionright_pic; 1500 = rectangleright_pic, rectangleleft_pic; 2000 = target1left; target1right; target2left; target2right]


/ inputdevice = keyboard


/ validresponse = ("a", "l")


/ posttrialpause = 180


</trial>


<trial f1criticallcompr>


/ pretrialpause = 500


/ stimulustimes = [1= focuspoint; 500 = rectangle_pic; 1000=f1criticalleft_pic,f1compassionright_pic; 1500 = rectangleright_pic, rectangleleft_pic; 2000 =target1left; target1right; target2left; target2right]


/ inputdevice = keyboard


/ validresponse = ("a", "l")


/ posttrialpause = 180


</trial>


 


And then I have a picture stimuli file where I have defined all my pictures....


 


Thanks!




































on 07-20-2010 10:10 AM


Basically where I've put


2000 =target1left; target1right; target2left; target2right]


I need it to be randomly one of those 4. whereas at the moment everytime it's coming up over the left face.


I've defined the dots in my picture stimuli file:






<text target1left>


/items = (" .. ")


/ position = (30%, 50%)


</text>


<text target1right>


/items = (" .. ")


/ position = (70%, 50%)


</text>


<text target2left>


/items = (" : ")


/ position = (30%, 50%)


</text>


<text target2right>


/items = (" : ")


/ position = (70%, 50%)


</text>






By Dave - 7/19/2010

Hey y'all,


can you zip the whole thing up (main experiment file, pictures, include files, etc.) and attach it to this thread (see the 'Options' tab when posting a reply)?


~Dave

By Lucy and Shiv - 7/19/2010

Hi Dave,


Here are the files.


I have a folder called gfx containing all my pictures but I can't send those as the people have not given their permission to have their photos on the internet!

By Lucy and Shiv - 7/19/2010

and here is the picture stimuli and trials documents

By Dave - 7/19/2010

One thing that hits me right away:


<trial f1complneutralr>
    / pretrialpause = 500
    / stimulustimes = [1= focuspoint; 500 = rectangle_pic; 1000=f1compassionleft_pic,f1neutralright_pic; 1500 = rectangleright_pic, rectangleleft_pic; 2000 = target1left; target1right; target2left; target2right]
    / inputdevice = keyboard
    / validresponse = ("a", "l")
    / posttrialpause = 180
</trial>


You'll want to separate the highlighted entries with a comma (','), not a semicolon (';'). The erroneously used semicolon will lead to only 'target1left' being parsed. This applies to all your <trial> elements, the above is just one example. Let me know if this fixes your issues.


~Dave

By Lucy and Shiv - 7/19/2010

Thanks Dave, so if i separate with commas instead will it randomly choose one of the 4 target options for each trial?

By Dave - 7/19/2010

Not randomly. For that you'll have to go for something like


2000=noreplace(target1left, target1right, target2left, target2right)


i.e. random without replacement


or


2000=replace(target1left, target1right, target2left,
target2right)


i.e. random with replacement


~Dave

By Lucy and Shiv - 7/19/2010

Hi Dave,


Thanks I've done that now and it appears to be coming on left and right, sometimes : and sometimes .. which is great.


Is there any way to control how many times each dot appears? E.g. I want half the time it to be a : and half the time a .. And half of the time to be over a compassionate face and the other half over the neutral/critical...


Where is the results output when the game is completed? Will I be able to see in which trials the : replaced the compassionate face and which ones it replaced the neutral/critical face for example.


(I need to be able to look at reaction times to see which face the participant was looking at)


Also I need the dots to flash up fpr and then disappear. At the moment they stay on the screen until the participant has responded.


Thanks for all your help,


Lucy.

By Dave - 7/19/2010

Is there any way to control how many times each dot appears? E.g. I want half the time it to be a : and half the time a .. And half of the time to be over a compassionate face and the other half over the neutral/critical...


Depends on how you've set up the <text> elements containing the dots and the respective <trial> elements. It's really important to map such stuff out before doing any coding (no offense intended). To me it seems like you have a whole bunch of factors (gender, facetype, face position, dottype, dotposition, etc.) you'd like have balanced (i.e. each possible combination of factors should appear equally often). As stated from the get-go, the easiest way to do this is to set up a separate <trial> element for each of these combinations (there may be a lot!), and then sample from these trials in equal proportions at the <block> level. This certainly isn't the only way to do it, though. However, all other approaches would probably require a little more experience with Inquisit / how Inquisit works (again, no offense intended).


Where is the results output when the game is completed? Will I be able to see in which trials the : replaced the compassionate face and which ones it replaced the neutral/critical face for example.


(I need to be able to look at reaction
times to see which face the participant was looking at)


When you run the experiment, a file with the *.dat extension should be created in the same folder your experiment files reside in.


Also I need the dots to flash up fpr and then disappear. At the moment they stay on the screen until the participant has responded.
.


Then you'll have to overwrite them with another stimulus (e.g. the rectangle stims) at some specified time (-> via stimulustimes), e.g.


/ stimulustimes = [1=focuspoint; 500=rectangle_pic;
1000=f1compassionleft_pic,f1neutralright_pic; 1500=rectangleright_pic,rectangleleft_pic; 2000=noreplace(target1left,target1right,target2left,target2right); 2500=rectangleright_pic,rectangleleft_pic]


Also give the '/ responsetime' attribute a proper look to make sure Inquisit starts registering responses at the right time.


~Dave


By Lucy and Shiv - 7/19/2010

Hi Dave,


Don't worry no offence taken! I don't really understand the different blocks/elements so thats why I just did it in one block. I prefer being taught things in 'real life' which is why i asked sean if there are any courses available for this. But unfortunately I think all learning has to be done online! In the end I found someone at the local university who had set up a similar experiment to me and went to see her and used her way of doing things (one block).


I'm happy to change if you think will work better though.


What does the responsetime attribute bit mean?


and don't understand this:


Depends on how you've set up the <text> elements containing the dots and the respective <trial> elements. It's really important to map such stuff out before doing any coding (no offense intended). To me it seems like you have a whole bunch of factors (gender, facetype, face position, dottype, dotposition, etc.) you'd like have balanced (i.e. each possible combination of factors should appear equally often). As stated from the get-go, the easiest way to do this is to set up a separate <trial> element for each of these combinations (there may be a lot!), and then sample from these trials in equal proportions at the <block> level. This certainly isn't the only way to do it, though. However, all other approaches would probably require a little more experience with Inquisit / how Inquisit works (again, no offense intended).


Could you give me an example please?


Thanks


Lucy.

By Dave - 7/19/2010

I don't really understand the different blocks/elements so thats why I just did it in one block


Using one <block> is perfectly fine.


What does the responsetime attribute bit mean?


By default, Inquisit will start "listening" for responses only when the complete stimulus sequence as defined by '/ stimulustimes' or '/ stimulusframes' has been completed. In the example from my previous post, that would be 2500 ms into the trial (i.e. after the dots have been erased / overwritten). However, you probably want your subjects to be able to respond earlier (e.g. as soon as the dots appear at 2000 ms). The '/ responsetime' attribute allows you to do this.



and don't understand this:


Depends on how you've set up the <text> elements containing the dots and the respective <trial> elements. It's really important to map such stuff out before doing any coding (no offense intended). To me it seems like you have a whole bunch of factors (gender, facetype, face position, dottype, dotposition, etc.) you'd like have balanced (i.e. each possible combination of factors should appear equally often). As stated from the get-go, the easiest way to do this is to set up a separate <trial> element for each of these combinations (there may be a lot!), and then sample from these trials in equal proportions at the <block> level. This certainly isn't the only way to do it, though. However, all other approaches would probably require a little more experience with Inquisit / how Inquisit works (again, no offense intended).


Could you give me an example please?



Reciting from a previous response: In your design, you manipulates certain stimulus properties (gender of face -- male v. female, type of facial expressions -- compassionate v. critical, face screen position -- left  v. right, dottype -- : v. ., dot position -- left v. right, maybe more). This yields the following combiantions (may not be exhaustive):


male-critical(left)-compassionate(right)-:(left)-..(right)
male-critical(left)-compassionate(right)-:(right)-..(left)
male-critical(right)-compassionate(left)-:(left)-..(right)
male-critical(right)-compassionate(left)-:(right)-..(left)

female-critical(left)-compassionate(right)-:(left)-..(right)
female-critical(left)-compassionate(right)-:(right)-..(left)
female-critical(right)-compassionate(left)-:(left)-..(right)
female-critical(right)-compassionate(left)-:(right)-..(left)


Given your limited experience (no offense, as you know...), I think you should simply set up a separate <trial> element for each single combination (let's call 'em t1 to t8 for brevity's sake) and then sample these in equal proportions at the <block> level


<block myblock>
/ trials = [1-32=noreplace(t1,t2,t3,t4,t5,t6,t7,t8)]
[...]
</block>


which would result in each trialtype being run 4 times (8 x 4 = 32). Forgive me if there's something I'm not catching.


~Dave



By Lucy and Shiv - 7/20/2010

Hi Dave,


Thanks for your help. Think I've done it now (well it appears to be working - no red lines when I try and run anymore!)


Having a bit of trouble with the output though. I've attached it with some queries.


I need to see the participants reaction times from when the dot appeared to when they gave a response. I also need to see if they gave the correct response (a or l). There are a lot of columns that I am unsure about so was hoping you could help me narrow it down to just get the information that I need.


Thanks,


Lucy.

By Dave - 7/20/2010

Hi Lucy,


There are a lot of columns that I am unsure about


Inquisit's default data recording scheme is described in the documentation (http://www.millisecond.com/support/docs/v2/html/language/datarecording.htm; for details on each column see http://www.millisecond.com/support/docs/v2/html/language/attributes/columns.htm).


A few additional comments on my part:


I need to see the participants reaction times from when the dot appeared to when they gave a response


Participant's reaction times are contained in the data file's 'latency' column. However, as I mentioned earlier, you should double-check if your <trial> elements start recording those reaction times at the right moment (-> my previous bit about the '/ responsetime' attribute), i.e. at the same time the dots appear (2000ms, if I remember correctly).


I also need to see if they gave the correct response (a or l).


The key pressed is recorded in the 'response' column. However, note that Inquisit does not record the "literal" key value (a or l), but the corresponding keyboard scancode (http://www.millisecond.com/support/docs/v2/html/language/scancodes.htm). The 'correct' column would usually indicate whether the given response was correct, however you need to define the '/ correctresponse' attribute in your <trial> elements for this to work (otherwise Inquisit can't know which of the available, "valid" responses is to be scored as correct).


Regards,


~Dave

By Lucy and Shiv - 7/20/2010

Thanks Dave,


Those links are really useful.


I changed each trial to show a response time at 2000:


<trial f1aCOMPneutral*>


/ pretrialpause = 500


/ stimulustimes = [1= focuspoint; 500 = rectangle_pic; 1000=f1compassionleft_pic,f1neutralright_pic; 1500 = rectangleright_pic, rectangleleft_pic; 2000= replace(target1left, target2left); 2500 = rectangleright_pic, rectangleleft_pic]


/ inputdevice = keyboard


/ responsetime = 2000


/ validresponse = ("a", "l")


/ posttrialpause = 180


</trial>





 I also specified earlier in my trials document that when it was target1left or target1right the correct response was 'a' and when it was target2left or target2right the correct response was 'l'. Do I need to add this into the the main trial section too? The problem is because I've asked it to randomly put a '..' or ':' on the left or right hand side I won't know if the correct response is 'a' or 'l'.


Here is where I defined the targets earlier in the file:


<trial target1left>


/stimulustimes = [1=target1left]


/inputdevice = keyboard


/correctresponse = ("a")


</trial>


<trial target2left>


/stimulustimes = [1=target2left]


/inputdevice = keyboard


/correctresponse = ("l")


</trial>



(same for right)



/ validresponse = ("a", "l")


/ posttrialpause = 180


</trial>




Thanks,


Lucy





 




By Dave - 7/20/2010

The problem is because I've asked it to randomly put a '..' or ':' on the left or right hand side I won't know if the correct response is 'a' or 'l'.


Then you'll have to score correct vs. incorrect responses post-hoc (i.e. based on the dot position during data preparation / analysis in Excel, SPSS or whatever).


Running out of valedictions,


~Dave

By Lucy and Shiv - 7/20/2010

Hi Dave,


Is there no way Inquisit can know that whenever the target has a '1' in it the correct response is 'a' and when it's a '2' the correct response is 'l'?


If not is there any point me putting this in?:



<trial target1left>


/stimulustimes = [1=target1left]


/inputdevice = keyboard


/correctresponse = ("a")


</trial>


<trial target2left>


/stimulustimes = [1=target2left]


/inputdevice = keyboard


/correctresponse = ("l")


</trial>


<trial target1right>


/stimulustimes = [1=target1right]


/inputdevice = keyboard


/correctresponse = ("a")


</trial>


<trial target2right>


/stimulustimes = [1=target2right]


/inputdevice = keyboard


/correctresponse = ("l")


</trial>


/ validresponse = ("a", "l")


/ posttrialpause = 180


</trial>


By Dave - 7/20/2010

Sorry, obviously I'm missing something. However, how about you just take the pragmatic way and generate a few test data sets to check if the correct / incorrect scoring, etc. is working as you intended? If so, perfect. If not, figure out in which cases it doesn't work and debug from there.


~Dave

By Lucy and Shiv - 7/20/2010

Hi,


I had a go at the experiment and answered incorrectly for the first 3 trials and then correctly for the next 3, however in the correct column in the output it just says 0 for each one.


I'll just have to go through by hand and write down if the response was correct or not if it's not possible to use the code I wrote defining the correct response in each instance.


Thanks


Lucy.

By Dave - 7/20/2010

I had a go at the experiment and answered incorrectly for the first 3 trials and then correctly for the next 3, however in the correct column in the output it just says 0 for each one.


This really sounds like you haven't defined any '/ correctresponse' attribute for these <trial> elements. I suggest you review these parts of the script.


~Dave

By Lucy and Shiv - 7/20/2010

Hi,


So is this not correct?:


(I can't specify which is the correct response in each trial because I don't know whether the : or the .. is going to be selected (I want it to be random)).


I assumed that if I defined the correct response for each of the 4 targets, then when they were called in the individual trial the correct response would be known....



<trial target2right>


/stimulustimes = [1=target2right]


/inputdevice = keyboard


/correctresponse = ("l")


</trial>




By Lucy and Shiv - 7/20/2010

Hi,


Also another output question,


Can I just delete the columns where I've put a question mark? I can't see what use they have....


I have highlighted some things I am still not sure about in yellow.


Thanks,


Lucy.

By Lucy and Shiv - 7/20/2010


Do I need to say something like I've put in bold? Obviously that's not right but is it something like that?


If not please could you help me find out how Inquisit can locate my previous definitions of the correct responses...


Just looked into writing the correct response column by hand but it will take me ages, 112 trials x 150 participants!


Thanks




<trial f1aCOMPneutral*>


/ pretrialpause = 500


/ stimulustimes = [1= focuspoint; 500 = rectangle_pic; 1000=f1compassionleft_pic,f1neutralright_pic; 1500 = rectangleright_pic, rectangleleft_pic; 2000= replace(target1left, target2left); 2500 = rectangleright_pic, rectangleleft_pic]


/ inputdevice = keyboard


/ responsetime = 2000


/ validresponse = ("a", "l")


/ correctresponse = [(target1left, target1right = 'a'; target2left, target2right = 'l')]


/ posttrialpause = 180


</trial>


By Dave - 7/20/2010

I assumed that if I defined the correct response for each of the 4 targets


How would you do that in Inquisit 2? The ability to define "dynamic" correct responses became only available in Inquisit 3.0. That means post-hoc scoring then, I guess.


Can I just delete the columns where I've put a question mark? I can't see what use they have....


The links I provided earlier explain what these are. For each stimulus displayed in a given <trial>, Inquisit records the stim's item number (stimulusnumber), the actual item (stimulusitem), its vertical and horizontal screen position (stimulusvpos, stimulushpos) and its actual onset (i.e. when the display command  was issued; stimulusonset). Since this is done for every stimulus in a trial, these columns are numbered and appear in the same order the stims were displayed / listed in the '/ stimulustimes' or '/ stimulusframes' attribute. E.g. if you have a trial displaying three stims, you'll get 'stimulusnumber1, stimulusitem1, stimulusvpos1, stimulushpos1, stimulusonset1, stimulusnumber2, [...], stimulusonset3'. I suggest you leave these data alone, you never know if you might need them later for (re-)analysis purposes. Throwing these columns out in data preparation is easy enough.


~Dave

By Lucy and Shiv - 7/20/2010

How would you do that in Inquisit 2? The ability to define "dynamic" correct responses became only available in Inquisit 3.0. That means post-hoc scoring then, I guess.


I thought that I had done this here:


<trial target2right>


/stimulustimes = [1=target2right]


/inputdevice = keyboard


/correctresponse = ("l")


</trial>


It makes sense to me logically that I have said for each of the 4 targets which is the correct response but obviously I am not making sense in Inquisit-language! Do you think I should get Inquisit 3.0 then?


With regards to the columns it all makes sense up until Stimulus8. Then I am confused as to why some rows have a 0 and some have a 1. Whereas for the earlier Stimuli the whole column had 1's....



Sorry I'm being a pain!


Thanks so much for all your help


Lucy.

By Dave - 7/20/2010


How would you do that in Inquisit 2? The ability to define "dynamic" correct responses became only available in Inquisit 3.0. That means post-hoc scoring then, I guess.


I thought that I had done this here:


<trial target2right>


/stimulustimes = [1=target2right]


/inputdevice = keyboard


/correctresponse = ("l")


</trial>



Looking at the data files you posted, this <trial target2right> is never run. So how would e.g. <trial f5gCRITICALneutral*>, which is actually run, know about this and know what to do with this? Note that


<trial mytrial>
/ stimulusframes = [1=target2left]
[...]
</trial>


does *not* reference <trial target2left>, but a *stimulus* element named 'target2left', e.g. <picture target2left>!


If you wanted to get the correct / incorrect scoring working in Inquisit 2, you'd again have to set up different <trial> elements for each possibility, e.g.


<trial f5gCRITICALneutral_target2left>
/ validresponse = ("a","l")
/ correctresponse = ("a")
[...]
</trial>

<trial f5gCRITICALneutral_target2right>
/ validresponse = ("a","l")
/ correctresponse = ("l")
[...]
</trial>


About upgrading to Inquisit 3: V3 is really cool because it allows you to do much more sophisticated stuff than V2, and as such it's worth considering. However, I don't think upgrading makes much sense as long as you haven't really gotten your head around the basics in V2. Anyway, you might just download the demo version and try it!


With regards to the columns it all makes sense up until Stimulus8. Then I am confused as to why some rows have a 0 and some have a 1. Whereas for the earlier Stimuli the whole column had 1's....


Trials differ in the number of stimuli they display. Obviously you have a <trial> element in your script that displays 9 stims. Obviously, you also have <trial> elements that display less than 9 stims, so the 'stimulusnumber9', etc. columns will display 0s for these trials, since there's nothing there to record.


Cheers,


~Dave

By Lucy and Shiv - 7/20/2010

Hiya,


I'm getting really confused now - am tempted just to switch back to eprime! (Although I bet that would be just as hard)


Why will my trials have different number of stimuli? I thought that each one would be the same?!


I think I'm going to have manually score the correct/incorrect responses then. Because if I do it as you suggest - with each option being a separate trial - it will lead me to having too many trials (we don't want the experiment to last for more than 5 minutes really).


 To keep it fair I would have to make sure all 8 possibilities from the 14 actors were presented. If i also added in the : and .. options I'd end up with an experiment twice as long. 224 trials. I just want the computer to choose whether it's a : or  a .. and know which response is the correct one!


Does that make sense?! I really don't want to have to manually input though so not sure what I will end up doing....


I'm thinking about having 3 blocks - one for compassion/neutral and one for critical/neutral. Just so when I get the output I can easily sort the data and keep it separate. And also a practice. Will it work if I make these changes?:


<block practice>


/ trials = [1-10 = noreplace(LIST ALL OPTIONS)]


/ bgstim = (taskreminder)


</block>



<block critical>


/ preinstructions = (taskreminder)


/ trials = [1-56= noreplace(LIST ALL CRITICAL/NEUTRAL TRIALS)]


</block>



and then




<expt>


/ preinstructions = (intro, task, taskreminder)


/ postinstructions = (end)


/ blocks = [1=practice; 2=critical; 3=compassion]


</expt>


 



Bit in bold - how do I get it to randomly take trials from the compassion and critical blocks (rather than just running them consecutively)



Thanks again!



Lucy.




<block compassion>


/ preinstructions = (taskreminder)


/ trials = [1-56 = noreplace(LIST ALL COMPASSION/NEUTRAL TRIALS)]


</block>


By Dave - 7/20/2010



<expt>


/ preinstructions = (intro, task, taskreminder)


/ postinstructions = (end)


/ blocks = [1=practice; 2=critical; 3=compassion]


</expt>


 



Bit in bold - how do I get it to randomly take trials from the compassion and critical blocks (rather than just running them consecutively)



Not at all. This something that needs to be done at the <block> level. If you want a block to run both "critical" and "compassion" trials, you'll have to sample from these trials via the <block>'s '/ trials' attribute. So


<block compassion>


/ preinstructions = (taskreminder)


/ trials = [1-56 = noreplace(LIST ALL COMPASSION/NEUTRAL TRIALS)]


</block>


 


and


 


<block critical>


/ preinstructions = (taskreminder)


/ trials = [1-56 = noreplace(LIST ALL CRITICAL/NEUTRAL TRIALS)]


</block>


 


would have to become


 


<block test>


/ preinstructions = (taskreminder)


/ trials = [1-112= noreplace(LIST ALL COMPASSION/NEUTRAL TRIALS, LIST ALL CRITICAL/NEUTRAL TRIALS)]


</block>


 


just like you've done it in the practice block.


 


~Dave


 


P.S.: Your confusion suggests that you need to take a step back and review your knowledge about implementing experiments in Inquisit before proceeding. Maybe read http://www.millisecond.com/forums/Topic3712.aspx#3712 to get a better understanding of how Inquisit's language is structured.


By Lucy and Shiv - 7/21/2010

Thanks Dave


<block compassion>


/ preinstructions = (taskreminder)


/ trials = [1-56 = noreplace(LIST ALL COMPASSION/NEUTRAL TRIALS)]


</block>


 


and


 


<block critical>


/ preinstructions = (taskreminder)


/ trials = [1-56 = noreplace(LIST ALL CRITICAL/NEUTRAL TRIALS)]


</block>


 


would have to become


 


<block test>


/ preinstructions = (taskreminder)


/ trials = [1-112= noreplace(LIST ALL COMPASSION/NEUTRAL TRIALS, LIST ALL CRITICAL/NEUTRAL TRIALS)]


</block>


 


just like you've done it in the practice block.


So my two blocks would become <block test.> and have all 112 trials in them. The idea of having two blocks was that in the output I'd have some trials with 'Compassion' in the block column and some with 'Critical', then I could easily sort them on Excel so I can look at the two conditions separately. If I do it how you've explained won't they all just be under the same block name? i.e. test in the example you've given.


Sorry for my confusion, I haven't got a programming brain!

By Dave - 7/21/2010

If I do it how you've explained won't they all just be under the same block name?


Yes. Look, a <block> is a self-contained unit. If you want to have both critical/neutral and compassionate/neutral trials run in random order, they need to be contained in the same block.


The idea of having two blocks was that in the output I'd have some trials with 'Compassion' in the block column and some with 'Critical', then I could easily sort them on Excel so I can look at the two conditions separately.


Instead compute a new variable in Excel based on the trialcode column (which should tell you if a given trials was compassionate/neutral or critical/neutral along with a bunch of other things) and sort based on this new variable.


~Dave

By Lucy and Shiv - 7/21/2010

Hi,


Ok I'll just do two blocks then, one practice and then one for compassion and critical.


With regards to the correct column query in the output - How about if I double my trials and for each one add a '1' or '2' to the trial name. 1 = .. and 2 = : and define the correct response....


E.g.  Instead of just one trial f1aCOMPneutral*, it is now:


<trial f1aCOMPneutral*1>


            / pretrialpause = 500


            / stimulustimes = [1= focuspoint; 500 = rectangle_pic; 1000=f1compassionleft_pic,f1neutralright_pic; 1500 = rectangleright_pic, rectangleleft_pic; 2000= replace(target1left); 2500 = rectangleright_pic, rectangleleft_pic]


            / inputdevice = keyboard


            / responsetime = 2000


            / validresponse = ("a", "l")


            /correctresponse = ("a")


            / posttrialpause = 180


</trial>


 


<trial f1aCOMPneutral*2>


            / pretrialpause = 500


            / stimulustimes = [1= focuspoint; 500 = rectangle_pic; 1000=f1compassionleft_pic,f1neutralright_pic; 1500 = rectangleright_pic, rectangleleft_pic; 2000= replace(target2left); 2500 = rectangleright_pic, rectangleleft_pic]


            / inputdevice = keyboard


            / responsetime = 2000


            / validresponse = ("a", "l")


            /correctresponse = ("l")


            / posttrialpause = 180


</trial>


 This means I will have 224 trials in the trials document. I still want 112 trials to run in the experiment, and for each trial name just one out of the options trial f1aCOMPneutral*1 OR trial f1aCOMPneutral*2 for example.


Is this possible? (before I change all my trials!) Can I write in the </expt> bit to run 112 out of the 224 and choose either 1 or 2.


E.g. logically I'd guess it would be this (but obviously it won't be in inquisit language!)

/trials = [1-112 = noreplace (f1aCOMPneutral*1, f1aCOMPneutral*2) (f1bcompNEUTRAL1, f1bcompNEUTRAL2) then list all 224 trials....


Thanks again,


Sorry I don't understand any of it!