Millisecond Forums

Adaptations to Alcohol Dot Probe task

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

By msderoos - 10/13/2015

Hi everyone,

I'm hoping someone can help me make some changes to the Alcohol Dot Probe task, my limited coding skills unfortunately do not stretch this far and I can't find instructions to make the necessary changes anywhere online.

I have used the Alcohol Dot Probe task for an experiment where two types of images are randomly paired. One group of images is 'symbols' the other group is 'pictures'. I have a target symbol and a target picture, the other images are filler symbols and filler pictures. I need to make two changes to the current design:

1. For each trial, I need a symbol to be paired with a picture on the screen. The combination of the target symbol and target picture should occur together several times, but each should also be paired with filler pictures and filler symbols, and there should be some trials with only a filler picture and a filler symbol on the screen. At the moment, I have all images in four different groups [target picture, target symbol, filler pictures, filler symbols]. For the practice trials, it is correctly pairing only the target picture with the target symbol. I don't know how to make sure all combinations of pictures are used in the subsequent experimental trials.

2. Currently, participants have to press left or right arrow keys if they see the target picture on the screen [i.e. left if it appeared on the left, right if it appeared on the right]. In the experimental trials, there will be some trials where the target picture will not appear on the screen. In these instances, I want them to be able to respond by pressing the space bar to be taken to the next question, but I don't know where in the coding I would make this change, or add this in.

Apologies for my probably confusing explanation. If anyone can help I'd be very grateful! If you require further info, please let me know.

Thanks :)
By Dave - 10/13/2015

Re. #1: You need to encode the combinations of the stimuli / items you want somewhere. You can use <list> elements to do that. Many examples for that can be found in the forum, and a simple example using just <text> elements is provided in the documentation's "How to present stimulus pairs" topic. The same logic applies to using <picture> elements and/or <list>s to pair your items.

In the original, there are two types of trials in the experimental block, Alcohol and Filler:
<block ImageDotProbeTask>
/onblockbegin = [values.task = 2]
/trials = [1-80 = noreplace(Alcohol, Filler)]
</block>

Each of those is run 40 times, in random order, for a total of 80 trials. Depending on how many items or items pairs you have, you may need to increase the trial count and/or introduce additional trial elements (use the existing <trial> elements as a model to create new ones).

Both <trial Alcohol> and <trial Filler> present two stimuli (<picture> elements).

<trial Alcohol>
...
/ ontrialbegin = [trial.Alcohol.insertstimulustime(picture.AlcoholTarget, values.fixationduration)]
/ ontrialbegin = [trial.Alcohol.insertstimulustime(picture.AlcoholComp, values.fixationduration)]
...
</trial>

the *target* stimulus and a *comparison* stimulus.
<trial Filler>
...
/ ontrialbegin = [trial.Filler.insertstimulustime(picture.FillerTarget, values.fixationduration)]
/ ontrialbegin = [trial.Filler.insertstimulustime(picture.FillerComp, values.fixationduration)]
...
</trial>

It is in those picture elements where you need to enter your items and pair them according to your needs.

Re. #2: You need to adjust the <trial> elements' /isvalidresponse and /iscorrectresponse attributes to also allow for the spacebar response. For example
<trial Filler>
...
/ isvalidresponse = [trial.Filler.response == values.responsekey_left || trial.Filler.response == values.responsekey_right]
...
</trial>

considers responses as valid if they are either equal to the scancode stored in values.responsekey_left OR to the scancode in values.responsekey_right.

To also consider the spacebar (scancode 57) as valid, you change that to

<trial Filler>
...
/ isvalidresponse = [trial.Filler.response == values.responsekey_left || trial.Filler.response == values.responsekey_right || trial.Filler.response == 57]
...
</trial>

By msderoos - 10/15/2015

Thanks very much for your reply! I am going to try to implement this asap. Thanks for taking the time to explain :)