User Manual: Inquisit Visual Approach/Avoidance by the Self Task (VAAST) with words


___________________________________________________________________________________________________________________	

								Visual Approach/Avoidance by the Self Task (VAAST)
								(Template with Word Stimuli)
___________________________________________________________________________________________________________________	


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

Script Copyright © 03-20-2023 Millisecond Software

___________________________________________________________________________________________________________________
BACKGROUND INFO 	
___________________________________________________________________________________________________________________
This script implements Millisecond Software's version of the Visual Approach/Avoidance by the Self Task (VAAST)
described by Aubé et al (2019). The VAAST is a cognitive test of spontaneous approach/avoidance tendencies towards
two categories of stimuli. According to Aubé et al (2019) 'The VAAST simulates approach and avoidance movements
of the whole self by manipulating the visual information provided to the participants'.
This implementation uses word stimuli of the categories "positive" and "negative" as
default examples. The running hypothesis is that people 'approach positive words and avoid negative words'
(compatible pairings) faster than that they 'approach negative words and avoid positive words' (incompatible pairings).

The VAAST is provided by the authors as a PsyToolkit script, providing background stimuli,
instructions and a step-by-step R script to analyze the data from the PsyToolkit
output. The PsyToolkit is accessible to any researcher without cost.

The original script can be accessed here:
word stimuli: https://www.psytoolkit.org/experiment-library/vaast_words.html
image stimuli: https://www.psytoolkit.org/experiment-library/vaast_images.html

The Inquisit script provides the code to run the task on an absolutely sized screen if needed.
Check section Editable Parameters for more information.
By default, the script uses the biggest 16:9 (the W:H dimensions of the background images) 
canvas on the current monitor  (thus absolute sizing is turned off by default).
The Inquisit script does not provide further help with data analyses (with 
the exception of several summary variables). 

DISCLAIMER:
While Millisecond Software thrives to replicate the task as faithfully as possible to the original,
differences between the implementations may exist. 


***Reference***										

Aubé, B., Rougier, M., Muller, D., Ric, F., & Yzerbyt, V. (2019). The online-VAAST: A short and online tool 
to measure spontaneous approach and avoidance tendencies. Acta Psychologica, 201, 102942–102942. 
https://doi.org/10.1016/j.actpsy.2019.102942

___________________________________________________________________________________________________________________
TASK DESCRIPTION	
___________________________________________________________________________________________________________________

In each VAAST trial a stimulus (here: positive or negative words) appear superimposed on a background
(here: a street scene). Depending on instructions, participants have to press the 'approach' key
or 'avoidance' key as fast as possible. For example, in one condition they are told to press the 'approach' key
for positive words and the 'avoidance' key for negative words ('compatible condition'). In a second condition, 
participants are told to press the 'approach' key for negative words and the 'avoidance' key for 
positive words ('incompatible' condition).

When participants press the 'approach' key the background zooms in and the word itself gets larger. 
When they press the 'avoidance' key the opposite happens: the background zooms out
and the word itself gets smaller. According to Aubé et al (2019) 'This visual feedback gives
participants the impression that they are moving toward or away from the stimulus in the street, 
pretty much as in real life.'

The procedure runs the compatible and incompatible condition back to back. The order in which these conditions
are run is determined by groupnumber assignment in this script.
Group1: runs compatible -> incompatible
Group2: runs incompatible -> compatible
(if a random assignment is needed, go to section Experiment and follow instructions)
___________________________________________________________________________________________________________________	
DURATION 
___________________________________________________________________________________________________________________	
the default set-up of the script takes appr. 15 minutes to complete

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

(1) Raw data file: 'vaast_words_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 = 16/9*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 (by default: lightGray area) 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

computer.hasKeyboard:			1 = an external keyboard was detected; 0 = no external keyboard detected

blockOrder:						1 = compatible (approach cat1 - positive) -> incompatible (avoid cat1- positive)
								2 = incompatible (avoid cat1 - positive) -> compatible (approach cat1- positive)

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. 
									
								Note: trialcode 'showtime_cat1' and trialcode 'showtime_cat2' store the response data
								
trialCounter: 					custom trial counter per block

compatible:						1 = response to stimuli is compatible (hypothesis-consistent)
								0 = otherwise
																								
stimuli:						stores the currently presented word 
valence:						valence of currently presented word (1 = cat1, positive; 2 = cat2, negative)
randomFixation:					the duration (in ms) of the fixation cross, sampled from 800 to 2000 in 100ms steps 

firstKey:						3 = the start key (here; H) was pressed and released before the start of the trial
 
response:						the response of participant (scancode of response button)
responseText:					name of response key pressed
movement:					 	1 = approach, 2 = avoidance
correct:						correctness of response (1 = correct, 0 = error)
latency:						response latency (in ms); measured from: onset of words

//debug columns: store the first and second static stimuli presented in a trial
stimulusitem.1
stimulusitem.2

