User Manual: Inquisit Internal Shift Task


___________________________________________________________________________________________________________________	

								Internal Shift Task (IST)
___________________________________________________________________________________________________________________	


Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software, LLC
Date: 10-17-2022
last updated:  10-20-2022 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC

Script Copyright © 10-20-2022 Millisecond Software

___________________________________________________________________________________________________________________
BACKGROUND INFO 	
___________________________________________________________________________________________________________________
This script implements Millisecond Software's version of the Internal Shift Task (IST), a paradigm to study
executive functioning as measured by inhibition and set shifting, in response to processing internally 
held (aka in memory) emotional and non-emotional face stimuli as opposed to external stimuli (Koster et al, 2013). 

DISCLAIMER: The implemented procedure is based on the description of the task by Koster et al (2013)
and is a best guess-effort based on the provided information. 

By default, this script runs with absolutely sized stimuli - check section Editable Parameters for more
information.


Reference:
Koster, E. H. W., Lissnyder, E. D., De Raedt, R. (2013). Rumination is characterized by valence-specific 
impairments in switching of attention. Acta Psychologica, 144(3), 563-570. doi:10.1016/j.actpsy.2013.09.008.

___________________________________________________________________________________________________________________
TASK DESCRIPTION	
___________________________________________________________________________________________________________________

This task is about mental updating of counts.
Participants self-pace through sequences of female and male faces with either angry or neutral expressions.
At the beginning of each round, they are told whether to concentrate on Gender or Emotion.
For each face they are shown, they are asked to update their mental counts for female/male (category: gender) OR
angry/neutral (category: neutral). Once they have updated their mental counts, they press [space] to see the
next face in the sequence. At the end of each block, they enter their mental counts using the keyboard keys.
The two categories (Gender and Emotion) are tested in a blocked design. The order of the categories is
counterbalanced by groupnumber.

___________________________________________________________________________________________________________________	
DURATION 
___________________________________________________________________________________________________________________	
the default set-up of the script takes appr. 20 minutes to complete

___________________________________________________________________________________________________________________	
DATA FILE INFORMATION 
___________________________________________________________________________________________________________________
The default data stored in the data files are:

(1) Raw data file: 'internalshifttask_raw*.iqdat' (a separate file for each participant)

build:						The specific Inquisit version used (the 'build') that was run
computer.platform:			the platform the script was run on (win/mac/ios/android)
date, time: 				date and time script was run 
subject:					with the current subject id
group: 						with the current group id
session:					with the current session id

//Screen Setup:
(parameter) runAbsoluteSizes:		true (1) = should run absolutely sized canvas (see parameters- canvasHeight_inmm)
									false (0) = should use proportionally sized canvas (uses width = 4/3*screenHeight)
								
canvasAdjustments:					NA: not applicable => parameters- runAbsoluteSize was set to 'false'
									0: parameters- runAbsoluteSize was set to 'true' and screen size was large enough
									1: parameters- runAbsoluteSize was set to 'true' BUT screen size was too small and 
									adjustments had to be made

activeCanvasHeight_inmm:			the width of the active canvas in mm 
activeCanvasWidth_inmm:				the height of the active canvas in mm 
display.canvasHeight:				the height of the active canvas in pixels
display.canvasWidth:				the width of the active canvas in pixels

px_per_mm:							the conversion factor to convert pixel data into mm-results for the current monitor
									(Note: the higher resolution of the current monitor 
									the more pixels cover the same absolute screen distance)
									This factor is needed if you want to convert pixel data into absolute mm data or the other way around

blockcode, blocknum:		the name and number of the current block (built-in Inquisit variable)
trialcode, trialnum: 		the name and number of the currently recorded trial (built-in Inquisit variable)
								Note: trialnum is a built-in Inquisit variable; it counts all trials run; even those
								that do not store data to the data file. 

expGroup:					1: runs order category1 (GENDER) -> categeory2 (EMOTION)								
							2: runs order category2 (EMOTION) -> category1 (GENDER)	
							
phase: 						"practice" vs. "test"
practiceBlockCounter: 		tracks the number of practice blocks run in the current category
blockCounter_category1: 	tracks the number of test blocks run in category1
blockCounter_category2: 	tracks the number of test blocks run in category2
	
targetCategory: 			stores the targetCategory of the current task ("GENDER" vs. "EMOTION")
level1: 					stores level1 (Gender: Female, Emotion: Angry)
level2: 					stores level2 (Gender: Male, Emotion: Neutral) 

numberTrials: 				the number of trials run in the current round (randomly selected from 10-14 trials)
trialCounter:				tracks the number of trials run

previousTargetLevel:  		stores the level of the previous face
currentTargetLevel: 		stores the level of the current face
currentTarget:				stores the image file of the current face

