Trouble with Double IAT Instructions


Author
Message
cehall
cehall
Associate Member (73 reputation)Associate Member (73 reputation)Associate Member (73 reputation)Associate Member (73 reputation)Associate Member (73 reputation)Associate Member (73 reputation)Associate Member (73 reputation)Associate Member (73 reputation)Associate Member (73 reputation)
Group: Forum Members
Posts: 6, Visits: 22
Hello everyone (Dave), 

I am making a study in which I am validating new IAT stimuli against a pre-existing IAT, therefore I have code for two IATs in one experiment. I used the Inquisit Sexuality IAT template code to build both IATs off of. The issue I am encountering is that for whichever IAT goes second, the instructions at the beginning of each block do not show up. I believe this is due to the InstructionIndex from the values no longer being set to 0, however I do not know how to fix it without throwing everything off.

I've attached the relevant code. Thanks so much in advance for any help!

[Values]

<values>
/ magnitude = "unknown"
/ preferred = "unknown"
/ notpreferred = "unknown"
/ progresswidth = 0
/ instructionIndex = 0
/ conditionOrder = ""
</values>

[Adult Instructions]
<item instructions_adult>
/ 1 = "Put your left finger on the 'E' response key for items that belong to the category '<%expressions.leftTarget_adult%>'.
Put your right finger on the 'I' response key for items that belong to the category '<%expressions.rightTarget_adult%>'.
~nItems will appear one-by-one in the middle of the screen.
~nIf you make an error, a red X will appear - to continue, press the other response key.
~nGo as fast as you can while making as few errors as possible."

/ 2 = "Put your left finger on the 'E' response key for items that belong to the category '<%item.attributeAlabel_adult.item(1)%>'.
Put your right finger on the 'I' response key for items that belong to the category '<%item.attributeBlabel_adult.item(1)%>'.
~nIf you make an error, a red X will appear - to continue, press the other response key.
~nGo as fast as you can while making as few errors as possible."

/ 3 = "Press the left 'E' key for '<%item.attributeAlabel_adult.item(1)%>' and '<%expressions.leftTarget_adult%>'.
Press the right 'I' key for '<%item.attributeBlabel_adult.item(1)%>' and '<%expressions.rightTarget_adult%>'.
~nEach item belongs to only one category.
~nIf you make an error, a red X will appear - to continue, press the other response key.
~nGo as fast as you can while making as few errors as possible."

/ 4 = "This is the same task as the previous one.
~n~nPress the left 'E' key for '<%item.attributeAlabel_adult.item(1)%>' and '<%expressions.leftTarget_adult%>'.
Press the right 'I' key for '<%item.attributeBlabel_adult.item(1)%>' and '<%expressions.rightTarget_adult%>'.
~nEach item belongs to only one category.
~nGo as fast as you can while making as few errors as possible."

/ 5 = "Attention! The labels have changed sides.
~nPress the left 'E' key for '<%expressions.rightTarget_adult%>'.
Press the right 'I' key for '<%expressions.leftTarget_adult%>'.
~nGo as fast as you can while making as few errors as possible."

/ 6 = "Press the left 'E' key for '<%item.attributeAlabel_adult.item(1)%>' and '<%expressions.rightTarget_adult%>'.
Press the right 'I' key for '<%item.attributeBlabel_adult.item(1)%>' and '<%expressions.leftTarget_adult%>'.
~nIf you make an error, a red X will appear - to continue, press the other response key.
~nGo as fast as you can while making as few errors as possible."

/ 7 = "This is the same task as the previous one.
~nPress the left 'E' key for '<%item.attributeAlabel_adult.item(1)%>' and '<%expressions.rightTarget_adult%>'.
Press the right 'I' key for '<%item.attributeBlabel_adult.item(1)%>' and '<%expressions.leftTarget_adult%>'
~nEach item belongs to only one category.
~nGo as fast as you can while making as few errors as possible."
</item>


<expressions>
/ leftTarget_adult = if(values.conditionOrder == "c-ic"){
    item.targetAlabel_adult.item(1);
} else {
    item.targetBlabel_adult.item(1);
}
/ rightTarget_adult = if (values.conditionOrder == "c-ic"){
    item.targetBlabel_adult.item(1);
} else {
    item.targetAlabel_adult.item(1);
}
</expressions>

<text instructions_adult>
/ items = instructions_adult
/ position = (10%, 25%)
/ halign = left
/ valign = top
/ hjustify = left
/ vjustify = center
/ size = (80%, 50%)
/ select = values.instructionIndex
</text>

<trial instructions_adult>
/ ontrialbegin = [
    values.progresswidth += 10;
    values.instructionIndex += 1;
]
/ stimulustimes = [1=instructions_adult, spacebar]
/ correctresponse = (" ")
/ errormessage = false
/ recorddata = false
/ showmousecursor = true
</trial>

[Example of Adult Block]

<block attributepractice_adult>
/ bgstim = (attributeAleft_adult, attributeBright_adult)
/ trials = [
  1=instructions_adult;
  2-21 = random(attributeA_adult, attributeB_adult);
]
/ errormessage = true(error, 200)
/ response = correct
</block>

<block targetcompatiblepractice_adult>
/ bgstim = (targetAleft_adult, targetBright_adult)
/ trials = [
  1=instructions_adult;
  2-21 = random(targetAleft_adult, targetBright_adult);
]
/ errormessage = true(error, 200)
/ response = correct
</block>

[Child IAT Instructions]
<item instructions_childGG>
/ 1 = "Put your left finger on the 'E' response key for items that belong to the category '<%expressions.leftTarget_childGG%>'.
Put your right finger on the 'I' response key for items that belong to the category '<%expressions.rightTarget_childGG%>'.
~nItems will appear one-by-one in the middle of the screen.
~nIf you make an error, a red X will appear - to continue, press the other response key.
~nGo as fast as you can while making as few errors as possible."