*****Note: 
These are the variables that are akin to the output variables of the Psychotool script
(https://www.psytoolkit.org/experiment-library/vaast_words.html#_data_output_file)

blockOrder
blockcode
stimuli
valence
randomFixation
firstKey
movement
correct
latency

(2) Summary data file: 'vaast_words_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 = 16/9*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 (by default: lightGray area) 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

computer.hasKeyboard:			1 = an external keyboard was detected; 0 = no external keyboard detected

blockOrder:						1 = compatible (approach cat1 - positive) -> incompatible (avoid cat1- positive)
								2 = incompatible (avoid cat1 - positive) -> compatible (approach cat1- positive)

//////summary data//////
propCorrect_cat1_app:			proportion correct responses for cat1 words (here: positive) under APPROACH instructions (compatible)
meanCorrRT_cat1_app:			mean correct response time (in ms) for cat1 words (here: positive) under APPROACH instructions
propCorrect_cat1_av:			proportion correct responses for cat1 words (here: positive) under AVOID instructions (incompatible)
meanCorrRT_cat1_av:				mean correct response time (in ms) for cat1 words (here: positive) under AVOID instructions

propCorrect_cat2_app:			proportion correct responses for cat2 words (here: negative) under APPROACH instructions (incompatible)
meanCorrRT_cat2_app:			mean correct response time (in ms) for cat2 words (here: negative) under APPROACH instructions
propCorrect_cat2_av:			proportion correct responses for cat2 words (here: negative) under AVOID instructions (compatible)
meanCorrRT_cat2_av:				mean correct response time (in ms) for cat2 words (here: negative) under AVOID instructions

propCorrect_compatible:			proportion correct responses for compatible word-instruction trials
meanCorrRT_compatible:			mean correct response time (in ms) for compatible word-instruction trials

propCorrect_incompatible:		proportion correct responses for incompatible word-instruction trials
meanCorrRT_incompatible:		mean correct response time (in ms) for incompatible word-instruction trials

compatibility_diffRT:			the difference (meanCorrRT_incompatible - meanCorrRT_compatible)
								positive: participant was faster to respond to compatible trials than to incompatible ones
								negative: participant was faster to respond to incompatible trials than to compatible ones
								
								Note: 'compatible' word-instructions pairings are the hypothesis-consistent pairings (e.g. people approach positive words and avoid negative words)
								whereas the 'incompatible' word-instructions pairings are hypothesis-inconsistent).
							
___________________________________________________________________________________________________________________	
EXPERIMENTAL SET-UP 
___________________________________________________________________________________________________________________	

(1) Keyboarch Check: this script checks if an attached external keyboard can be found.
If no external keyboard can be detected, participants get a brief note that a 'keyboard is required' 
and the tasks aborts prematurely.

(2) Introduction to the Task

(3) Compatible Condition (see below for condition order information)
instructions: 'approach positive words and avoid negative words'

*Practice* 
10 trials (5 positive, 5 negative; order is randomly determinded),
error feedback provided (when response is incorrect, no zooming happens. Instead, the word ERROR is presented)
/////NOTE: 	the number of trials run depends on the number of items under item.cat1_words_training/item.cat2_words_training
/////NOTE: 	by default, a reminder to press and release the startkey is presented by default after 5s if no startkey has 
			been pressed during practice (check parameters.runStartKeyReminder_duringPractice for more info)

*Test*
40 trials (20 positive, 20 negative; order is randomly determined)
no errorfeedback
/////NOTE: 	the number of trials run depends on the number of items under item.cat1_words/item.cat2_words
/////NOTE: 	by default, NO reminder to press and release the startkey is presented during test trials 
			(check parameters.runStartKeyReminder_duringTest for more info)

(4) Incompatible Condition
instructions: 'approach negative words and avoid positive words'

*Practice* 
10 trials (5 positive, 5 negative; order is randomly determinded) (Note: the same words are used as in the Compatible Practice)
error feedback provided (when response is incorrect, no zooming happens. Instead, the word ERROR is presented)
/////NOTE: the number of trials run depends on the number of items under item.cat1_words_training/item.cat2_words_training

*Test*
40 trials (20 positive, 20 negative; order is randomly determined) (Note: the same words are used as in the Compatible Practice)
no errorfeedback
/////NOTE: the number of trials run depends on the number of items under item.cat1_words/item.cat2_words

(5) END


////////Trial Procedure://///////
-Start Screen that presents an O superimposed on the start street scene. 
	=> Participants need to press the H key AND release it 
	(in this script; releasing the Startkey frees the index fingers to get ready to respond to the stimulus.
	This is different from the official demo)
	
-Upon release of the H key, a fixation cross appears on the street scene. 
	=> The duration of the fixation cross is randomly determined (800-2000ms, with step interval = 100ms)
	
-A word appears on the street scene. 
	=> Participants have to decide as fast as possible whether to press the Y-key for APPROACH or the N-key for AVOID
	
-As soon as response is registered, the feedback screen is presented:
	=> Approach Key (Y) -> street scene is zoomed in AND word gets larger
	=> Avoid Key (N) -> street scene is zoomed out AND word gets smaller
	- the word is erased after 500ms
	- after another 500ms (iti), the trial ends and the next one starts.


//////Blockorder Information: group assignment///////
This script can be used to counterbalance the order of the two conditions 'Compatible->Incompatible' 
and 'Incompatible->Compatible' by using different groupnumbers.
Group '1': runs compatible -> incompatible
Group '2': runs incompatible -> compatible
(if a random assignment is needed, go to section Experiment and follow instructions to change from
a groupassignment based on groupnumber to a random assignment)

___________________________________________________________________________________________________________________	
STIMULI
___________________________________________________________________________________________________________________

//////////WORDS/////////////
positive and negative words taken from:
Smith, P. & Waterman, M. (2003). Processing bias for aggression words in forensic and
nonforensic samples. Cognition and Emotion, 17, 681-701.

Practice: 5 positive, 5 negative Words
Test: 20 positive, 20 negative Words
(the same words are run in the Compatible and Incompatible Conditions)

Note:
*the words are provided as placeholders only, they can easily be replaced by others
under section Editable Stimuli.

*The number of words provided controls the number of trials run in each block.


//////////BACKROUNDS/////////////
background images from:
https://www.psytoolkit.org/experiment-library/vaast_words.html

___________________________________________________________________________________________________________________	
INSTRUCTIONS 
___________________________________________________________________________________________________________________

instructions based on:
https://www.psytoolkit.org/experiment-library/vaast_words.html

The instructions in this script can be edited under section 'Editable Instructions'
___________________________________________________________________________________________________________________	
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: