Counting/controlling the number of adjacent stimuli presented in 2 back task


Author
Message
AliciaShen
AliciaShen
Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)
Group: Awaiting Activation
Posts: 11, Visits: 52
Dear divine beings of the inquisit:

I am adapting the "SINGLE N-BACK TASK NON_ADAPTIVE (2- KEY VERSION)" by Katja Borchert to complete a 1 back task. I have a sequence of 7 stimuli, and would like all adjacent pairs (stimuli 1&2, stimuli 2&3 etc....) to be presented back to back for all pairs for at least two times within a block. How could I accomplish that without making the block unnecessarily long? 

Currently I have target appearing 50% of the time, and the rest of the nontargets randomly chosen from the rest of the stimuli. Below is code for selecting the stimuli. Any help/suggestions are very welcomed!

##############################
######STIMULI-SELECTION: face

*list.notargetvalue selects any of the 7 faces (item indices) but the one selected for values.currenttarget
<list notargetvalue>
/items = (1, 2, 3, 4, 5, 6, 7)
/ not = (values.currenttarget)
/ replace = true
</list>


***randomly selects one of the faces as start value
<picture startshape>
/ items = shapes
/select = replace
/size = (40%, 40%)
</picture>

***selects any shape but the established target
<picture nontargetshape>
/ items = shapes
/ select = notargetvalue
/size = (40%, 40%)
</picture>

***selects the item with the same item number as the established target
<picture targetshape>
/items = shapes
/select = values.currenttarget
/size = (40%, 40%)
</picture>


##############################
######trila nontarget

<trial nontarget>
/ stimulustimes = [0 = nontargetshape]
/ validresponse = (38, 30)
/ correctresponse = (38)
/ ontrialbegin = [
{if (values.N == 1) values.currenttarget = values.minus1};
{if (values.N == 2) values.currenttarget = values.minus2};
{if (values.N == 3) values.currenttarget = values.minus3};
{if (values.N == 4) values.currenttarget = values.minus4}
]
/ ontrialbegin = [values.trial_Hit = 0; values.trial_Miss = 0; values.trial_CR = 0; values.trial_FA = 0]
/ ontrialend = [
values.minus4 = values.minus3;
values.minus3 = values.minus2;
values.minus2 = values.minus1;
values.minus1 = picture.nontargetshape.currentitemnumber;
values.CorrReject = values.CorrReject + trial.nontarget.correct;
values.trial_CR = trial.nontarget.correct;
{if (trial.nontarget.response == 30)
{values.FalseA = values.FalseA + trial.nontarget.error;
values.trial_FA = trial.nontarget.error;
values.TotalFA = values.TotalFA + trial.nontarget.error}};
values.DV = (values.TotalHits - values.TotalFA)/values.TotalBlocks;
]
/ responsetime = 0
/ posttrialpause = 250
</trial>


Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 13K, Visits: 104K
> I have a sequence of 7 stimuli, and would like all adjacent pairs (stimuli 1&2, stimuli 2&3 etc....) to be presented back to back for all pairs
> for at least two times within a block. How could I accomplish that without making the block unnecessarily long?

Construct one or several sequences that satisfy this property by hand. Then have the script select from the sequence sequentially (/selectionmode = sequence). I don't see a way to do this "on the fly" using only random selection -- there are too many constraints involved.

AliciaShen
AliciaShen
Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)
Group: Awaiting Activation
Posts: 11, Visits: 52
@ Dave, thanks a lot for the reponse! 

Before I hardcode possible sequences (not ideal since the number of permutations are huge), I wonder if any one of the following method would work on inquisit?

1) Create a counter that counts the number of adjacent pairs, if exceeding a certain number than end the block/experiment?

2) Create a list of values that are not adjacent to the current target (see below)
############This syntax is currently not workinng for me###########

<list notargetvalue_notadjacent>
/items = (1, 2, 3, 4, 5, 6, 7)
/ not = (values.currenttarget) && (values.currenttarget - 1) && (values.currenttarget + 1)
/ replace = true
</list>



Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 13K, Visits: 104K
I can see #1 working *potentially*, although I don't see how it would necessarily fulfill your "[the] block [should not be] unnecessarily long" requirement, because you have no direct control when sufficient "adjacent pairings" occur. At any rate, I'd say give this a go and just see if it works reasonably well for your needs. You'll need to set up several global variables (<values> entries) to keep track of the instances / counts of the various pairings. You can then use those counts in the <block>s /stop attribute to terminate it when some criterion is reached.

I frankly don't quite understand the 2nd idea. Syntax issues aside, lets say that the current target is item #4. Then, apparently, you'd want that list to exclude items #3, #4, and #5 from being selected. I'm struggling to figure out how this would end up satisfying "[I] would like all adjacent pairs (stimuli 1&2, stimuli 2&3 etc....) to be presented back to back for all pairs for at least two times." Intuitively, it seems to me that this setup would make it *harder* to achieve the desired outcome.

Edited 8 Years Ago by Dave
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search