/ 2 = "Put your left finger on the 'E' response key for items that belong to the category '<%item.attributeAlabel_childGG.item(1)%>'.
Put your right finger on the 'I' response key for items that belong to the category '<%item.attributeBlabel_childGG.item(1)%>'.
~nIf you make an error, a red X will appear - to continue, press the other response key.
~nGo as fast as you can while making as few errors as possible."

/ 3 = "Press the left 'E' key for '<%item.attributeAlabel_childGG.item(1)%>' and '<%expressions.leftTarget_childGG%>'.
Press the right 'I' key for '<%item.attributeBlabel_childGG.item(1)%>' and '<%expressions.rightTarget_childGG%>'.
~nEach item belongs to only one category.
~nIf you make an error, a red X will appear - to continue, press the other response key.
~nGo as fast as you can while making as few errors as possible."

/ 4 = "This is the same task as the previous one.
~n~nPress the left 'E' key for '<%item.attributeAlabel_childGG.item(1)%>' and '<%expressions.leftTarget_childGG%>'.
Press the right 'I' key for '<%item.attributeBlabel_childGG.item(1)%>' and '<%expressions.rightTarget_childGG%>'.
~nEach item belongs to only one category.
~nGo as fast as you can while making as few errors as possible."

/ 5 = "Attention! The labels have changed sides.
~nPress the left 'E' key for '<%expressions.rightTarget_childGG%>'.
Press the right 'I' key for '<%expressions.leftTarget_childGG%>'.
~nGo as fast as you can while making as few errors as possible."

/ 6 = "Press the left 'E' key for '<%item.attributeAlabel_childGG.item(1)%>' and '<%expressions.rightTarget_childGG%>'.
Press the right 'I' key for '<%item.attributeBlabel_childGG.item(1)%>' and '<%expressions.leftTarget_childGG%>'.
~nIf you make an error, a red X will appear - to continue, press the other response key.
~nGo as fast as you can while making as few errors as possible."

/ 7 = "This is the same task as the previous one.
~nPress the left 'E' key for '<%item.attributeAlabel_childGG.item(1)%>' and '<%expressions.rightTarget_childGG%>'.
Press the right 'I' key for '<%item.attributeBlabel_childGG.item(1)%>' and '<%expressions.leftTarget_childGG%>'
~nEach item belongs to only one category.
~nGo as fast as you can while making as few errors as possible."
</item>


<expressions>
/ leftTarget_childGG = if(values.conditionOrder == "c-ic"){
    item.targetAlabel_childGG.item(1);
} else {
    item.targetBlabel_childGG.item(1);
}
/ rightTarget_childGG = if (values.conditionOrder == "c-ic"){
    item.targetBlabel_childGG.item(1);
} else {
    item.targetAlabel_childGG.item(1);
}
</expressions>

<text instructions_childGG>
/ items = instructions_childGG
/ position = (10%, 25%)
/ halign = left
/ valign = top
/ hjustify = left
/ vjustify = center
/ size = (80%, 50%)
/ select = values.instructionIndex
</text>

<trial instructions_childGG>
/ ontrialbegin = [
    values.progresswidth += 10;
    values.instructionIndex += 1;
]
/ stimulustimes = [1=instructions_childGG, spacebar]
/ correctresponse = (" ")
/ errormessage = false
/ recorddata = false
/ showmousecursor = true
</trial>

[Example of Child IAT Blocks]
<block targetincompatiblepracticeswitch_childGG>
/ bgstim = (targetAright_childGG, targetBleft_childGG)
/ trials = [
  1=instructions_childGG;
  2-41 = random(targetAright_childGG, targetBleft_childGG);
]
/ errormessage = true(error, 200)
/ response = correct
</block>

<block compatibletest1_childGG>
/ bgstim = (targetAleftmixed_childGG, orleft_childGG, attributeAleft_childGG, targetBrightmixed_childGG, orright_childGG, attributeBright_childGG)
/ trials = [
  1=instructions_childGG;
  3,5,7,9,11,13,15,17,19,21 = random(targetAleft_childGG, targetBright_childGG);
  2,4,6,8,10,12,14,16,18,20 = random(attributeA_childGG, attributeB_childGG)
]
/ errormessage = true(error, 200)
/ response = correct
/ ontrialend = [
  if (block.compatibletest1_childGG.latency <= 10000 && block.compatibletest1_childGG.currenttrialnumber != 1) {  
   list.RT_compatible1.appendItem(block.compatibletest1_childGG.latency);
   list.RT_block1.appendItem(block.compatibletest1_childGG.latency);
   list.ACC.appendItem(block.compatibletest1_childGG.correct);
  }
  if (block.compatibletest1_childGG.latency < 300) {
   list.RT300.appendItem(1);
  } else {
   list.RT300.appendItem(0);
  }
]
</block>

[Experiment]

<expt a_adult_childOS_GG>
/ onexptbegin = [
  values.conditionOrder = "c-ic";
]
/ subjects = (1 of 4)
/ blocks = [
  1 = intro_adult;
    2 = introiat_adult;
  3 = targetcompatiblepractice_adult;
  4 = attributepractice_adult;
  5 = compatibletest1_adult;
  6 = compatibletestinstructions_adult;
  7 = compatibletest2_adult;
  8 = targetincompatiblepractice_adult;
  9 = incompatibletest1_adult;
  10 = incompatibletestinstructions_adult;
  11 = incompatibletest2_adult;
  12 = intro_OG;
  13 = OS_OG_intro;
  14 = GG_OG_intro;
  15 = festival_OS_GG;
  16 = married_OS_GG;
  17 = intro_childGG;
  18 = targetcompatiblepractice_childGG;
  19 = attributepractice_childGG;
  20 = compatibletest1_childGG;
  21 = compatibletestinstructions_childGG;
  22 = compatibletest2_childGG;
  23 = targetincompatiblepractice_childGG;
  24 = incompatibletest1_childGG;
  25 = incompatibletestinstructions_childGG;
  26 = incompatibletest2_childGG;
  27 = survey.survey;
  28 = summary_want;
  29 = summary;
  30 = debrief;
    31 = end;
]
</expt>
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
cehall - 10/29/2024
Hello everyone (Dave), 