switch: 					0 = there was no switch btw. levels;
							Example: for category GENDER: current face is female, previous face was female -> switch: 0
							1 = levels switched (the current face has a different level than the previous one)
							Example: for category GENDER: current face is female, previous face was male -> switch: 1
							
switchCategory:				11: previous level was level1, current level is level1 (Example: female-female in category GENDER) -> No Switch
							12: previous level was level1, current level is level2 (Example: female-male in category GENDER) -> Switch
							21: previous level was level2, current level is level1 (Example: male-female in category GENDER) -> Switch
							22: previous level was level2, current level is level2 (Example: male-male in category GENDER) -> No Switch

countSwitchTrials_perblock:		tracks the number of switch trials run in the current block 
countNoswitchTrials_perblock:	tracks the number of no-switch trials run in the current block 						

//DVs:																			
response:					the scancode of response button (e.g. 57 for spacebar)
responseText: 				the label of response button (Note: will look empty for spacebar)
latency:					the response latency; measured from onset of face image

counter_level1:				counts the instances of level1 faces for the current category 
counter_level2:				counts the instances of level2 faces for the current category 

reportedCounts_level1: 		stores the participant reported instances of level1 faces for the current category 
reportedCounts_level2: 		stores the participant reported instances of level2 faces for the current category
 
ACC_reportedCounts_level1:  1 = the reported count for level1 is correct; 0 = otherwise
ACC_reportedCounts_level2:  1 = the reported count for level2 is correct; 0 = otherwise 

ACC_block:					1 = BOTH reported level1 AND level2 counts were correct; 0 = otherwise (at least one incorrect count)						


(2) Summary data file: 'internalshifttask_summary*.iqdat' (a separate file for each participant)

inquisit.version:			Inquisit version run
computer.platform:			the platform the script was run on (win/mac/ios/android)
startDate:					date script was run
startTime:					time script was started
subjectid:					assigned subject id number
groupid:					assigned group id number
sessionid:					assigned session id number
elapsedTime:				time it took to run script (in ms); measured from onset to offset of script
completed:					0 = script was not completed (prematurely aborted); 
							1 = script was completed (all conditions run)
						
//Screen Setup:
(parameter) runAbsoluteSizes:		true (1) = should run absolutely sized canvas (see parameters- canvasHeight_inmm)
									false (0) = should use proportionally sized canvas (uses width = 4/3*screenHeight)
								
canvasAdjustments:					NA: not applicable => parameters- runAbsoluteSize was set to 'false'
									0: parameters- runAbsoluteSize was set to 'true' and screen size was large enough
									1: parameters- runAbsoluteSize was set to 'true' BUT screen size was too small and 
									adjustments had to be made

activeCanvasHeight_inmm:			the width of the active canvas in mm 
activeCanvasWidth_inmm:				the height of the active canvas in mm 
display.canvasHeight:				the height of the active canvas in pixels
display.canvasWidth:				the width of the active canvas in pixels

px_per_mm:							the conversion factor to convert pixel data into mm-results for the current monitor
									(Note: the higher resolution of the current monitor 
									the more pixels cover the same absolute screen distance)
									This factor is needed if you want to convert pixel data into absolute mm data or the other way around
					
				
//Note: the first trial in each block is not considered for summary data
//data:
expGroup:							1: order category1 (GENDER) -> categeory2 (EMOTION)								
									2: order category2 (EMOTION) -> category1 (GENDER)

//AccuracyData:
propCorrect_general:				proportion Correct blockACCs across category1 (here: gender) and category2 (here: emotion) blocks
propCorrect_category1:				proportion Correct blockACCs across category1 (here: gender) only
propCorrect_category2:				proportion Correct blockACCs across category2 (here: emotion) only

//Switch(Noswitch) Counts
countSwitchTrials_general:			the number of Switch trials run across all test blocks (across categories) 
countNoswitchTrials_general:		the number of Noswitch trials run across all test blocks (across categories) 
countSwitchTrials_category1:		the number of Switch trials run across all Category1 (gender) test blocks  
countNoswitchTrials_category1:		the number of Noswitch trials run across all Category1 (gender) test blocks  
countSwitchTrials_category2:		the number of Switch trials run across all Category2 (emotion) test blocks  
countNoswitchTrials_category2:		the number of Noswitch trials run across all Category2 (emotion) test blocks  

//RTData:
general_SwitchRT:					MEDIAN switch RT (in ms) across category1 (here: gender) and category2 (here: emotion) switch trials
general_NoswitchRT:					MEDIAN noswitch (aka 'repeat') RT (in ms) across category1 (here: gender) and category2 (here: emotion) noswitch trials
general_SwitchCosts:				the difference btw. 'general_SwitchRT - general_NoswitchRT'
									=> positive values indicate that participants took longer on switch trials than on non-switch trials
									
