Millisecond Forums

congruent trials not appearing during Simon task (but says they are when looking at raw data file)

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

By Nick00004 - 9/14/2014

Hello,

I tweaked the Simon task from the Inquisit library to increase the number of test blocks (from 1 to 3) and the number of trials w/ in each block (from 28 to 60). As in the original, 50% of trials are congruent and 50% incongruent. Here, incongruent means either a blue box appears on the right side of the screen or a red box appears on the left side of the screen. What's odd is that when I run the task, all the trials appear as incongruent, with no congruent ones, but the raw data files say that it's tracking both types of trials, 50/50. Comparing the two scripts - the original and mine - I can't seem to find the line of code which may be causing the error. I've included the line of code that I adapted where the lists and trials are specified.

Thanks!


################ test block - 30 congruent trials ##################

<list congruentstimtype>
/ items = (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2)
/ replace = false
/ selectionrate = trial
</list>

<list congruenthpos>
/ items = (85%,85%,85%,85%,85%,85%,85%,85%,85%,85%,85%,85%,85%,85%,85%,15%,15%,15%,15%,15%,15%,15%,15%,15%,15%,15%,15%,15%,15%,15%)
/ selectionmode = list.congruentstimtype.currentindex
</list>

<list congruentcresp>
/ items = (42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54)
/ selectionmode = list.congruentstimtype.currentindex
</list>

################ test block - 30 incongruent trials ##################

<list incongruentstimtype>
/ items = (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2)
/ replace = false
/ selectionrate = trial
</list>

<list incongruenthpos>
/ items = (85%,85%,85%,85%,85%,85%,85%,85%,85%,85%,85%,85%,85%,85%,85%,15%,15%,15%,15%,15%,15%,15%,15%,15%,15%,15%,15%,15%,15%,15%)
/ selectionmode = list.incongruentstimtype.currentindex
</list>

<list incongruentcresp>
/ items = (42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54)
/ selectionmode = list.incongruentstimtype.currentindex
</list>

#########################congruent stim trial ########################

<trial congruenttrial>
/ ontrialbegin = [if(script.currentblock=="practiceblock")
    {
    values.stimtype=list.pcongruentstimtype.nextvalue;
    values.stimhpos=list.pcongruenthpos.nextvalue;
    values.cresp=list.pcongruentcresp.nextvalue;
    }
    else
    {
    values.stimtype=list.congruentstimtype.nextvalue;
    values.stimhpos=list.congruenthpos.nextvalue;
    values.cresp=list.congruentcresp.nextvalue;
    }]
/ posttrialpause = 500
/ stimulustimes = [0=fixation; 800=blank; 1050=stimulus,debug]
/ validresponse = (42,54)
/ iscorrectresponse = [trial.congruenttrial.response==values.cresp]
/ response = timeout(1000)
</trial>
By Dave - 9/14/2014

Where / how exactly are you distinguishing between congruent and incongruent stimuli?

<list congruentstimtype>
/ items = (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2)
/ replace = false
/ selectionrate = trial
</list>
...
<list incongruentstimtype>
/ items = (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2)
/ replace = false
/ selectionrate = trial
</list>

appear to refer to the exact same stimuli, no difference.
By Dave - 9/14/2014

To be more precise: Look at all your <lists>

<list congruentstimtype>
/ items = (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2)
/ replace = false
/ selectionrate = trial
</list>

<list congruenthpos>
/ items = (85%,85%,85%,85%,85%,85%,85%,85%,85%,85%,85%,85%,85%,85%,85%,15%,15%,15%,15%,15%,15%,15%,15%,15%,15%,15%,15%,15%,15%,15%)
/ selectionmode = list.congruentstimtype.currentindex
</list>

<list congruentcresp>
/ items = (42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54)
/ selectionmode = list.congruentstimtype.currentindex
</list>

################ test block - 30 incongruent trials ##################

<list incongruentstimtype>
/ items = (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2)
/ replace = false
/ selectionrate = trial
</list>

<list incongruenthpos>
/ items = (85%,85%,85%,85%,85%,85%,85%,85%,85%,85%,85%,85%,85%,85%,85%,15%,15%,15%,15%,15%,15%,15%,15%,15%,15%,15%,15%,15%,15%,15%)
/ selectionmode = list.incongruentstimtype.currentindex
</list>

<list incongruentcresp>
/ items = (42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54)
/ selectionmode = list.incongruentstimtype.currentindex
</list>


There is no difference there at all between your congruent and incongruent condition. The respective lists are identical. Hence all your trials are the same.
By Nick00004 - 9/14/2014

Right, makes sense. When comparing mine to the original (below) though, it seems to have the same issue with no difference in the actual lists, but it runs fine with 50/50 incongruent/congruent...

Unless there's something obvious I'm missing here



For Congruent Trials  (Test Block / 14 Congruent Trials)
*******************************************************************************************************************************
*******************************************************************************************************************************
<list congruentstimtype>
/ items = (1,1,1,1,1,1,1,2,2,2,2,2,2,2)
/ replace = false
/ selectionrate = trial
</list>

<list congruenthpos>
/ items = (15%,15%,15%,15%,15%,15%,15%,85%,85%,85%,85%,85%,85%,85%)
/ selectionmode = list.congruentstimtype.currentindex
</list>

<list congruentcresp>
/ items = (42,42,42,42,42,42,42,54,54,54,54,54,54,54)
/ selectionmode = list.congruentstimtype.currentindex
</list>


For Incongruent Trials (Test Block / 14 Incongruent Trials)
*******************************************************************************************************************************
*******************************************************************************************************************************
<list incongruentstimtype>
/ items = (1,1,1,1,1,1,1,2,2,2,2,2,2,2)
/ replace = false
/ selectionrate = trial
</list>

<list incongruenthpos>
/ items = (85%,85%,85%,85%,85%,85%,85%,15%,15%,15%,15%,15%,15%,15%)
/ selectionmode = list.incongruentstimtype.currentindex
</list>

<list incongruentcresp>
/ items = (42,42,42,42,42,42,42,54,54,54,54,54,54,54)
/ selectionmode = list.incongruentstimtype.currentindex
</list>
By Dave - 9/14/2014

Nick:

your <trial> names are not the point. The point is that you've misspecified one set of condition lists. Keep in mind:

Participants are instructed to press the left shift key when they see a blue square and the right shift key when they see a red square.

A *congruent* trial is when either a blue square is presented on the left side or a red square is presented on the right side.
An *incongruent* trial is when either blue square is presented on the right side or a red square is presented on the left.

Now review your two sets of lists in terms of which stimulus (red / blue) you've paired with which position (left / right).

What you are missing is this:
<list congruenthpos>
/ items = (15%,15%,15%,15%,15%,15%,15%,85%,85%,85%,85%,85%,85%,85%)
/ selectionmode = list.congruentstimtype.currentindex
</list>
...
<list incongruenthpos>
/ items = (85%,85%,85%,85%,85%,85%,85%,15%,15%,15%,15%,15%,15%,15%)
/ selectionmode = list.incongruentstimtype.currentindex
</list>
By Nick00004 - 9/14/2014

And THAT'S what I mean by missing something obvious - thanks, Dave. Appreciate the help.
By Dave - 9/14/2014

No problem!