I am making a study in which I am validating new IAT stimuli against a pre-existing IAT, therefore I have code for two IATs in one experiment. I used the Inquisit Sexuality IAT template code to build both IATs off of. The issue I am encountering is that for whichever IAT goes second, the instructions at the beginning of each block do not show up. I believe this is due to the InstructionIndex from the values no longer being set to 0, however I do not know how to fix it without throwing everything off.

I've attached the relevant code. Thanks so much in advance for any help!

[Values]

<values>
/ magnitude = "unknown"
/ preferred = "unknown"
/ notpreferred = "unknown"
/ progresswidth = 0
/ instructionIndex = 0
/ conditionOrder = ""
</values>

[Adult Instructions]
<item instructions_adult>
/ 1 = "Put your left finger on the 'E' response key for items that belong to the category '<%expressions.leftTarget_adult%>'.
Put your right finger on the 'I' response key for items that belong to the category '<%expressions.rightTarget_adult%>'.
~nItems will appear one-by-one in the middle of the screen.
~nIf you make an error, a red X will appear - to continue, press the other response key.
~nGo as fast as you can while making as few errors as possible."

/ 2 = "Put your left finger on the 'E' response key for items that belong to the category '<%item.attributeAlabel_adult.item(1)%>'.
Put your right finger on the 'I' response key for items that belong to the category '<%item.attributeBlabel_adult.item(1)%>'.
~nIf you make an error, a red X will appear - to continue, press the other response key.
~nGo as fast as you can while making as few errors as possible."

/ 3 = "Press the left 'E' key for '<%item.attributeAlabel_adult.item(1)%>' and '<%expressions.leftTarget_adult%>'.
Press the right 'I' key for '<%item.attributeBlabel_adult.item(1)%>' and '<%expressions.rightTarget_adult%>'.
~nEach item belongs to only one category.
~nIf you make an error, a red X will appear - to continue, press the other response key.
~nGo as fast as you can while making as few errors as possible."

/ 4 = "This is the same task as the previous one.
~n~nPress the left 'E' key for '<%item.attributeAlabel_adult.item(1)%>' and '<%expressions.leftTarget_adult%>'.
Press the right 'I' key for '<%item.attributeBlabel_adult.item(1)%>' and '<%expressions.rightTarget_adult%>'.
~nEach item belongs to only one category.
~nGo as fast as you can while making as few errors as possible."

/ 5 = "Attention! The labels have changed sides.
~nPress the left 'E' key for '<%expressions.rightTarget_adult%>'.
Press the right 'I' key for '<%expressions.leftTarget_adult%>'.
~nGo as fast as you can while making as few errors as possible."

/ 6 = "Press the left 'E' key for '<%item.attributeAlabel_adult.item(1)%>' and '<%expressions.rightTarget_adult%>'.
Press the right 'I' key for '<%item.attributeBlabel_adult.item(1)%>' and '<%expressions.leftTarget_adult%>'.
~nIf you make an error, a red X will appear - to continue, press the other response key.
~nGo as fast as you can while making as few errors as possible."

/ 7 = "This is the same task as the previous one.
~nPress the left 'E' key for '<%item.attributeAlabel_adult.item(1)%>' and '<%expressions.rightTarget_adult%>'.
Press the right 'I' key for '<%item.attributeBlabel_adult.item(1)%>' and '<%expressions.leftTarget_adult%>'
~nEach item belongs to only one category.
~nGo as fast as you can while making as few errors as possible."
</item>


<expressions>
/ leftTarget_adult = if(values.conditionOrder == "c-ic"){
    item.targetAlabel_adult.item(1);
} else {
    item.targetBlabel_adult.item(1);
}
/ rightTarget_adult = if (values.conditionOrder == "c-ic"){
    item.targetBlabel_adult.item(1);
} else {
    item.targetAlabel_adult.item(1);
}
</expressions>

<text instructions_adult>
/ items = instructions_adult
/ position = (10%, 25%)
/ halign = left
/ valign = top
/ hjustify = left
/ vjustify = center
/ size = (80%, 50%)
/ select = values.instructionIndex
</text>

<trial instructions_adult>
/ ontrialbegin = [
    values.progresswidth += 10;
    values.instructionIndex += 1;
]
/ stimulustimes = [1=instructions_adult, spacebar]
/ correctresponse = (" ")
/ errormessage = false
/ recorddata = false
/ showmousecursor = true
</trial>

[Example of Adult Block]

<block attributepractice_adult>
/ bgstim = (attributeAleft_adult, attributeBright_adult)
/ trials = [
  1=instructions_adult;
  2-21 = random(attributeA_adult, attributeB_adult);
]
/ errormessage = true(error, 200)
/ response = correct
</block>

<block targetcompatiblepractice_adult>
/ bgstim = (targetAleft_adult, targetBright_adult)
/ trials = [
  1=instructions_adult;
  2-21 = random(targetAleft_adult, targetBright_adult);
]
/ errormessage = true(error, 200)
/ response = correct
</block>

[Child IAT Instructions]
<item instructions_childGG>
/ 1 = "Put your left finger on the 'E' response key for items that belong to the category '<%expressions.leftTarget_childGG%>'.
Put your right finger on the 'I' response key for items that belong to the category '<%expressions.rightTarget_childGG%>'.
~nItems will appear one-by-one in the middle of the screen.
~nIf you make an error, a red X will appear - to continue, press the other response key.
~nGo as fast as you can while making as few errors as possible."

/ 2 = "Put your left finger on the 'E' response key for items that belong to the category '<%item.attributeAlabel_childGG.item(1)%>'.
Put your right finger on the 'I' response key for items that belong to the category '<%item.attributeBlabel_childGG.item(1)%>'.
~nIf you make an error, a red X will appear - to continue, press the other response key.
~nGo as fast as you can while making as few errors as possible."

/ 3 = "Press the left 'E' key for '<%item.attributeAlabel_childGG.item(1)%>' and '<%expressions.leftTarget_childGG%>'.
Press the right 'I' key for '<%item.attributeBlabel_childGG.item(1)%>' and '<%expressions.rightTarget_childGG%>'.
~nEach item belongs to only one category.
~nIf you make an error, a red X will appear - to continue, press the other response key.
~nGo as fast as you can while making as few errors as possible."