category1_SwitchRT:					MEDIAN switch RT (in ms) across category1 (here: gender) switch trials
category1_NoswitchRT:				MEDIAN noswitch (aka 'repeat') RT (in ms) across category1 (here: gender)noswitch trials
category1_SwitchCosts:				the difference btw. 'category1_SwitchRT - category_NoswitchRT'
									=> positive values indicate that participants took longer on switch trials than on non-switch trials

category2_SwitchRT:					MEDIAN switch RT (in ms) across category2 (here: emotion) switch trials
category2_NoswitchRT:				MEDIAN noswitch (aka 'repeat') RT (in ms) across category2 (here: emotion) noswitch trials
category2_SwitchCosts:				the difference btw. 'category2_SwitchRT - category_NoswitchRT'
									=> positive values indicate that participants took longer on switch trials than on non-switch trials							
___________________________________________________________________________________________________________________	
EXPERIMENTAL SET-UP 
___________________________________________________________________________________________________________________	

The two categories GENDER and EMOTION is tested in blocked format.
This script counterbalances the orders of the two categories GENDER and EMOTION by groupnumber.
Odd groupnumbers run: Gender -> Emotion
Even groupnumbers run: Emotion -> Gender

(1) Intro Block

(2) Task1 Practice: 3 blocks with randomly 10-14 faces each
- Faces stay on screen until mental counts are updated, then participant self-paces via spacebar
presses through the face sequence.
- at the end of the block, participants are asked to enter their mental counts separately for
level1 (Gender: female; Emotion: angry) and level2 (Gender: male; Emotion: neutral) instances.
Participants are always asked about level1 counts before level2 counts.
During practice participants receive feedback.

(3) Task1 Test: 12 blocks with randomly 10-14 faces each
- Faces stay on screen until mental counts are updated, then participant self-paces via spacebar
presses through the face sequence.
- at the end of the block, participants are asked to enter their mental counts separately for
level1 (Gender: female; Emotion: angry) and level2 (Gender: male; Emotion: neutral) instances.
Participants are always asked about level1 counts before level2 counts.
Participants receive no feedback during the test.

(4) Break (self-paced) and task change

(5) Task2 Practice: 3 blocks with randomly 10-14 faces each
- Faces stay on screen until mental counts are updated, then participant self-paces via spacebar
presses through the face sequence.
- at the end of the block, participants are asked to enter their mental counts separately for
level1 (Gender: female; Emotion: angry) and level2 (Gender: male; Emotion: neutral) instances.
Participants are always asked about level1 counts before level2 counts.
During practice participants receive feedback.

(6) Task2 Test: 12 blocks with randomly 10-14 faces each
- Faces stay on screen until mental counts are updated, then participant self-paces via spacebar
presses through the face sequence.
- at the end of the block, participants are asked to enter their mental counts separately for
level1 (Gender: female; Emotion: angry) and level2 (Gender: male; Emotion: neutral) instances.
Participants are always asked about level1 counts before level2 counts.
Participants receive no feedback during the test.

////////Selection of Face Order/////////
At the beginning of each block, the script randomly samples how many faces the round should present. 
Then the script samples randomly (without replacement) from the face pool of 12 angry female faces, 
12 neutral female faces, 12 angry male faces, 12 neutral male faces for each face trial.
Thus the order of the faces as well as the counts are different for each round.
Practice and Test uses the same faces.

___________________________________________________________________________________________________________________	
STIMULI
___________________________________________________________________________________________________________________

provided by Millisecond Software - can be edited under section 'Editable Stimuli'

Faces: 
● Original study (De Lissnyder et al,2010)
The original face stimuli were taken from the Karolinska Directed Emotional Faces database 
(KDEF; https://www.kdef.se/). All faces were adjusted to exclude interference of background
stimuli (hair) and were adjusted to the same size.
The images were taken based on the results from a validation study of this picture set 
(Goeleven, De Raedt, Leyman, & Verschuere, 2008).

● Millisecond Software script:
The Millisecond Software script provides PLACEHOLDER stimuli from the NIMS database.
http://www.macbrain.org/resources.htm

12 female faces (8 caucasian, 4 black) and 12 male faces (8 caucasian, 4 black)
with 'closed-mouth angry' as well as the 'closed-mouth neutral' expressions
were chosen (=48 images total).
The images were edited in Paint.net to remove backgrounds and the images were sized to to 600px X 600px.
___________________________________________________________________________________________________________________	
INSTRUCTIONS 
___________________________________________________________________________________________________________________

provided by Millisecond Software - can be edited under section 'Editable Instructions'.
The instructions are not original to the task.
___________________________________________________________________________________________________________________	
EDITABLE CODE 
___________________________________________________________________________________________________________________	
check below for (relatively) easily editable parameters, stimuli, instructions etc. 
Keep in mind that you can use this script as a template and therefore always "mess" with the entire code 
to further customize your experiment.

The parameters you can change are: