Return to the Partial Report Procedure page
___________________________________________________________________________________________________________________
	
										*PARTIAL REPORT PROCEDURE*										
___________________________________________________________________________________________________________________							

Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software, LLC
Date: 05-09-2014
last updated:  03-10-2020 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC

Script Copyright © 03-10-2020 Millisecond Software

___________________________________________________________________________________________________________________
BACKGROUND INFO 	
___________________________________________________________________________________________________________________	

This script runs a Partial Report Procedure, a test of iconic memory.

The implemented procedures is based on:
Lu, Neuse, Madigan, & Dosher (2005). Fast decay of iconic memory in observers with mild cognitive impairments. 
PNAS; 102; 1797-1802.

NOTE: this script includes a helper script to convert the percentage correct (for four-alternative
forced-identification) to d' scores (main Dependent Variable) as was done by Lu et al (2005). 
This helper script uses the conversion table by Hacker & Ratcliff (1979) and interpolates the 
final d' scores for the given percentages.

Hacker, M.J & Ratcliff, R. (1979). A revised table of d' for M-alternative forced choice. 
Perception & Psychophysics, 26, 168- 170.

___________________________________________________________________________________________________________________
TASK DESCRIPTION
___________________________________________________________________________________________________________________	
Participants view a circle made up of 8 letters (randomly sampled from: D, F, J, K) for a very brief
duration. Depending on condition, an arrow is presented before (=pre-cue), with (=simultaneous cue),
or after (=post-cue) the letter circle that points to one of the 8 letter positions. Participants
are asked to enter the letter into the keyboard*. Several Stimulus Onset Asynchronies (SOA)
are tested in the post-cue position.

* In contrast to Lu et al (2005) this script requires participants to enter the letter directly into the keyboard.
Alternatively, they could say the letter and experimenter types it in for them (as done in Lu et al).

___________________________________________________________________________________________________________________	
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: 'partialreportprocedure_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
script.sessionid:					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.
										
										
values.condition:					1 = precue condition; 2 = simultan condition; 3 = postcue condition


values.soa:							stores the current soa (stimulus onset asynchrony)
									precue: time between onset of cue and onset of letter circle
									postcue: time between onset of letter circle and onset of cue
										
values.soa_index:					stores the index of the currently sampled SOA 
									(the smaller the index the smaller the SOA)
										