/ 4 = "This is the same task as the previous one.
~n~nPress the left 'E' key for '<%item.attributeAlabel_childGG.item(1)%>' and '<%expressions.leftTarget_childGG%>'.
Press the right 'I' key for '<%item.attributeBlabel_childGG.item(1)%>' and '<%expressions.rightTarget_childGG%>'.
~nEach item belongs to only one category.
~nGo as fast as you can while making as few errors as possible."

/ 5 = "Attention! The labels have changed sides.
~nPress the left 'E' key for '<%expressions.rightTarget_childGG%>'.
Press the right 'I' key for '<%expressions.leftTarget_childGG%>'.
~nGo as fast as you can while making as few errors as possible."

/ 6 = "Press the left 'E' key for '<%item.attributeAlabel_childGG.item(1)%>' and '<%expressions.rightTarget_childGG%>'.
Press the right 'I' key for '<%item.attributeBlabel_childGG.item(1)%>' and '<%expressions.leftTarget_childGG%>'.
~nIf you make an error, a red X will appear - to continue, press the other response key.
~nGo as fast as you can while making as few errors as possible."

/ 7 = "This is the same task as the previous one.
~nPress the left 'E' key for '<%item.attributeAlabel_childGG.item(1)%>' and '<%expressions.rightTarget_childGG%>'.
Press the right 'I' key for '<%item.attributeBlabel_childGG.item(1)%>' and '<%expressions.leftTarget_childGG%>'
~nEach item belongs to only one category.
~nGo as fast as you can while making as few errors as possible."
</item>


<expressions>
/ leftTarget_childGG = if(values.conditionOrder == "c-ic"){
    item.targetAlabel_childGG.item(1);
} else {
    item.targetBlabel_childGG.item(1);
}
/ rightTarget_childGG = if (values.conditionOrder == "c-ic"){
    item.targetBlabel_childGG.item(1);
} else {
    item.targetAlabel_childGG.item(1);
}
</expressions>

<text instructions_childGG>
/ items = instructions_childGG
/ position = (10%, 25%)
/ halign = left
/ valign = top
/ hjustify = left
/ vjustify = center
/ size = (80%, 50%)
/ select = values.instructionIndex
</text>

<trial instructions_childGG>
/ ontrialbegin = [
    values.progresswidth += 10;
    values.instructionIndex += 1;
]
/ stimulustimes = [1=instructions_childGG, spacebar]
/ correctresponse = (" ")
/ errormessage = false
/ recorddata = false
/ showmousecursor = true
</trial>

[Example of Child IAT Blocks]
<block targetincompatiblepracticeswitch_childGG>
/ bgstim = (targetAright_childGG, targetBleft_childGG)
/ trials = [
  1=instructions_childGG;
  2-41 = random(targetAright_childGG, targetBleft_childGG);
]
/ errormessage = true(error, 200)
/ response = correct
</block>

<block compatibletest1_childGG>
/ bgstim = (targetAleftmixed_childGG, orleft_childGG, attributeAleft_childGG, targetBrightmixed_childGG, orright_childGG, attributeBright_childGG)
/ trials = [
  1=instructions_childGG;
  3,5,7,9,11,13,15,17,19,21 = random(targetAleft_childGG, targetBright_childGG);
  2,4,6,8,10,12,14,16,18,20 = random(attributeA_childGG, attributeB_childGG)
]
/ errormessage = true(error, 200)
/ response = correct
/ ontrialend = [
  if (block.compatibletest1_childGG.latency <= 10000 && block.compatibletest1_childGG.currenttrialnumber != 1) {  
   list.RT_compatible1.appendItem(block.compatibletest1_childGG.latency);
   list.RT_block1.appendItem(block.compatibletest1_childGG.latency);
   list.ACC.appendItem(block.compatibletest1_childGG.correct);
  }
  if (block.compatibletest1_childGG.latency < 300) {
   list.RT300.appendItem(1);
  } else {
   list.RT300.appendItem(0);
  }
]
</block>

[Experiment]

<expt a_adult_childOS_GG>
/ onexptbegin = [
  values.conditionOrder = "c-ic";
]
/ subjects = (1 of 4)
/ blocks = [
  1 = intro_adult;
    2 = introiat_adult;
  3 = targetcompatiblepractice_adult;
  4 = attributepractice_adult;
  5 = compatibletest1_adult;
  6 = compatibletestinstructions_adult;
  7 = compatibletest2_adult;
  8 = targetincompatiblepractice_adult;
  9 = incompatibletest1_adult;
  10 = incompatibletestinstructions_adult;
  11 = incompatibletest2_adult;
  12 = intro_OG;
  13 = OS_OG_intro;
  14 = GG_OG_intro;
  15 = festival_OS_GG;
  16 = married_OS_GG;
  17 = intro_childGG;
  18 = targetcompatiblepractice_childGG;
  19 = attributepractice_childGG;
  20 = compatibletest1_childGG;
  21 = compatibletestinstructions_childGG;
  22 = compatibletest2_childGG;
  23 = targetincompatiblepractice_childGG;
  24 = incompatibletest1_childGG;
  25 = incompatibletestinstructions_childGG;
  26 = incompatibletest2_childGG;
  27 = survey.survey;
  28 = summary_want;
  29 = summary;
  30 = debrief;
    31 = end;
]
</expt>

Why does that require two IATs in a single script? The much easier option, is to have each in its separate script and then just administer them one after the other.
cehall
cehall
Associate Member (73 reputation)Associate Member (73 reputation)Associate Member (73 reputation)Associate Member (73 reputation)Associate Member (73 reputation)Associate Member (73 reputation)Associate Member (73 reputation)Associate Member (73 reputation)Associate Member (73 reputation)
Group: Forum Members
Posts: 6, Visits: 22
Dave - 10/29/2024
cehall - 10/29/2024
Hello everyone (Dave), 

