User Manual: Inquisit Point Subtraction Aggression Paradigm

														
___________________________________________________________________________________________________________________	

								*POINT SUBTRACTION AGGRESSION PARADIGM	(PSAP)*
___________________________________________________________________________________________________________________	

Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software LLC
Date: 05-31-2012
last updated:  02-25-2022 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC

Script Copyright © 02-25-2022 Millisecond Software

___________________________________________________________________________________________________________________
BACKGROUND INFO 	
___________________________________________________________________________________________________________________	
This script implements the Point Subtraction Aggression Paradigm (PSAP); a laboratory measure of 
aggression.

The implemented procedure is based on:

Cherek, D.R., Moeller, F.G., Schnapp, W. & Dougherty, D.M. (1997). Studies of Violent and Nonviolent
Male Parolees: I. Laboratory and Psychometric Measurements of Aggression. Biolog. Psychiatry, 
42, 514-522.

___________________________________________________________________________________________________________________
TASK DESCRIPTION
___________________________________________________________________________________________________________________
Computer game in which a participant plays against a fictitious competitor (in reality simply the
computer) to earn points that can be turned into money. The participant and competitor (aka
computer) are able to steal and protect their winnings from each other. However, while the participant
gets to believe the competitor can steal his money and keep it, the participant can only "steal" from the 
competitor but not add the stolen points to his winnings. Participants only see their own winnings.

Three responses possible for participant:
1: press "A" for 100 times => earn a point
2: press "B" for 10 times => steal a point from competitor 
(and win a protection interval. However this fact is not made explicit to participants)
3: press "C" for 10 times => win a protection interval

Once an option is selected, no other responses are possible until the required amount of responses 
are made. For example, if a participant selects option A, he has to press the
the "A" key consecutively for 100 times before he can select option B or option C.

In the absence of an activated protection interval, the competitor (aka computer) is set up to 
steal a point every so often (how often can be set via LISTS).

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

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

(1) Raw data file: 'psap_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, group: 				with the current subject/groupnumber
session:						with the current session id

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 such as feedback trials. Thus, trialnum 
									may not reflect the number of main trials run per block.
										
PSAPblocks:						counts the number of PSAP blocks run										
										
(parameter) FRoptionA:			number of times button A has to be pressed consecutively to earn a point
(parameter) FRoptionB:			number of times button B has to be pressed consecutively to earn a point
(parameter) FRoptionC:			number of times button C has to be pressed consecutively to earn a point
(parameter) blockduration: 		Duration in min of one PSAP block

script.elapsedTime:				time (in ms) elapsed since script was started
negcolortime:					stores the time at which point the point counter needs to return to normal after being red
procovationtime:				stores the script time in ms at which a provocation should occur next (unless protection is activated)
protectiontime:					stores the script time in ms at which the protection expires

protection:						1 = protection is active; 
								0 = no protection
								
rt:								stores the reaction times (in ms) of pressing key A, B, C
totalpoints:					The sum of all points earned
total_A:						counts number of times option A is selected				
total_B:						counts number of times option B is selected	
total_C:						counts number of times option C is selected	
count_provocations:				counts the number of provocations a participant receives
protectcount:					count of all initiated PFIs


(2) Summary data file: 'psap_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)
									
(parameter) FRoptionA:			number of times button A has to be pressed consecutively to earn a point
(parameter) FRoptionB:			number of times button B has to be pressed consecutively to earn a point
(parameter) FRoptionC:			number of times button C has to be pressed consecutively to earn a point
(parameter) blockduration: 		Duration in min of one PSAP block

totalpoints:					The sum of all points earned
total_A:						counts number of times option A is selected				
total_B:						counts number of times option B is selected	
total_C:						counts number of times option C is selected	
count_provocations:				counts the number of provocations a participant receives
protectcount:					count of all initiated PFIs

___________________________________________________________________________________________________________________	
EXPERIMENTAL SET-UP 
___________________________________________________________________________________________________________________	

