Uneven number of trials for different conditions in the experiment


Author
Message
mingwu
mingwu
Partner Member (679 reputation)Partner Member (679 reputation)Partner Member (679 reputation)Partner Member (679 reputation)Partner Member (679 reputation)Partner Member (679 reputation)Partner Member (679 reputation)Partner Member (679 reputation)Partner Member (679 reputation)
Group: Forum Members
Posts: 6, Visits: 16
Here is the expt:

<expt>
/postinstructions = (end)
/ blocks = [1=Instructions0;2-31=noreplace(block.part1in,block.part1out);32=Instructions0;33-62=noreplace(block.part2in,block.part2out);]]
</expt>


As you see, I run two sets of blocks(30 times each):
2-31=noreplace(block.part1in,block.part1out);
33-62=noreplace(block.part2in,block.part2out);

Each of these blocks basically has same logic:

<block part1in>
/ onblockbegin = [
list.latencies.reset();
list.latencies_congruent.reset();
list.latencies_control.reset();
list.latencies_incongruent.reset();
list.responses.reset();
list.responses_congruent.reset();
list.responses_control.reset();
list.responses_incongruent.reset();
]

/ trials = [1=noreplace(redcongruent2,redincongruent2,redcontrol2,  greencongruent2,greenincongruent2,greencontrol2,  bluecongruent2,blueincongruent2,bluecontrol2,
  purplecongruent2,purpleincongruent2,purplecontrol2);2=noreplace(trial.intrialpart1)]
</block>

<block part1out>
/ onblockbegin = [
list.latencies.reset();
list.latencies_congruent.reset();
list.latencies_control.reset();
list.latencies_incongruent.reset();
list.responses.reset();
list.responses_congruent.reset();
list.responses_control.reset();
list.responses_incongruent.reset();
]
/ trials = [1=noreplace(redcongruent2,redincongruent2,redcontrol2,
  greencongruent2, greenincongruent2,greencontrol2,
 bluecongruent2, blueincongruent2,bluecontrol2,
 purplecongruent2, purpleincongruent2,purplecontrol2);2=noreplace(trial.outtrialpart1)]
</block>


<block part2in>
/ onblockbegin = [
list.latencies.reset();
list.latencies_congruent.reset();
list.latencies_control.reset();
list.latencies_incongruent.reset();
list.responses.reset();
list.responses_congruent.reset();
list.responses_control.reset();
list.responses_incongruent.reset();
]
/ trials = [1=noreplace(redcongruent2,redincongruent2,redcontrol2,
  greencongruent2,greenincongruent2,greencontrol2,
  bluecongruent2,blueincongruent2,bluecontrol2,
  purplecongruent2,purpleincongruent2,purplecontrol2);2=noreplace(trial.intrialpart2)]
</block>

<block part2out>
/ onblockbegin = [
list.latencies.reset();
list.latencies_congruent.reset();
list.latencies_control.reset();
list.latencies_incongruent.reset();
list.responses.reset();
list.responses_congruent.reset();
list.responses_control.reset();
list.responses_incongruent.reset();
]
/ trials = [1=noreplace(redcongruent2,redincongruent2,redcontrol2,
  greencongruent2, greenincongruent2,greencontrol2,
 bluecongruent2, blueincongruent2,bluecontrol2,
 purplecongruent2, purpleincongruent2,purplecontrol2);2=noreplace(trial.outtrialpart2)]
</block>


I have no problems with second set of trials(2=noreplace(trial.outtrialpart2/intrialpart2)), it works as I expect. However, I would like 1 set of trials to behave differently.

1=noreplace(redcongruent2,redincongruent2,redcontrol2,greencongruent2, greenincongruent2,greencontrol2, bluecongruent2, blueincongruent2,bluecontrol2, purplecongruent2, purpleincongruent2,purplecontrol2);


Basically I call these 4 blocks (part1in/part1out/part2out/part2in) 60 times in total (15 times each). And i would like that after running it 60 times, I had equal number of executed 1 trials:

[1=noreplace(redcongruent2,redincongruent2,redcontrol2,greencongruent2, greenincongruent2,greencontrol2,bluecongruent2, blueincongruent2,bluecontrol2, purplecongruent2, purpleincongruent2,purplecontrol2);

As you see there 12 of them , and I would really like to show each of them 5 times (60/12) in random order. Right now i can get 12 redcontrol, 3 redcongruent, etc. But I would like to have 5 times of each.
How can I achieve this? I have read and it seems like i can reset interval, but I am not sure whether I am right or not, same as I do not understand how to implement it. 

I would be really appreciate your help. 
Thank you very much!!

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: 12K, Visits: 98K
mingwu - Wednesday, February 22, 2017
Here is the expt:

<expt>
/postinstructions = (end)
/ blocks = [1=Instructions0;2-31=noreplace(block.part1in,block.part1out);32=Instructions0;33-62=noreplace(block.part2in,block.part2out);]]
</expt>