I am making a study in which I am validating new IAT stimuli against a pre-existing IAT, therefore I have code for two IATs in one experiment. I used the Inquisit Sexuality IAT template code to build both IATs off of. The issue I am encountering is that for whichever IAT goes second, the instructions at the beginning of each block do not show up. I believe this is due to the InstructionIndex from the values no longer being set to 0, however I do not know how to fix it without throwing everything off.

I've attached the relevant code. Thanks so much in advance for any help!

[Values]

<values>
/ magnitude = "unknown"
/ preferred = "unknown"
/ notpreferred = "unknown"
/ progresswidth = 0
/ instructionIndex = 0
/ conditionOrder = ""
</values>

[Adult Instructions]
<item instructions_adult>
/ 1 = "Put your left finger on the 'E' response key for items that belong to the category '<%expressions.leftTarget_adult%>'.
Put your right finger on the 'I' response key for items that belong to the category '<%expressions.rightTarget_adult%>'.
~nItems will appear one-by-one in the middle of the screen.
~nIf you make an error, a red X will appear - to continue, press the other response key.
~nGo as fast as you can while making as few errors as possible."

/ 2 = "Put your left finger on the 'E' response key for items that belong to the category '<%item.attributeAlabel_adult.item(1)%>'.
Put your right finger on the 'I' response key for items that belong to the category '<%item.attributeBlabel_adult.item(1)%>'.
~nIf you make an error, a red X will appear - to continue, press the other response key.
~nGo as fast as you can while making as few errors as possible."

/ 3 = "Press the left 'E' key for '<%item.attributeAlabel_adult.item(1)%>' and '<%expressions.leftTarget_adult%>'.
Press the right 'I' key for '<%item.attributeBlabel_adult.item(1)%>' and '<%expressions.rightTarget_adult%>'.
~nEach item belongs to only one category.
~nIf you make an error, a red X will appear - to continue, press the other response key.
~nGo as fast as you can while making as few errors as possible."

/ 4 = "This is the same task as the previous one.
~n~nPress the left 'E' key for '<%item.attributeAlabel_adult.item(1)%>' and '<%expressions.leftTarget_adult%>'.
Press the right 'I' key for '<%item.attributeBlabel_adult.item(1)%>' and '<%expressions.rightTarget_adult%>'.
~nEach item belongs to only one category.
~nGo as fast as you can while making as few errors as possible."

/ 5 = "Attention! The labels have changed sides.
~nPress the left 'E' key for '<%expressions.rightTarget_adult%>'.
Press the right 'I' key for '<%expressions.leftTarget_adult%>'.
~nGo as fast as you can while making as few errors as possible."

/ 6 = "Press the left 'E' key for '<%item.attributeAlabel_adult.item(1)%>' and '<%expressions.rightTarget_adult%>'.
Press the right 'I' key for '<%item.attributeBlabel_adult.item(1)%>' and '<%expressions.leftTarget_adult%>'.
~nIf you make an error, a red X will appear - to continue, press the other response key.
~nGo as fast as you can while making as few errors as possible."

/ 7 = "This is the same task as the previous one.
~nPress the left 'E' key for '<%item.attributeAlabel_adult.item(1)%>' and '<%expressions.rightTarget_adult%>'.
Press the right 'I' key for '<%item.attributeBlabel_adult.item(1)%>' and '<%expressions.leftTarget_adult%>'
~nEach item belongs to only one category.
~nGo as fast as you can while making as few errors as possible."
</item>


<expressions>
/ leftTarget_adult = if(values.conditionOrder == "c-ic"){
    item.targetAlabel_adult.item(1);
} else {
    item.targetBlabel_adult.item(1);
}
/ rightTarget_adult = if (values.conditionOrder == "c-ic"){
    item.targetBlabel_adult.item(1);
} else {
    item.targetAlabel_adult.item(1);
}
</expressions>

<text instructions_adult>
/ items = instructions_adult
/ position = (10%, 25%)
/ halign = left
/ valign = top
/ hjustify = left
/ vjustify = center
/ size = (80%, 50%)
/ select = values.instructionIndex
</text>

<trial instructions_adult>
/ ontrialbegin = [
    values.progresswidth += 10;
    values.instructionIndex += 1;
]
/ stimulustimes = [1=instructions_adult, spacebar]
/ correctresponse = (" ")
/ errormessage = false
/ recorddata = false
/ showmousecursor = true
</trial>

[Example of Adult Block]

<block attributepractice_adult>
/ bgstim = (attributeAleft_adult, attributeBright_adult)
/ trials = [
  1=instructions_adult;
  2-21 = random(attributeA_adult, attributeB_adult);
]
/ errormessage = true(error, 200)
/ response = correct
</block>

<block targetcompatiblepractice_adult>
/ bgstim = (targetAleft_adult, targetBright_adult)
/ trials = [
  1=instructions_adult;
  2-21 = random(targetAleft_adult, targetBright_adult);
]
/ errormessage = true(error, 200)
/ response = correct
</block>

[Child IAT Instructions]
<item instructions_childGG>
/ 1 = "Put your left finger on the 'E' response key for items that belong to the category '<%expressions.leftTarget_childGG%>'.
Put your right finger on the 'I' response key for items that belong to the category '<%expressions.rightTarget_childGG%>'.
~nItems will appear one-by-one in the middle of the screen.
~nIf you make an error, a red X will appear - to continue, press the other response key.
~nGo as fast as you can while making as few errors as possible."

/ 2 = "Put your left finger on the 'E' response key for items that belong to the category '<%item.attributeAlabel_childGG.item(1)%>'.
Put your right finger on the 'I' response key for items that belong to the category '<%item.attributeBlabel_childGG.item(1)%>'.
~nIf you make an error, a red X will appear - to continue, press the other response key.
~nGo as fast as you can while making as few errors as possible."

/ 3 = "Press the left 'E' key for '<%item.attributeAlabel_childGG.item(1)%>' and '<%expressions.leftTarget_childGG%>'.
Press the right 'I' key for '<%item.attributeBlabel_childGG.item(1)%>' and '<%expressions.rightTarget_childGG%>'.
~nEach item belongs to only one category.
~nIf you make an error, a red X will appear - to continue, press the other response key.
~nGo as fast as you can while making as few errors as possible."

