Return to the Point Subtraction Aggression Paradigm page
						
								POINT SUBTRACTION AGGRESSION PARADIGM	(PSAP)
SCRIPT INFO

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

Copyright © 01-22-2016 Millisecond Software


BACKGROUND INFO

											*Purpose*
This script implements the Point Subtraction Aggression Paradigm (PSAP). It is based on the 
following publication:

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*
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).


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:							Inquisit build
computer.platform:				the platform the script was run on
date, time, subject, group:		date and time script was run with the current subject/groupnumber 
/FRoptionA:						number of times button A has to be pressed consecutively to earn a point
/FRoptionB:						number of times button B has to be pressed consecutively to earn a point
/FRoptionC:						number of times button C has to be pressed consecutively to earn a point
/blockduration : 				duration in min of one PSAP block

blockcode, blocknum:			the name and number of the current block
trialcode, trialnum: 			the name and number of the currently recorded trial
									(Note: not all trials that are run might record data) 
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) while 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)

script.startdate:				date script was run
script.starttime:				time script was started
script.subjectid:				subject id number
script.groupid:					group id number
script.elapsedtime:				time it took to run script (in ms)
computer.platform:				the platform the script was run on
/completed:						0 = script was not completed (prematurely aborted); 1 = script was completed (all conditions run)
/FRoptionA:						number of times button A has to be pressed consecutively to earn a point
/FRoptionB:						number of times button B has to be pressed consecutively to earn a point
/FRoptionC:						number of times button C has to be pressed consecutively to earn a point
/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
* 6 blocks 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
are not original; instructions are provided by Millisecond Software in the form of images.
They can be substituted 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:

FRoptionA = 100								number of times button A has to be pressed consecutively to earn a point
FRoptionB = 10								number of times button B has to be pressed consecutively to earn a point
FRoptionC = 10								number of times button C has to be pressed consecutively to earn a point
blockduration = 25 							duration in min of one PSAP block
number_blocks = 1							number of times PSAP block should be run
resttime = 0								duration in min of the rest block
restperiod_active = 0 						restperiod_active = 1: a rest block will be presented between PSAP blocks
													restperiod_active = 0: no rest block will be presented between PSAP blocks
key1 = 30									the scancode for keyA (default: 30 -> A)
key2 = 48									the scancode for keyB (default: 48 -> B)
key3 = 46									the scancode for keyC (default: 46 -> C)
delay = 0									a possible built in delay for pressing the response keys (see Carre, 2010)
intermediateduration = 500					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					1 = text is displayed next to the winning points, 0 = text is NOT displayed next to winning points
show_pressbutton_text = 1					1 = text is displayed next to the pressbutton counter; 0 = no text is presented
restart_total = 0							1 = total points get reset to 0 for each PSAP block; 0 = total points increase across experiment
rewardpoints= 1								number of points rewarded (default 1)
provocationpoints = 1						number of points taken away after a provocation (default 1)

Copyright © Millisecond Software. All rights reserved.
Contact | Terms of Service | Security Statement | Employment