As you see, I run two sets of blocks(30 times each):
2-31=noreplace(block.part1in,block.part1out);
33-62=noreplace(block.part2in,block.part2out);

Each of these blocks basically has same logic:

<block part1in>
/ onblockbegin = [
list.latencies.reset();
list.latencies_congruent.reset();
list.latencies_control.reset();
list.latencies_incongruent.reset();
list.responses.reset();
list.responses_congruent.reset();
list.responses_control.reset();
list.responses_incongruent.reset();
]

/ trials = [1=noreplace(redcongruent2,redincongruent2,redcontrol2,  greencongruent2,greenincongruent2,greencontrol2,  bluecongruent2,blueincongruent2,bluecontrol2,
  purplecongruent2,purpleincongruent2,purplecontrol2);2=noreplace(trial.intrialpart1)]
</block>

<block part1out>
/ onblockbegin = [
list.latencies.reset();
list.latencies_congruent.reset();
list.latencies_control.reset();
list.latencies_incongruent.reset();
list.responses.reset();
list.responses_congruent.reset();
list.responses_control.reset();
list.responses_incongruent.reset();
]
/ trials = [1=noreplace(redcongruent2,redincongruent2,redcontrol2,
  greencongruent2, greenincongruent2,greencontrol2,
 bluecongruent2, blueincongruent2,bluecontrol2,
 purplecongruent2, purpleincongruent2,purplecontrol2);2=noreplace(trial.outtrialpart1)]
</block>


<block part2in>
/ onblockbegin = [
list.latencies.reset();
list.latencies_congruent.reset();
list.latencies_control.reset();
list.latencies_incongruent.reset();
list.responses.reset();
list.responses_congruent.reset();
list.responses_control.reset();
list.responses_incongruent.reset();
]
/ trials = [1=noreplace(redcongruent2,redincongruent2,redcontrol2,
  greencongruent2,greenincongruent2,greencontrol2,
  bluecongruent2,blueincongruent2,bluecontrol2,
  purplecongruent2,purpleincongruent2,purplecontrol2);2=noreplace(trial.intrialpart2)]
</block>

<block part2out>
/ onblockbegin = [
list.latencies.reset();
list.latencies_congruent.reset();
list.latencies_control.reset();
list.latencies_incongruent.reset();
list.responses.reset();
list.responses_congruent.reset();
list.responses_control.reset();
list.responses_incongruent.reset();
]
/ trials = [1=noreplace(redcongruent2,redincongruent2,redcontrol2,
  greencongruent2, greenincongruent2,greencontrol2,
 bluecongruent2, blueincongruent2,bluecontrol2,
 purplecongruent2, purpleincongruent2,purplecontrol2);2=noreplace(trial.outtrialpart2)]
</block>


I have no problems with second set of trials(2=noreplace(trial.outtrialpart2/intrialpart2)), it works as I expect. However, I would like 1 set of trials to behave differently.

1=noreplace(redcongruent2,redincongruent2,redcontrol2,greencongruent2, greenincongruent2,greencontrol2, bluecongruent2, blueincongruent2,bluecontrol2, purplecongruent2, purpleincongruent2,purplecontrol2);


Basically I call these 4 blocks (part1in/part1out/part2out/part2in) 60 times in total (15 times each). And i would like that after running it 60 times, I had equal number of executed 1 trials:

[1=noreplace(redcongruent2,redincongruent2,redcontrol2,greencongruent2, greenincongruent2,greencontrol2,bluecongruent2, blueincongruent2,bluecontrol2, purplecongruent2, purpleincongruent2,purplecontrol2);

As you see there 12 of them , and I would really like to show each of them 5 times (60/12) in random order. Right now i can get 12 redcontrol, 3 redcongruent, etc. But I would like to have 5 times of each.
How can I achieve this? I have read and it seems like i can reset interval, but I am not sure whether I am right or not, same as I do not understand how to implement it. 

I would be really appreciate your help. 
Thank you very much!!

You need to use a <list> for trial-selection if you want to keep the selection pool intact across those blocks.

<list triallist>
/ items = (trial.redcongruent2,trial.redincongruent2,trial.redcontrol2,trial.greencongruent2, trial.greenincongruent2,trial.greencontrol2,trial.bluecongruent2, trial.blueincongruent2,trial.bluecontrol2, trial.purplecongruent2,trial.purpleincongruent2,trial.purplecontrol2)
/ poolsize = 60
</list>

with 

<block part1in>
...
/ trials = [1=list.triallist]
</block>

<block part1out>
...
/ trials = [1=list.triallist]
</block>

and so forth.


mingwu
mingwu
Partner Member (679 reputation)Partner Member (679 reputation)Partner Member (679 reputation)Partner Member (679 reputation)Partner Member (679 reputation)Partner Member (679 reputation)Partner Member (679 reputation)Partner Member (679 reputation)Partner Member (679 reputation)
Group: Forum Members
Posts: 6, Visits: 16
Dave - Wednesday, February 22, 2017
mingwu - Wednesday, February 22, 2017
Here is the expt:

<expt>
/postinstructions = (end)
/ blocks = [1=Instructions0;2-31=noreplace(block.part1in,block.part1out);32=Instructions0;33-62=noreplace(block.part2in,block.part2out);]]
</expt>