/ 4 = "This is the same task as the previous one.
~n~nPress the left 'E' key for '<%item.attributeAlabel_childGG.item(1)%>' and '<%expressions.leftTarget_childGG%>'.
Press the right 'I' key for '<%item.attributeBlabel_childGG.item(1)%>' and '<%expressions.rightTarget_childGG%>'.
~nEach item belongs to only one category.
~nGo as fast as you can while making as few errors as possible."

/ 5 = "Attention! The labels have changed sides.
~nPress the left 'E' key for '<%expressions.rightTarget_childGG%>'.
Press the right 'I' key for '<%expressions.leftTarget_childGG%>'.
~nGo as fast as you can while making as few errors as possible."

/ 6 = "Press the left 'E' key for '<%item.attributeAlabel_childGG.item(1)%>' and '<%expressions.rightTarget_childGG%>'.
Press the right 'I' key for '<%item.attributeBlabel_childGG.item(1)%>' and '<%expressions.leftTarget_childGG%>'.
~nIf you make an error, a red X will appear - to continue, press the other response key.
~nGo as fast as you can while making as few errors as possible."

/ 7 = "This is the same task as the previous one.
~nPress the left 'E' key for '<%item.attributeAlabel_childGG.item(1)%>' and '<%expressions.rightTarget_childGG%>'.
Press the right 'I' key for '<%item.attributeBlabel_childGG.item(1)%>' and '<%expressions.leftTarget_childGG%>'
~nEach item belongs to only one category.
~nGo as fast as you can while making as few errors as possible."
</item>


<expressions>
/ leftTarget_childGG = if(values.conditionOrder == "c-ic"){
    item.targetAlabel_childGG.item(1);
} else {
    item.targetBlabel_childGG.item(1);
}
/ rightTarget_childGG = if (values.conditionOrder == "c-ic"){
    item.targetBlabel_childGG.item(1);
} else {
    item.targetAlabel_childGG.item(1);
}
</expressions>

<text instructions_childGG>
/ items = instructions_childGG
/ position = (10%, 25%)
/ halign = left
/ valign = top
/ hjustify = left
/ vjustify = center
/ size = (80%, 50%)
/ select = values.instructionIndex
</text>

<trial instructions_childGG>
/ ontrialbegin = [
    values.progresswidth += 10;
    values.instructionIndex += 1;
]
/ stimulustimes = [1=instructions_childGG, spacebar]
/ correctresponse = (" ")
/ errormessage = false
/ recorddata = false
/ showmousecursor = true
</trial>

[Example of Child IAT Blocks]
<block targetincompatiblepracticeswitch_childGG>
/ bgstim = (targetAright_childGG, targetBleft_childGG)
/ trials = [
  1=instructions_childGG;
  2-41 = random(targetAright_childGG, targetBleft_childGG);
]
/ errormessage = true(error, 200)
/ response = correct
</block>

<block compatibletest1_childGG>
/ bgstim = (targetAleftmixed_childGG, orleft_childGG, attributeAleft_childGG, targetBrightmixed_childGG, orright_childGG, attributeBright_childGG)
/ trials = [
  1=instructions_childGG;
  3,5,7,9,11,13,15,17,19,21 = random(targetAleft_childGG, targetBright_childGG);
  2,4,6,8,10,12,14,16,18,20 = random(attributeA_childGG, attributeB_childGG)
]
/ errormessage = true(error, 200)
/ response = correct
/ ontrialend = [
  if (block.compatibletest1_childGG.latency <= 10000 && block.compatibletest1_childGG.currenttrialnumber != 1) {  
   list.RT_compatible1.appendItem(block.compatibletest1_childGG.latency);
   list.RT_block1.appendItem(block.compatibletest1_childGG.latency);
   list.ACC.appendItem(block.compatibletest1_childGG.correct);
  }
  if (block.compatibletest1_childGG.latency < 300) {
   list.RT300.appendItem(1);
  } else {
   list.RT300.appendItem(0);
  }
]
</block>

[Experiment]

<expt a_adult_childOS_GG>
/ onexptbegin = [
  values.conditionOrder = "c-ic";
]
/ subjects = (1 of 4)
/ blocks = [
  1 = intro_adult;
    2 = introiat_adult;
  3 = targetcompatiblepractice_adult;
  4 = attributepractice_adult;
  5 = compatibletest1_adult;
  6 = compatibletestinstructions_adult;
  7 = compatibletest2_adult;
  8 = targetincompatiblepractice_adult;
  9 = incompatibletest1_adult;
  10 = incompatibletestinstructions_adult;
  11 = incompatibletest2_adult;
  12 = intro_OG;
  13 = OS_OG_intro;
  14 = GG_OG_intro;
  15 = festival_OS_GG;
  16 = married_OS_GG;
  17 = intro_childGG;
  18 = targetcompatiblepractice_childGG;
  19 = attributepractice_childGG;
  20 = compatibletest1_childGG;
  21 = compatibletestinstructions_childGG;
  22 = compatibletest2_childGG;
  23 = targetincompatiblepractice_childGG;
  24 = incompatibletest1_childGG;
  25 = incompatibletestinstructions_childGG;
  26 = incompatibletest2_childGG;
  27 = survey.survey;
  28 = summary_want;
  29 = summary;
  30 = debrief;
    31 = end;
]
</expt>

Why does that require two IATs in a single script? The much easier option, is to have each in its separate script and then just administer them one after the other.

Hi Dave,

Tell me about it! Has been very difficult to put together, but this is an online study with very limited ability for researchers to supervise participants so need it to be in one script.

Thanks!
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
cehall - 10/29/2024
Dave - 10/29/2024
cehall - 10/29/2024
Hello everyone (Dave), 