* 1 block of PSAP of 25 min (Cherek et al, 1997); time and number of blocks can be adjusted under 
section Editable Parameters
* Optional restperiods (in min) can be presented between PSAP blocks; time can be adjusted under 
section Editable Parameters

Response Options:
1: press "A" for 100 times => earn a point 
(the winning points increase by one, turn green and get bigger for the duration of about 1s)

2: press "B" for 10 times => steal a point from competitor 
(and win a protection interval. However this fact is not made explicit to participants)

3: press "C" for 10 times => win a protection interval


After the participant selects a response option the response option turns blue and the other options vanish.
When the required number of responses are made the response option vanishes for 1 s before all options become 
available again (see Cherek, 1997). 

Note: When the participant selects option A (B, or C) the only response possible is to press 
A  consecutively for 100 times, (B and C for 10 times). 
Only if the required responses are given can the participant change the selection.
These fixed ratio schedules (FR- 100, 10, 10) can be customized under EDITABLE PARAMETERS.

Protection Intervals/Provocation Intervals:
(a) Protection: 
Provocation free intervals (PFI) are immediately activated after pressing key B or C 10 times, but 
ONLY if a point reduction took place between this PFI and a potentially preceding one 
(or the beginning of the script).
Protection intervals cannot be saved up, e.g. pressing key "C" 10 times during an active protection interval is 
essentially of no use to the participant. Pressing key "C" in the absence of a new prococation is also essentially
useless to the participant. 
Once protection is deactivated a new provocation interval is determined.
Protection Interval: 250s, can be customized under section Editable LISTS

(b) Provocations: 
occurs periodically (depending on the randomly sampled interval) when NO protection is activated.
Provocation Intervals: 6-120s (see Cherek et al, 1997), can be customized under section Editable LISTS
When a provocation occurs, the winning points turn red and get bigger for the duration of about 1s. 
One point is taken off the point counter.

___________________________________________________________________________________________________________________	
INSTRUCTIONS 
___________________________________________________________________________________________________________________	
Instructions are not original to the task. They are provided by Millisecond Software
as htm/html pages and can be edited by changing the provided htm/html files.
To edit htm/html-files: open the respective documents in simple Text Editors such as TextEdit (Mac)
or Notepad (Windows).
	
___________________________________________________________________________________________________________________	
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:

/FRoptionA:									number of times button A has to be pressed consecutively to earn a point (default: 100)
/FRoptionB:									number of times button B has to be pressed consecutively to earn a point (default: 10)
/FRoptionC:									number of times button C has to be pressed consecutively to earn a point (default: 10)
/blockduration: 							duration in min of one PSAP block (default: 25)
/number_blocks:								number of times PSAP block should be run (default: 1)
/resttime:									duration in min of the rest block (default: 0)

/restperiod_active: 						restperiod_active = 1: a rest block will be presented between PSAP blocks
											restperiod_active = 0: no rest block will be presented between PSAP blocks (default)
													
/letterA:									the actual letter to be used on screen for the first letter (here: A)
/letterB:									the actual letter to be used on screen for the second/middle letter (here: B)
/letterC:									the actual letter to be used on screen for the third letter (here: C)													
/keyA:										keyA (default: "A")
/keyB:										keyB (default: "B")
/keyC:										keyC (default: "C")

/delay:										a possible built in delay (in ms) for pressing the response keys (see Carre, 2010) (default: 0)

/intermediateduration:						the time the response option vanishes after response completion and before all 
											response options become active again (in ms)(default = 2 * 500ms = 1s)
											
/show_pointcounter_text:					1 = text is displayed next to the winning points, (default)
											0 = text is NOT displayed next to winning points
											
/show_pressbutton_text:						1 = text is displayed next to the pressbutton counter; (default)
											0 = no text is presented
											
/restart_total:								1 = total points get reset to 0 for each PSAP block; 
											0 = total points increase across experiment (default)
											
/rewardpoints:								number of points rewarded (default 1)
/provocationpoints:							number of points taken away after a provocation (default 1)

/moneyReward:								the amount of money earned for each point (default: 0.1)
/moneyUnit:									the unit of money used (here: $)