Trial sequencing


Author
Message
NatalieM
NatalieM
Esteemed Member (1.5K reputation)Esteemed Member (1.5K reputation)Esteemed Member (1.5K reputation)Esteemed Member (1.5K reputation)Esteemed Member (1.5K reputation)Esteemed Member (1.5K reputation)Esteemed Member (1.5K reputation)Esteemed Member (1.5K reputation)Esteemed Member (1.5K reputation)
Group: Forum Members
Posts: 6, Visits: 28
Hello,

I have several clusters of trials that each share the same facial stimuli within each cluster. I would like to present my trials randomly in a block that includes all trials from all clusters with the constraint that no two trials from the same cluster are presented one after the other. Any suggestions on how I can accomplish this?

Thanks,
Natalie

Tags
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
Either use noreplacenorepeat in the <block> element's /trials attribute

/ trials = [1-100 = noreplacenorepeat(cluster1trial, cluster2trial, cluster3trial, ...)]

and/or do trial selection via <list> elements if you require something more complex.

NatalieM
NatalieM
Esteemed Member (1.5K reputation)Esteemed Member (1.5K reputation)Esteemed Member (1.5K reputation)Esteemed Member (1.5K reputation)Esteemed Member (1.5K reputation)Esteemed Member (1.5K reputation)Esteemed Member (1.5K reputation)Esteemed Member (1.5K reputation)Esteemed Member (1.5K reputation)
Group: Forum Members
Posts: 6, Visits: 28
Thanks for the info Dave. Would you please elaborate on how I can use the list function? 

Each cluster has 8 trials: 

<block A>
/trials = [1-24 = noreplacenorepeat(neutral1targetleft, hostile1targetleft, neutral1targetright, hostile1targetright, neutral1onlytargetright
neutral1onlytargetleft, neutral1onlytargetleft, neutral1onlytargetright

neutral2targetleft, hostile2targetleft, neutral2targetright, hostile2targetright, neutral2onlytargetright
neutral2onlytargetleft, neutral2onlytargetleft, neutral2onlytargetright, 

neutral3targetleft, hostile3targetleft, neutral3targetright, hostile3targetright, neutral3onlytargetright
neutral3onlytargetleft, neutral3onlytargetleft, neutral3onlytargetright,
.......

neutral19targetleft, hostile19targetleft, neutral19targetright, hostile19targetright, neutral19onlytargetright
neutral19onlytargetleft, neutral19onlytargetleft, neutral19onlytargetright,)]
</block>

I would like random selection of trials but in a sequence so that trials from the same cluster never run consecutively (e.g., neutral2targetleft does not follow or precede other trials from cluster 2).

Thanks for your help, much appreciated!


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
Here's a simple, scaled-down example w/ 4 clusters of 4 trials each (16 trials total) -- trials within a cluster are selected randomly, no two trials from the same cluster are run consecutively:

<block myblock>
/ trials = [1-16 = list.masterlist]
</block>

<list masterlist>
/ items = [list.cluster1trials.nextvalue; list.cluster2trials.nextvalue; list.cluster3trials.nextvalue; list.cluster4trials.nextvalue;]
/ selectionmode = noreplacenorepeat(1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4)
</list>

<list cluster1trials>
/ items = (trial.cluster1a, trial.cluster1b, trial.cluster1c, trial.cluster1d)
</list>

<list cluster2trials>
/ items = (trial.cluster2a, trial.cluster2b, trial.cluster2c, trial.cluster2d)
</list>

<list cluster3trials>
/ items = (trial.cluster3a, trial.cluster3b, trial.cluster3c, trial.cluster3d)
</list>

<list cluster4trials>
/ items = (trial.cluster4a, trial.cluster4b, trial.cluster4c, trial.cluster4d)
</list>

<trial cluster1a>
/ stimulusframes = [1=mytext]
/ trialduration = 500
</trial>

<trial cluster1b>
/ stimulusframes = [1=mytext]
/ trialduration = 500
</trial>

<trial cluster1c>
/ stimulusframes = [1=mytext]
/ trialduration = 500
</trial>

<trial cluster1d>
/ stimulusframes = [1=mytext]
/ trialduration = 500
</trial>

<trial cluster2a>
/ stimulusframes = [1=mytext]
/ trialduration = 500
</trial>

<trial cluster2b>
/ stimulusframes = [1=mytext]
/ trialduration = 500
</trial>

<trial cluster2c>
/ stimulusframes = [1=mytext]
/ trialduration = 500
</trial>

<trial cluster2d>
/ stimulusframes = [1=mytext]
/ trialduration = 500
</trial>

<trial cluster3a>
/ stimulusframes = [1=mytext]
/ trialduration = 500
</trial>

<trial cluster3b>
/ stimulusframes = [1=mytext]
/ trialduration = 500
</trial>

<trial cluster3c>
/ stimulusframes = [1=mytext]
/ trialduration = 500
</trial>

<trial cluster3d>
/ stimulusframes = [1=mytext]
/ trialduration = 500
</trial>

<trial cluster4a>
/ stimulusframes = [1=mytext]
/ trialduration = 500
</trial>

<trial cluster4b>
/ stimulusframes = [1=mytext]
/ trialduration = 500
</trial>

<trial cluster4c>
/ stimulusframes = [1=mytext]
/ trialduration = 500
</trial>

<trial cluster4d>
/ stimulusframes = [1=mytext]
/ trialduration = 500
</trial>

<text mytext>
/ items = ("<%script.currenttrial%>")
</text>


parsonss
parsonss
Partner Member (592 reputation)Partner Member (592 reputation)Partner Member (592 reputation)Partner Member (592 reputation)Partner Member (592 reputation)Partner Member (592 reputation)Partner Member (592 reputation)Partner Member (592 reputation)Partner Member (592 reputation)
Group: Forum Members
Posts: 3, Visits: 31
Hey Dave,

I am trying to adapt a dot-probe along the same lines as above. I tried your method posted here, but an error appears saying that "the /trials command selected an element that was not a type of trial"
I can only assume that it does not like the list being there, but I cant really see much of a difference between what I've done and what you posted. Any guidance?
I've put the main sections below

<block PosNeu>
/preinstructions = (blockbegin)
/trials = [1-8 = noreplace(Practice_LeftCongruentV, Practice_LeftCongruentH, Practice_LeftIncongruentV, Practice_LeftIncongruentH, Practice_RightCongruentV, Practice_RightCongruentH, Practice_RightIncongruentV, Practice_RightIncongruentH);
9-94 = list.posneuList]
/postinstructions = (blockbreak)
</block>

<list PosNeuList>
/items = [trial.numbers,
trial.PosNeuMod_LeftCongruentV,
trial.PosNeuMod_LeftCongruentH,
trial.PosNeuMod_LeftIncongruentV,
trial.PosNeuMod_LeftIncongruentH,
trial.PosNeuMod_RightCongruentV,
trial.PosNeuMod_RightCongruentH,
trial.PosNeuMod_RightIncongruentV,
trial.PosNeuMod_RightIncongruentH]

/selectionmode = noreplacenorepeat(
1,1,1,1,1,1,
2,2,2,2,2,2,2,2,2,2,
3,3,3,3,3,3,3,3,3,3,
4,4,4,4,4,4,4,4,4,4,
5,5,5,5,5,5,5,5,5,5,
6,6,6,6,6,6,6,6,6,6,
7,7,7,7,7,7,7,7,7,7,
8,8,8,8,8,8,8,8,8,8,
9,9,9,9,9,9,9,9,9,9)

/maxrunsize = 2
</list>

There's also  the trials themselves, but they may take up too much room

Any advice appreciated.

Sam
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search