I am making a study in which I am validating new IAT stimuli against a pre-existing IAT, therefore I have code for two IATs in one experiment. I used the Inquisit Sexuality IAT template code to build both IATs off of. The issue I am encountering is that for whichever IAT goes second, the instructions at the beginning of each block do not show up. I believe this is due to the InstructionIndex from the values no longer being set to 0, however I do not know how to fix it without throwing everything off.

I've attached the relevant code. Thanks so much in advance for any help!

[Values]

<values>
/ magnitude = "unknown"
/ preferred = "unknown"
/ notpreferred = "unknown"
/ progresswidth = 0
/ instructionIndex = 0
/ conditionOrder = ""
</values>

[Adult Instructions]
<item instructions_adult>
/ 1 = "Put your left finger on the 'E' response key for items that belong to the category '<%expressions.leftTarget_adult%>'.
Put your right finger on the 'I' response key for items that belong to the category '<%expressions.rightTarget_adult%>'.
~nItems will appear one-by-one in the middle of the screen.
~nIf you make an error, a red X will appear - to continue, press the other response key.
~nGo as fast as you can while making as few errors as possible."

/ 2 = "Put your left finger on the 'E' response key for items that belong to the category '<%item.attributeAlabel_adult.item(1)%>'.
Put your right finger on the 'I' response key for items that belong to the category '<%item.attributeBlabel_adult.item(1)%>'.
~nIf you make an error, a red X will appear - to continue, press the other response key.
~nGo as fast as you can while making as few errors as possible."

/ 3 = "Press the left 'E' key for '<%item.attributeAlabel_adult.item(1)%>' and '<%expressions.leftTarget_adult%>'.
Press the right 'I' key for '<%item.attributeBlabel_adult.item(1)%>' and '<%expressions.rightTarget_adult%>'.
~nEach item belongs to only one category.
~nIf you make an error, a red X will appear - to continue, press the other response key.
~nGo as fast as you can while making as few errors as possible."

/ 4 = "This is the same task as the previous one.
~n~nPress the left 'E' key for '<%item.attributeAlabel_adult.item(1)%>' and '<%expressions.leftTarget_adult%>'.
Press the right 'I' key for '<%item.attributeBlabel_adult.item(1)%>' and '<%expressions.rightTarget_adult%>'.
~nEach item belongs to only one category.
~nGo as fast as you can while making as few errors as possible."

/ 5 = "Attention! The labels have changed sides.
~nPress the left 'E' key for '<%expressions.rightTarget_adult%>'.
Press the right 'I' key for '<%expressions.leftTarget_adult%>'.
~nGo as fast as you can while making as few errors as possible."

/ 6 = "Press the left 'E' key for '<%item.attributeAlabel_adult.item(1)%>' and '<%expressions.rightTarget_adult%>'.
Press the right 'I' key for '<%item.attributeBlabel_adult.item(1)%>' and '<%expressions.leftTarget_adult%>'.
~nIf you make an error, a red X will appear - to continue, press the other response key.
~nGo as fast as you can while making as few errors as possible."

/ 7 = "This is the same task as the previous one.
~nPress the left 'E' key for '<%item.attributeAlabel_adult.item(1)%>' and '<%expressions.rightTarget_adult%>'.
Press the right 'I' key for '<%item.attributeBlabel_adult.item(1)%>' and '<%expressions.leftTarget_adult%>'
~nEach item belongs to only one category.
~nGo as fast as you can while making as few errors as possible."
</item>


<expressions>
/ leftTarget_adult = if(values.conditionOrder == "c-ic"){
    item.targetAlabel_adult.item(1);
} else {
    item.targetBlabel_adult.item(1);
}
/ rightTarget_adult = if (values.conditionOrder == "c-ic"){
    item.targetBlabel_adult.item(1);
} else {
    item.targetAlabel_adult.item(1);
}
</expressions>

<text instructions_adult>
/ items = instructions_adult
/ position = (10%, 25%)
/ halign = left
/ valign = top
/ hjustify = left
/ vjustify = center
/ size = (80%, 50%)
/ select = values.instructionIndex
</text>

<trial instructions_adult>
/ ontrialbegin = [
    values.progresswidth += 10;
    values.instructionIndex += 1;
]
/ stimulustimes = [1=instructions_adult, spacebar]
/ correctresponse = (" ")
/ errormessage = false
/ recorddata = false
/ showmousecursor = true
</trial>

[Example of Adult Block]

<block attributepractice_adult>
/ bgstim = (attributeAleft_adult, attributeBright_adult)
/ trials = [
  1=instructions_adult;
  2-21 = random(attributeA_adult, attributeB_adult);
]
/ errormessage = true(error, 200)
/ response = correct
</block>

<block targetcompatiblepractice_adult>
/ bgstim = (targetAleft_adult, targetBright_adult)
/ trials = [
  1=instructions_adult;
  2-21 = random(targetAleft_adult, targetBright_adult);
]
/ errormessage = true(error, 200)
/ response = correct
</block>

[Child IAT Instructions]
<item instructions_childGG>
/ 1 = "Put your left finger on the 'E' response key for items that belong to the category '<%expressions.leftTarget_childGG%>'.
Put your right finger on the 'I' response key for items that belong to the category '<%expressions.rightTarget_childGG%>'.
~nItems will appear one-by-one in the middle of the screen.
~nIf you make an error, a red X will appear - to continue, press the other response key.
~nGo as fast as you can while making as few errors as possible."

/ 2 = "Put your left finger on the 'E' response key for items that belong to the category '<%item.attributeAlabel_childGG.item(1)%>'.
Put your right finger on the 'I' response key for items that belong to the category '<%item.attributeBlabel_childGG.item(1)%>'.
~nIf you make an error, a red X will appear - to continue, press the other response key.
~nGo as fast as you can while making as few errors as possible."

/ 3 = "Press the left 'E' key for '<%item.attributeAlabel_childGG.item(1)%>' and '<%expressions.leftTarget_childGG%>'.
Press the right 'I' key for '<%item.attributeBlabel_childGG.item(1)%>' and '<%expressions.rightTarget_childGG%>'.
~nEach item belongs to only one category.
~nIf you make an error, a red X will appear - to continue, press the other response key.
~nGo as fast as you can while making as few errors as possible."