As you see, I run two sets of blocks(30 times each):
2-31=noreplace(block.part1in,block.part1out);
33-62=noreplace(block.part2in,block.part2out);

Each of these blocks basically has same logic:

<block part1in>
/ onblockbegin = [
list.latencies.reset();
list.latencies_congruent.reset();
list.latencies_control.reset();
list.latencies_incongruent.reset();
list.responses.reset();
list.responses_congruent.reset();
list.responses_control.reset();
list.responses_incongruent.reset();
]

/ trials = [1=noreplace(redcongruent2,redincongruent2,redcontrol2,  greencongruent2,greenincongruent2,greencontrol2,  bluecongruent2,blueincongruent2,bluecontrol2,
  purplecongruent2,purpleincongruent2,purplecontrol2);2=noreplace(trial.intrialpart1)]
</block>

<block part1out>
/ onblockbegin = [
list.latencies.reset();
list.latencies_congruent.reset();
list.latencies_control.reset();
list.latencies_incongruent.reset();
list.responses.reset();
list.responses_congruent.reset();
list.responses_control.reset();
list.responses_incongruent.reset();
]
/ trials = [1=noreplace(redcongruent2,redincongruent2,redcontrol2,
  greencongruent2, greenincongruent2,greencontrol2,
 bluecongruent2, blueincongruent2,bluecontrol2,
 purplecongruent2, purpleincongruent2,purplecontrol2);2=noreplace(trial.outtrialpart1)]
</block>


<block part2in>
/ onblockbegin = [
list.latencies.reset();
list.latencies_congruent.reset();
list.latencies_control.reset();
list.latencies_incongruent.reset();
list.responses.reset();
list.responses_congruent.reset();
list.responses_control.reset();
list.responses_incongruent.reset();
]
/ trials = [1=noreplace(redcongruent2,redincongruent2,redcontrol2,
  greencongruent2,greenincongruent2,greencontrol2,
  bluecongruent2,blueincongruent2,bluecontrol2,
  purplecongruent2,purpleincongruent2,purplecontrol2);2=noreplace(trial.intrialpart2)]
</block>

<block part2out>
/ onblockbegin = [
list.latencies.reset();
list.latencies_congruent.reset();
list.latencies_control.reset();
list.latencies_incongruent.reset();
list.responses.reset();
list.responses_congruent.reset();
list.responses_control.reset();
list.responses_incongruent.reset();
]
/ trials = [1=noreplace(redcongruent2,redincongruent2,redcontrol2,
  greencongruent2, greenincongruent2,greencontrol2,
 bluecongruent2, blueincongruent2,bluecontrol2,
 purplecongruent2, purpleincongruent2,purplecontrol2);2=noreplace(trial.outtrialpart2)]
</block>


I have no problems with second set of trials(2=noreplace(trial.outtrialpart2/intrialpart2)), it works as I expect. However, I would like 1 set of trials to behave differently.

1=noreplace(redcongruent2,redincongruent2,redcontrol2,greencongruent2, greenincongruent2,greencontrol2, bluecongruent2, blueincongruent2,bluecontrol2, purplecongruent2, purpleincongruent2,purplecontrol2);


Basically I call these 4 blocks (part1in/part1out/part2out/part2in) 60 times in total (15 times each). And i would like that after running it 60 times, I had equal number of executed 1 trials:

[1=noreplace(redcongruent2,redincongruent2,redcontrol2,greencongruent2, greenincongruent2,greencontrol2,bluecongruent2, blueincongruent2,bluecontrol2, purplecongruent2, purpleincongruent2,purplecontrol2);

As you see there 12 of them , and I would really like to show each of them 5 times (60/12) in random order. Right now i can get 12 redcontrol, 3 redcongruent, etc. But I would like to have 5 times of each.
How can I achieve this? I have read and it seems like i can reset interval, but I am not sure whether I am right or not, same as I do not understand how to implement it. 

I would be really appreciate your help. 
Thank you very much!!

You need to use a <list> for trial-selection if you want to keep the selection pool intact across those blocks.

<list triallist>
/ items = (trial.redcongruent2,trial.redincongruent2,trial.redcontrol2,trial.greencongruent2, trial.greenincongruent2,trial.greencontrol2,trial.bluecongruent2, trial.blueincongruent2,trial.bluecontrol2, trial.purplecongruent2,trial.purpleincongruent2,trial.purplecontrol2)
/ poolsize = 60
</list>

with 

<block part1in>
...
/ trials = [1=list.triallist]
</block>

<block part1out>
...
/ trials = [1=list.triallist]
</block>

and so forth.


Problem solved! Thank you so much!
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search