values.targetposition:				stores the position of the target 
									(position 1-8; position 1 is 12 0'clock position; clockwise)
										
values.arrowRotation:				the rotation degree of the arrow

values.letter1-
values.letter8:						store the letters that are presented in each letter location
									(Note: position 1 is 12 0'clock position; clockwise)
										1 = 0degrees
										2 = 45degrees
										3 = 90degrees
										4 = 135degrees
										5 = 180degrees
										6 = 225degrees
										7 = 270degrees
										8 = 315degrees
										
values.targetletter:				stores the target letter

response:							the participant's response (scancode of response key)
										32 = D
										33 = F
										36 = J
										37 = K
										
correct:							the correctness of the response (1 = correct;0 = otherwise)
latency: 							the response latency (ms)


calculated at the end of all experimental blocks:
order reported: postcue (SOA1-SOA6), precue, simultan
values.p:							p-values (proportions correct) for which a d'-value needs to be found (given values.m)

values.d:							contains the calculated d'-value for the given values.p
									d' (dprime) = main dependent variable, measure of target detection sensitivity 
										
									given the number of alternative forced choice response options (m)
values.m:							number of forced choices available


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

computer.platform:					the platform the script was run on (win/mac/ios/android)
script.startdate:					date script was run
script.starttime:					time script was started
script.subjectid:					assigned subject id number
script.groupid:						assigned group id number
script.sessionid:					assigned session id number
script.elapsedtime:					time it took to run script (in ms); measured from onset to offset of script
script.completed:					0 = script was not completed (prematurely aborted); 
									1 = script was completed (all conditions run)
																						
									
parameters.run_precue:				true (1) = script runs precue condition (default)
									false (0) = script does NOT run precue condition
									
parameters.run_simultan:			true (1) = script runs simultan condition (default)
									false (0) = script does NOT run simultan condition
									
parameters.run_postcue:				true (1) = script runs postcue condition (default)
									false (0) = script does NOT run postcue condition
									
expressions.propcorrect_SOA1-
expressions.propcorrect_SOA6:		proportion correct items recalled for postcue SOA1-SOA6 (across all postcue test blocks)

expressions.propcorrect_postcue:	proportion correct items recalled in postcue condition across all SOAs 
									(across all postcue test blocks)
										
expressions.propcorrect_precue:		proportion correct items recalled in precue condition (across all precue test blocks)
expressions.propcorrect_simultan:	proportion correct items recalled in simultan condition (across all simultan test blocks)

d-scores: store all the d' scores (calculated by included script: ProportionCorrect_to_dscore_conversion.iqx)
IF the given p-values are within range (0.01 < p < 0.99) otherwise d-value = "by hand"

parameters.run_p_conversion:		true (1) = script automically converts the p-values (proportion corrects) 
									into d'-scores using values (and interpolation) published by
									Hacker & Ratcliff (1979) (default)
											Note: border p-values (p-values < 0.01 and p-values > 0.99 have to be calculated manually)
									false (0) = script does not convert the p-values (proportion corrects) into d'-scores

d'-scores: store all the d' scores (calculated by included script: ProportionCorrect_to_dscore_conversion.iqx)

d' (dprime) = main dependent variable, measure of target detection sensitivity  
given the number of alternative forced choice response options (m)

values.dprime_soa1 - values.dprime_soa6
values.dprime_precue-
values.dprime_simultan
values.m:							number of forced choices available 
									(here: 4 as there are 4 letters to choose from: D, F, J, K)

!NOTE: correct latency data is stored in separate lists (see section LISTS) and could easily be used to calculate
mean latencies of correct responses in the different conditions.

___________________________________________________________________________________________________________________	
EXPERIMENTAL SET-UP 
___________________________________________________________________________________________________________________	
3 conditions: pre-cue, simultan(eous) cue, post-cue

Pre-cue: arrow cue appears shortly before letter circle (only one SOA -> list.soa_precue)
		-> arrow and letter circle overlap
Simultan: arrow cue appears together with letter circle (SOA = 0)
Post-cue: arrow cue appears shortly after letter circle (6 SOA -> list.soa_postcue; randomly selected with replacement)
		-> no overlap of arrow and letter circle

8 target positions -> equally sampled across each condition (->list.targetposition)

By default, the script runs the pre-cue condition, the simultaneous cue condition and the post-cue 
condition in this order (see section EXPERIMENT). Each of these conditions can be skipped by changing an 
editable value (e.g. /run_precue = false).
By default, each condition starts out with 20 practice trials that are followed by 96 test trials
(number of trials can be edited under Editable Values).

Note: participants are required to type in the letters directly into the keyboard (no voice recordings) 

___________________________________________________________________________________________________________________	
STIMULI
___________________________________________________________________________________________________________________	
Letter circles => letters are randomly sampled with replacement from list.consonant (D, F, J, K)
Size of letters, letter circle and arrows can be controlled via editable values: EDITABLE CODE -> Editable Values

___________________________________________________________________________________________________________________	
INSTRUCTIONS 
___________________________________________________________________________________________________________________	
Instructions are not original to the task. They are provided by Millisecond Software
as htm pages and simple page elements and can be edited either by changing
the provided html files or directly under Editable Instructions.
To edit 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:

/fontsize_target:						fontsize of the targets/letters in canvas height percentages (default: 10%)
/fontsize_fixation:						fontsize of the fixation mark in canvas height percentages (default: 3%)
/signalpicture_height:					size of arrow pictures in canvas heigh percentage (default: 10%)
/radiusscreenproportion:				the proportion of the letter circle radius relative to canvas height(default: 0.3)
											(Note: see Lu et al (2005), p.1798, for size information on their display)

/stimcircle_duration:					presentation duration of the targets/letters (default: 105ms)
/fixationduration:						presentation duration of the fixation stimulus (default: 400ms)
/iti:									intertrial interval between sequences (default: 500ms)

/nr_practicetrials:						number of practice trials in each condition (default: 20)
/nr_trials_postcue:						number of postcue trials during a test block (default: 96)
											Note: should be a multiple of 8 (targetpositions) and 6 (SOAs)
											
/nr_trials_precue:						number of precue trials during a test block (default: 96)
/nr_trials_simultan:					number of simultan trials during a test block (default: 96)

/run_precue:							true = script runs precue condition (default)
										false = script does NOT run precue condition
										
/run_simultan:							true = script runs simultan condition (default)
										false = script does NOT run simultan condition
									
/run_postcue:							true = script runs postcue condition (default)
										false = script does NOT run postcue condition

/run_p_conversion:						true = script automically converts the p-values into d'-scores using values 
										(and interpolation) published by Hacker & Ratcliff (1979) (default)
											Note: border p-values (p-values < 0.01 and p-values > 0.99 
											have to be calculated manually)
										false = script does not convert the p-values into d-scores