/ 4 = "This is the same task as the previous one.
~n~nPress the left 'E' key for '<%item.attributeAlabel_childGG.item(1)%>' and '<%expressions.leftTarget_childGG%>'.
Press the right 'I' key for '<%item.attributeBlabel_childGG.item(1)%>' and '<%expressions.rightTarget_childGG%>'.
~nEach item belongs to only one category.
~nGo as fast as you can while making as few errors as possible."

/ 5 = "Attention! The labels have changed sides.
~nPress the left 'E' key for '<%expressions.rightTarget_childGG%>'.
Press the right 'I' key for '<%expressions.leftTarget_childGG%>'.
~nGo as fast as you can while making as few errors as possible."

/ 6 = "Press the left 'E' key for '<%item.attributeAlabel_childGG.item(1)%>' and '<%expressions.rightTarget_childGG%>'.
Press the right 'I' key for '<%item.attributeBlabel_childGG.item(1)%>' and '<%expressions.leftTarget_childGG%>'.
~nIf you make an error, a red X will appear - to continue, press the other response key.
~nGo as fast as you can while making as few errors as possible."

/ 7 = "This is the same task as the previous one.
~nPress the left 'E' key for '<%item.attributeAlabel_childGG.item(1)%>' and '<%expressions.rightTarget_childGG%>'.
Press the right 'I' key for '<%item.attributeBlabel_childGG.item(1)%>' and '<%expressions.leftTarget_childGG%>'
~nEach item belongs to only one category.
~nGo as fast as you can while making as few errors as possible."
</item>


<expressions>
/ leftTarget_childGG = if(values.conditionOrder == "c-ic"){
    item.targetAlabel_childGG.item(1);
} else {
    item.targetBlabel_childGG.item(1);
}
/ rightTarget_childGG = if (values.conditionOrder == "c-ic"){
    item.targetBlabel_childGG.item(1);
} else {
    item.targetAlabel_childGG.item(1);
}
</expressions>

<text instructions_childGG>
/ items = instructions_childGG
/ position = (10%, 25%)
/ halign = left
/ valign = top
/ hjustify = left
/ vjustify = center
/ size = (80%, 50%)
/ select = values.instructionIndex
</text>

<trial instructions_childGG>
/ ontrialbegin = [
    values.progresswidth += 10;
    values.instructionIndex += 1;
]
/ stimulustimes = [1=instructions_childGG, spacebar]
/ correctresponse = (" ")
/ errormessage = false
/ recorddata = false
/ showmousecursor = true
</trial>

[Example of Child IAT Blocks]
<block targetincompatiblepracticeswitch_childGG>
/ bgstim = (targetAright_childGG, targetBleft_childGG)
/ trials = [
  1=instructions_childGG;
  2-41 = random(targetAright_childGG, targetBleft_childGG);
]
/ errormessage = true(error, 200)
/ response = correct
</block>

<block compatibletest1_childGG>
/ bgstim = (targetAleftmixed_childGG, orleft_childGG, attributeAleft_childGG, targetBrightmixed_childGG, orright_childGG, attributeBright_childGG)
/ trials = [
  1=instructions_childGG;
  3,5,7,9,11,13,15,17,19,21 = random(targetAleft_childGG, targetBright_childGG);
  2,4,6,8,10,12,14,16,18,20 = random(attributeA_childGG, attributeB_childGG)
]
/ errormessage = true(error, 200)
/ response = correct
/ ontrialend = [
  if (block.compatibletest1_childGG.latency <= 10000 && block.compatibletest1_childGG.currenttrialnumber != 1) {  
   list.RT_compatible1.appendItem(block.compatibletest1_childGG.latency);
   list.RT_block1.appendItem(block.compatibletest1_childGG.latency);
   list.ACC.appendItem(block.compatibletest1_childGG.correct);
  }
  if (block.compatibletest1_childGG.latency < 300) {
   list.RT300.appendItem(1);
  } else {
   list.RT300.appendItem(0);
  }
]
</block>

[Experiment]

<expt a_adult_childOS_GG>
/ onexptbegin = [
  values.conditionOrder = "c-ic";
]
/ subjects = (1 of 4)
/ blocks = [
  1 = intro_adult;
    2 = introiat_adult;
  3 = targetcompatiblepractice_adult;
  4 = attributepractice_adult;
  5 = compatibletest1_adult;
  6 = compatibletestinstructions_adult;
  7 = compatibletest2_adult;
  8 = targetincompatiblepractice_adult;
  9 = incompatibletest1_adult;
  10 = incompatibletestinstructions_adult;
  11 = incompatibletest2_adult;
  12 = intro_OG;
  13 = OS_OG_intro;
  14 = GG_OG_intro;
  15 = festival_OS_GG;
  16 = married_OS_GG;
  17 = intro_childGG;
  18 = targetcompatiblepractice_childGG;
  19 = attributepractice_childGG;
  20 = compatibletest1_childGG;
  21 = compatibletestinstructions_childGG;
  22 = compatibletest2_childGG;
  23 = targetincompatiblepractice_childGG;
  24 = incompatibletest1_childGG;
  25 = incompatibletestinstructions_childGG;
  26 = incompatibletest2_childGG;
  27 = survey.survey;
  28 = summary_want;
  29 = summary;
  30 = debrief;
    31 = end;
]
</expt>

Why does that require two IATs in a single script? The much easier option, is to have each in its separate script and then just administer them one after the other.

Hi Dave,

Tell me about it! Has been very difficult to put together, but this is an online study with very limited ability for researchers to supervise participants so need it to be in one script.

Thanks!

There are so-called batch scripts, which allow you to adminster multiple scripts, one after the other, automatically, in whichever fashion you need. No experimenter oversight or intervention required.

https://www.millisecond.com/support/docs/v6/html/articles/batchscripts.htm

This works on the web just like it does offline.

I strongly advise you to chose the separate scripts with batch script route, anything else is extremely error-prone if you're not well-versed in coding in Inquisit.
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search